{"version":3,"sources":["jsdelivr-header.js","/npm/dw-components@1.0.70/src/components/Number/Number.js","/npm/dw-components@1.0.70/src/components/Progress/Progress.js","/npm/dw-components@1.0.70/src/const/Const.js","/npm/dw-components@1.0.70/src/components/ButtonBorder/ButtonBorder.js","/npm/dw-components@1.0.70/src/components/ButtonDefault/ButtonDefault.js","/npm/dw-components@1.0.70/src/components/ButtonDefaultIcon/ButtonDefaultIcon.js","/npm/dw-components@1.0.70/src/components/ButtonDefaultWithLoad/ButtonDefaultWithLoad.js","/npm/dw-components@1.0.70/src/components/ButtonSecondary/ButtonSecondary.js","/npm/dw-components@1.0.70/src/components/ButtonDelete/ButtonDelete.js","/npm/dw-components@1.0.70/src/components/ButtonIcon/ButtonIcon.js","/npm/dw-components@1.0.70/src/components/ButtonIconOption/ButtonIconOption.js","/npm/dw-components@1.0.70/src/components/ButtonLabel/ButtonLabel.js","/npm/dw-components@1.0.70/src/components/ButtonLarge/ButtonLarge.js","/npm/dw-components@1.0.70/src/components/ButtonLargeSecondary/ButtonLargeSecondary.js","/npm/dw-components@1.0.70/src/components/ButtonSecondaryIcon/ButtonSecondaryIcon.js","/npm/dw-components@1.0.70/src/components/ButtonSecondaryWithLoad/ButtonSecondaryWithLoad.js","/npm/dw-components@1.0.70/src/components/ColEdit/ColEdit.js","/npm/dw-components@1.0.70/src/components/ColTag/ColTag.js","/npm/dw-components@1.0.70/src/components/ColWarn/ColWarn.js","/npm/dw-components@1.0.70/src/components/FieldCheck/FieldCheck.js","/npm/dw-components@1.0.70/src/components/FieldCheckBox/FieldCheckBox.js","/npm/dw-components@1.0.70/src/const/MessageConst.js","/npm/dw-components@1.0.70/src/components/FieldComboBox/FieldComboBox.js","/npm/dw-components@1.0.70/src/components/FieldComboGrid/FieldComboGrid.js","/npm/dw-components@1.0.70/src/components/FieldDate/FieldDate.js","/npm/dw-components@1.0.70/src/components/FieldDateNoTitle/FieldDateNoTitle.js","/npm/dw-components@1.0.70/src/components/FieldDropdown/FieldDropdown.js","/npm/dw-components@1.0.70/src/components/FieldDropdownMulti/FieldDropdownMulti.js","/npm/dw-components@1.0.70/src/components/FieldEmployee/FieldEmployee.js","/npm/dw-components@1.0.70/src/components/FieldItemList/FieldItemList.js","/npm/dw-components@1.0.70/src/SharedFunc/Recent.js","/npm/dw-components@1.0.70/src/components/FieldItemListAdd/FieldItemListAdd.js","/npm/dw-components@1.0.70/src/components/FieldItemListGrid/FieldItemListGrid.js","/npm/dw-components@1.0.70/src/components/FieldItemListGridGet/FieldItemListGridGet.js","/npm/dw-components@1.0.70/src/components/FieldLabel/FieldLabel.js","/npm/dw-components@1.0.70/src/components/FieldLabelBorder/FieldLabelBorder.js","/npm/dw-components@1.0.70/src/components/FieldNumber/FieldNumber.js","/npm/dw-components@1.0.70/src/components/FieldNumberFormat/FieldNumberFormat.js","/npm/dw-components@1.0.70/src/components/FieldNumberFormatIncludeZero/FieldNumberFormatIncludeZero.js","/npm/dw-components@1.0.70/src/components/FieldNumberGrid/FieldNumberGrid.js","/npm/dw-components@1.0.70/src/components/FieldPassword/FieldPassword.js","/npm/dw-components@1.0.70/src/components/FieldSearch/FieldSearch.js","/npm/dw-components@1.0.70/src/const/Regex.js","/npm/dw-components@1.0.70/src/components/FieldText/FieldText.js","/npm/dw-components@1.0.70/src/components/FieldTextArea/FieldTextArea.js","/npm/dw-components@1.0.70/src/components/FieldTextGrid/FieldTextGrid.js","/npm/dw-components@1.0.70/src/components/FieldTextlarge/FieldTextlarge.js","/npm/dw-components@1.0.70/src/components/FieldTextVoid/FieldTextVoid.js","/npm/dw-components@1.0.70/src/components/GridAction/GridAction.js","/npm/dw-components@1.0.70/src/components/GridDefault/GridDefault.js","/npm/dw-components@1.0.70/src/components/GridAdd/GridAdd.js","/npm/dw-components@1.0.70/src/components/GridColCheck/GridColCheck.js","/npm/dw-components@1.0.70/src/components/GridFooter/GridFooter.js","/npm/dw-components@1.0.70/src/components/GridDefaultShimmer/GridDefaultShimmer.js","/npm/dw-components@1.0.70/src/components/GridField/GridField.js","/npm/dw-components@1.0.70/src/components/GridFilterField/GridFilterField.js","/npm/dw-components@1.0.70/src/components/GridFilter/GridFilter.js","/npm/dw-components@1.0.70/src/components/GridGrouped/GridGrouped.js","/npm/dw-components@1.0.70/src/components/GridMultiSelect/GridMultiSelect.js","/npm/dw-components@1.0.70/src/components/IconExcel/IconExcel.js","/npm/dw-components@1.0.70/src/components/IconFilter/IconFilter.js","/npm/dw-components@1.0.70/src/components/IconFreeze/IconFreeze.js","/npm/dw-components@1.0.70/src/components/IconOrder/IconOrder.js","/npm/dw-components@1.0.70/src/components/ListTree/ListTree.js","/npm/dw-components@1.0.70/src/components/LoadScreen/LoadScreen.js","/npm/dw-components@1.0.70/src/components/LoadSpin/LoadSpin.js","/npm/dw-components@1.0.70/src/components/NumberHideZero/NumberHideZero.js","/npm/dw-components@1.0.70/src/components/PageFilter/PageFilter.js","/npm/dw-components@1.0.70/src/components/PageTitle/PageTitle.js","/npm/dw-components@1.0.70/src/SharedFunc/FilterAndSearch.js","/npm/dw-components@1.0.70/src/components/PageHeader/PageHeader.js","/npm/dw-components@1.0.70/src/components/PageStep/PageStep.js","/npm/dw-components@1.0.70/src/components/PageTitleMid/PageTitleMid.js","/npm/dw-components@1.0.70/src/components/Warning/Warning.js","/npm/dw-components@1.0.70/src/components/PanelBase/PanelBase.js","/npm/dw-components@1.0.70/src/components/ReportApprovedDoc/ReportApprovedDoc.js","/npm/dw-components@1.0.70/src/components/ReportDoc/ReportDoc.js","/npm/dw-components@1.0.70/src/components/ReportFolder/ReportFolder.js","/npm/dw-components@1.0.70/src/components/Step/Step.js","/npm/dw-components@1.0.70/src/components/TableauContainer/TableauContainer.js","/npm/dw-components@1.0.70/src/components/TextGridHeader/TextGridHeader.js","/npm/dw-components@1.0.70/src/components/TextTitle/TextTitle.js","/npm/dw-components@1.0.70/src/components/Header/Header.js","/npm/dw-components@1.0.70/src/components/FieldMonth/FieldMonth.js","/npm/dw-components@1.0.70/src/components/GridDefaultShimmerCheck/GridDefaultShimmerCheck.js","/npm/dw-components@1.0.70/src/components/GridDefaultShimmerStick/GridDefaultShimmerStick.js"],"names":[],"mappings":"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","file":"/npm/dw-components@1.0.70/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/dw-components@1.0.70/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\n\r\nconst Number = (props) => {\r\n    return (\r\n        <div style={{ textAlign: 'right' }}>\r\n            <NumberFormat decimalScale={2} value={props.value} displayType={'text'} thousandSeparator={true}></NumberFormat> <span>{props.symbol && props.value ? \" ₮\" : null}{props.csymbol ? props.csymbol : \"\"}</span>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default Number;","import React, { useState, useEffect } from 'react';\r\nimport { Progress, Space } from 'antd';\r\nimport './Progress.css';\r\nimport Number from '../Number/Number';\r\n\r\nconst progress = (props) => {\r\n\r\n    const [initData, setInitData] = useState({\r\n        actual: 0,\r\n        expected: 0,\r\n        percent: 0,\r\n        isOverdue: false\r\n    });\r\n    const [data, setData] = useState({});\r\n\r\n    useEffect(() => {\r\n\r\n        let tData = { ...initData };\r\n\r\n        let tActual = 0;\r\n        let tExpected = 0;\r\n        let tSymbol = \"\";\r\n\r\n        if (props.actual) {\r\n            tActual = parseFloat(props.actual.toString().replaceAll(',', ''));\r\n        }\r\n\r\n        if (props.expected) {\r\n            tExpected = parseFloat(props.expected.toString().replaceAll(',', ''));\r\n        }\r\n\r\n        if (props.symbol) {\r\n            tSymbol = props.symbol;\r\n        }\r\n\r\n        let tPercent = parseFloat(((tActual * 100) / tExpected).toFixed(2));\r\n        let tIsOverdue = false;\r\n\r\n        if (tExpected < tActual) {\r\n            tIsOverdue = true;\r\n        }\r\n\r\n        tData.actual = tActual;\r\n        tData.expected = tExpected;\r\n        tData.percent = tPercent;\r\n        tData.isOverdue = tIsOverdue;\r\n        tData.symbol = tSymbol;\r\n\r\n        setData(tData);\r\n    }, [props.actual, props.expected]);\r\n\r\n    return <div>\r\n        <Progress\r\n            className='ProgressBar'\r\n            percent={data.percent}\r\n            format={() => {\r\n                return (\r\n                    <Space size={3}>\r\n                        <Number value={data.actual} />/<Number value={data.expected} symbol={data.symbol} />\r\n                    </Space>\r\n                );\r\n            }}\r\n            status={data.isOverdue ? 'exception' : null}\r\n        ></Progress>\r\n    </div>;\r\n}\r\nexport default progress;","export const ConstCss = {\r\n    boxShadow: '0 3px 10px rgb(0 0 0 / 0.2)',\r\n    flexCenter: {\r\n        alignItems: 'center',\r\n        justifyContent: 'center',\r\n        display: 'flex'\r\n    },\r\n    textNormal: {\r\n        fontSize: 14,\r\n        color: '#212121'\r\n    }\r\n};\r\n\r\nexport const Color = {\r\n    white: '#ffffff',\r\n    black: '#000000',\r\n    primary: '#0358A7',\r\n    grayBackground: '#F7F7F7',\r\n    grayHeaderBack: '#F2F2F2',\r\n    backText: '#212121',\r\n    blue: '#0358A7',\r\n    blueBackground: '#0358A7',\r\n    yellow: '#FFC700',\r\n    gray: '#828282',\r\n    graySecond: '#6A6D70',\r\n    grayText: '#605E5C',\r\n    blackSecond: '#32363A',\r\n    red: '#ff0000',\r\n    grayNoData: '#BABABA',\r\n    greyTableText: '#201F1E',\r\n    warn: '#E9730C',\r\n    tagPrimary: '#CAE4F3',\r\n    tagSecondary: '#E9E9E9',\r\n    grayButton: '#CCCCCC',\r\n    blueLink: '#0854A0'\r\n};\r\n\r\nexport const uploadFileFormat = [\r\n    {\r\n        filetype: \".txt\",\r\n        name: \"text/plain\"\r\n    }, {\r\n        filetype: \".pdf\",\r\n        name: \"application/pdf\"\r\n    },\r\n    {\r\n        filetype: \".docx\",\r\n        name: \"application/vnd.ms-word\"\r\n    }, {\r\n        filetype: \".xls\",\r\n        name: \"application/vnd.ms-excel\"\r\n    }, {\r\n        filetype: \".xlsx\",\r\n        name: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n    },\r\n    {\r\n        filetype: \".png\",\r\n        name: \"image/png\"\r\n    }, {\r\n        filetype: \".jpg\",\r\n        name: \"image/jpeg\"\r\n    }, {\r\n        filetype: \".jpeg\",\r\n        name: \"image/jpeg\"\r\n    }, {\r\n        filetype: \".gif\",\r\n        name: \"image/gif\"\r\n    }, {\r\n        filetype: \".csv\",\r\n        name: \"text/csv\"\r\n    }\r\n];\r\n\r\nexport const constData = {\r\n    year: [\r\n        {\r\n            \"key\": \"2021\",\r\n            \"text\": \"2021\"\r\n        },\r\n        {\r\n            \"key\": \"2020\",\r\n            \"text\": \"2020\"\r\n        },\r\n        {\r\n            \"key\": \"2019\",\r\n            \"text\": \"2019\"\r\n        },\r\n        {\r\n            \"key\": \"2018\",\r\n            \"text\": \"2018\"\r\n        }\r\n    ]\r\n}\r\n\r\nexport const specialCharacters = [8, 9, 18, 20, 91, 32, 16, 17, 27, 13];\r\n\r\nexport const ctrlCommandKeys = [65, 67, 88, 86];","import React from 'react';\r\nimport { DefaultButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonBorder = (props) => {\r\n\r\n    let vIcon = {};\r\n    if (props.icon) {\r\n        vIcon = {\r\n            onRenderIcon: () => {\r\n                return (props.icon);\r\n            }\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <DefaultButton onClick={props.onClick} style={{ color: Color.blue, border: '1px solid #0358A7' }} text={props.text} {...vIcon} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonBorder;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonDefault = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    let vBColor = {\r\n        backgroundColor: Color.blue,\r\n        border: '1px solid #0358A7'\r\n    }\r\n\r\n    if (props.disable == true) {\r\n        vBColor = {\r\n            backgroundColor: Color.grayButton,\r\n            color: Color.white\r\n        }\r\n    }\r\n\r\n    if (props.color) {\r\n        vBColor = {\r\n            backgroundColor: props.color,\r\n            border: '1px solid ' + props.color\r\n        }\r\n    }\r\n\r\n    let vHeight = {};\r\n    if (props.height) {\r\n        vHeight = {\r\n            height: props.height\r\n        };\r\n    }\r\n\r\n    let vIcon = {};\r\n\r\n    if (props.icon) {\r\n        vIcon = {\r\n            onRenderIcon: () => {\r\n                return (props.icon);\r\n            }\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <PrimaryButton\r\n                disabled={props.disable == true ? true : false}\r\n                style={{ ...vBColor, ...vFull, ...vHeight }}\r\n                text={props.text}\r\n                onClick={props.onClick}\r\n                {...vIcon} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonDefault;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonDefaultIcon = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <PrimaryButton iconProps={{ iconName: props.iconName }} style={{ backgroundColor: Color.blue, border: '1px solid #0358A7', ...vFull }} text={props.text} onClick={props.onClick} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonDefaultIcon;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { Spin } from 'antd';\r\n\r\nconst ButtonDefaultWithLoad = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    return (\r\n        <Spin spinning={props.loading ? props.loading : false} >\r\n            <PrimaryButton style={{ backgroundColor: Color.blue, border: '1px solid #0358A7', ...vFull }} text={props.text} onClick={props.onClick} />\r\n        </Spin>\r\n    );\r\n}\r\n\r\nexport default ButtonDefaultWithLoad;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonSecondary = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    var vBackColor = Color.white;\r\n\r\n    if (props.backgroundcolor) {\r\n        vBackColor = props.backgroundcolor;\r\n    }\r\n\r\n    var vBorder = \"1px solid #C6C6C6\";\r\n\r\n    if (props.bordercolor) {\r\n        vBorder = '1px solid ' + props.bordercolor;\r\n    }\r\n\r\n    var vColor = Color.black;\r\n\r\n    if (props.color) {\r\n        vColor = props.color;\r\n    }\r\n\r\n    let vIcon = {};\r\n\r\n    if (props.icon) {\r\n        vIcon = {\r\n            onRenderIcon: () => {\r\n                return (props.icon);\r\n            }\r\n        }\r\n    }\r\n\r\n    let vRadius = {};\r\n\r\n    if (props.radius) {\r\n        vRadius = props.radius;\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <PrimaryButton style={{ backgroundColor: vBackColor, border: vBorder, ...vFull, color: vColor, borderRadius: vRadius }} text={props.text} onClick={props.onClick} {...vIcon} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonSecondary;","import React, { useState } from 'react';\r\nimport { IconButton, FocusTrapCallout } from '@fluentui/react';\r\nimport { useId } from '@fluentui/react-hooks';\r\nimport { Color } from '../../const/Const';\r\nimport ButtonSecondary from '../ButtonSecondary/ButtonSecondary';\r\nimport ButtonDefault from '../ButtonDefault/ButtonDefault';\r\n\r\nconst ButtonDelete = (props) => {\r\n\r\n    const buttonId = useId();\r\n    const [show, setShow] = useState(false);\r\n\r\n\r\n    const yes = () => {\r\n        setShow(false);\r\n        props.onClick();\r\n    }\r\n\r\n    const no = () => {\r\n        setShow(r => !r);\r\n    }\r\n\r\n    const onPress = () => {\r\n        setShow(r => !r);\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <IconButton id={buttonId} iconProps={{ iconName: 'Delete' }} title={props.text} style={{ color: Color.black }} onClick={onPress} />\r\n            {show ? (\r\n                <FocusTrapCallout\r\n                    role=\"alertdialog\"\r\n                    gapSpace={0}\r\n                    target={`#${buttonId}`}>\r\n                    <div style={{ padding: 16 }}>\r\n                        <div>Та устгахдаа итгэлтэй байна уу?</div>\r\n                        <div style={{ display: 'flex', marginTop: 16 }}>\r\n                            <ButtonSecondary text=\"Үгүй\" onClick={no} />\r\n                            <div style={{ marginLeft: 16 }}>\r\n                                <ButtonDefault text=\"Тийм\" onClick={yes} />\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </FocusTrapCallout>\r\n            ) : null}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonDelete;","import React from 'react';\r\nimport { DefaultButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonIcon = (props) => {\r\n\r\n    let bColor = { backgroundColor: Color.grayBackground };\r\n    if (props.white) {\r\n        bColor = { backgroundColor: Color.white };\r\n    }\r\n\r\n    return (\r\n        <div style={{ marginTop: 4 }}>\r\n            <DefaultButton\r\n                style={{\r\n                    ...bColor,\r\n                    border: 0,\r\n                    color: Color.backText,\r\n                    padding: 0,\r\n                    fontWeight: 400,\r\n                    fontSize: 14\r\n                }}\r\n                styles={{\r\n                    root: {\r\n                        '.ms-Button-icon': {\r\n                            color: Color.blue\r\n                        },\r\n                        '.ms-Button-label': {\r\n                            fontWeight: 400\r\n                        }\r\n                    }\r\n                }}\r\n                text={props.text}\r\n                iconProps={{ iconName: props.iconName }}\r\n                onClick={props.onClick} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonIcon;","import React from 'react';\r\nimport { CommandBarButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonIconOption = (props) => {\r\n\r\n    let bColor = { backgroundColor: Color.grayBackground };\r\n    if (props.white) {\r\n        bColor = { backgroundColor: Color.white };\r\n    }\r\n\r\n    return (\r\n        <div style={{ marginTop: 4 }}>\r\n            <CommandBarButton\r\n                style={{\r\n                    ...bColor,\r\n                    border: 0,\r\n                    color: Color.backText,\r\n                    padding: 0,\r\n                    fontWeight: 400,\r\n                    fontSize: 14,\r\n                    height: 32\r\n                }}\r\n                styles={{\r\n                    root: {\r\n                        '.ms-Button-icon': {\r\n                            color: Color.blue\r\n                        },\r\n                        '.ms-Button-label': {\r\n                            fontWeight: 400\r\n                        }\r\n                    }\r\n                }}\r\n                text={props.text}\r\n                iconProps={{ iconName: props.iconName }}\r\n                menuProps={props.menuProps}\r\n            />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonIconOption;","import React from 'react';\r\nimport { DefaultButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonLabel = (props) => {\r\n    return (\r\n        <div>\r\n            <DefaultButton onClick={props.onClick} style={{ color: Color.blue, border: 0 }} text={props.text} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonLabel;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { Spin } from 'antd';\r\n\r\nconst ButtonLarge = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <Spin spinning={props.loading ? props.loading : false} >\r\n                <PrimaryButton text={props.text} onClick={props.onClick} style={{ width: '100%', height: 56, backgroundColor: Color.blue, fontSize: 18, borderRadius: 8 }} />\r\n            </Spin>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonLarge;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonLargeSecondary = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <PrimaryButton style={{ width: '100%', height: 56, fontSize: 18, borderRadius: 8, backgroundColor: Color.white, border: '1px solid #C6C6C6', ...vFull, color: Color.black }} text={props.text} onClick={props.onClick} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonLargeSecondary;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ButtonSecondaryIcon = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <PrimaryButton iconProps={{\r\n                iconName: props.iconName\r\n            }} style={{ backgroundColor: Color.white, border: '1px solid #C6C6C6', ...vFull, color: Color.black }} text={props.text} onClick={props.onClick} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ButtonSecondaryIcon;","import React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { Spin } from 'antd';\r\n\r\nconst ButtonSecondaryWithLoad = (props) => {\r\n\r\n    let vFull = {};\r\n    if (props.full) {\r\n        vFull = {\r\n            width: '100%'\r\n        }\r\n    }\r\n\r\n    return (\r\n        <Spin spinning={props.loading ? props.loading : false} >\r\n            <PrimaryButton style={{ backgroundColor: Color.white, border: '1px solid #C6C6C6', ...vFull, color: Color.black }} text={props.text} onClick={props.onClick} />\r\n        </Spin>\r\n    );\r\n}\r\n\r\nexport default ButtonSecondaryWithLoad;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ColEdit = (props) => {\r\n    return (\r\n        <div onClick={props.onClick} style={{ color: Color.blue, cursor: 'pointer' }}>\r\n            {props.children}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ColEdit","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ColTag = (props) => {\r\n    return (\r\n        <div style={{ display: 'flex' }}>\r\n            {props.data?.map((r, index) => {\r\n                let vColor = Color.tagSecondary;\r\n                if (index == 0) {\r\n                    vColor = Color.tagPrimary;\r\n                }\r\n                return (\r\n                    <div key={index} style={{ marginLeft: 8, backgroundColor: vColor, paddingRight: 8, paddingLeft: 8, borderRadius: 10 }}>{r}</div>\r\n                );\r\n            })}\r\n        </div >\r\n    );\r\n}\r\n\r\nexport default ColTag;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\nimport { ReactComponent as WarnColIcon } from '../../svg/warnColIcon.svg';\r\nimport { TooltipHost } from '@fluentui/react';\r\n\r\nconst ColWarn = (props) => {\r\n    return (\r\n        <div>\r\n            {props.show && props.show == true ? (\r\n                <TooltipHost content={props.message}>\r\n                    <div style={{ fontWeight: 500, fontSize: 12, color: Color.warn, display: 'flex', alignItems: 'center' }}>\r\n                        <div>\r\n                            {props.value}\r\n                        </div>\r\n                        <div style={{ marginLeft: 4, height: 16 }}>\r\n                            <WarnColIcon />\r\n                        </div>\r\n                    </div>\r\n                </TooltipHost>\r\n            ) : (\r\n                <div>{props.value}</div>\r\n            )}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ColWarn;","import React, { useState, useEffect } from 'react';\r\nimport { Checkbox } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst FieldCheck = (props) => {\r\n\r\n\r\n    const [checked, setChecked] = useState(props.defaultValue ? true : false);\r\n\r\n    const onChanged = (ev, isChecked) => {\r\n        setChecked(isChecked);\r\n        props.onChanged(isChecked, '', props.keyfield, '', props.title);\r\n    }\r\n\r\n    useEffect(() => {\r\n        setChecked(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>\r\n            <div style={{ marginTop: 6, height: 32, display: 'flex', alignItems: 'center' }}>\r\n                <Checkbox disabled={props.disable == false ? true : false} checked={checked} onChange={onChanged} label={null} />\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldCheck;","import React, { useState, useEffect } from 'react';\r\nimport { Checkbox } from '@fluentui/react';\r\n\r\nconst FieldCheckBox = (props) => {\r\n\r\n\r\n    const [checked, setChecked] = useState(props.defaultValue ? true : false);\r\n\r\n    const onChanged = (ev, isChecked) => {\r\n        setChecked(isChecked);\r\n        props.onChanged(isChecked, '', props.keyfield, '', props.title);\r\n    }\r\n\r\n    useEffect(() => {\r\n        setChecked(props.defaultValue);\r\n    }, [props.defaultValue])\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ marginTop: 26 }}>\r\n                <Checkbox checked={checked} onChange={onChanged} label={props.title} />\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldCheckBox;","export const MessageConst = {\r\n    fieldRequired: ' талбарын утга хоосон байна.',\r\n    generalFieldRequired: 'Заавал бөглөх талбарын утга хоосон байна.',\r\n    success: 'Амжилттай'\r\n};\r\n\r\nexport const MessageConstEn = {\r\n    fieldRequired: ' field is empty.',\r\n    generalFieldRequired: 'Field is empty.',\r\n    success: 'Success'\r\n};","import React, { useEffect, useState, useRef } from 'react';\r\nimport { ComboBox } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn} from '../../const/MessageConst';\r\nimport { Shimmer } from '@fluentui/react';\r\n\r\nconst FieldComboBox = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n    const [data, setData] = useState([]);\r\n    const [oData, setOData] = useState([]);\r\n    const comboBoxRef = useRef();\r\n\r\n    const onChanged = (event, option, index, value) => {\r\n        if (option) {\r\n            setValue(option.key);\r\n            props.onChanged(option.key, option.text, props.keyfield, '', props.title);\r\n        } else {\r\n            let tData = [...oData];\r\n            tData = tData.filter(r => {\r\n                if (r?.text?.toLowerCase().indexOf(value?.toLowerCase()) >= 0) {\r\n                    return true;\r\n                } else {\r\n                    return false;\r\n                }\r\n            })\r\n            setData(tData);\r\n            comboBoxRef.current?.focus(true);\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props?.defaultValue != undefined ? props.defaultValue : null);\r\n    }, [props.defaultValue]);\r\n\r\n    useEffect(() => {\r\n        let tData = [];\r\n        if (props.data) {\r\n            tData = props.data;\r\n        }\r\n        setData(tData);\r\n        setOData(tData);\r\n    }, [props.data])\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <ComboBox\r\n                        componentRef={comboBoxRef}\r\n                        options={data}\r\n                        selectedKey={value}\r\n                        disabled={props.disable ? true : false}\r\n                        allowFreeform\r\n                        onChange={onChanged}\r\n                        errorMessage={(props.required && !value && props.checkreq && data?.length > 0 && !props.disable) ? (props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)) : null}\r\n                        styles={{\r\n                            title: {\r\n                                border: '1px solid #DDDDDD'\r\n                            }\r\n                        }}\r\n                    />\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldComboBox;","import React from 'react';\r\nimport { ComboBox } from '@fluentui/react';\r\n\r\nconst FieldComboGrid = (props) => {\r\n\r\n    const onChange = (p_combo, p_value, p_index) => {\r\n        if (props.onChanged) {\r\n            props.onChanged(props.keyfield, props.index, p_value.key, '', props.title);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <ComboBox\r\n                selectedKey={props.value}\r\n                styles={{\r\n                    root: {\r\n                        wrapper: {\r\n                            '&::after': {\r\n                                border: '1px solid white'\r\n                            }\r\n                        }\r\n                    }\r\n                }}\r\n                onChange={onChange}\r\n                options={props.data}\r\n                placeholder={props.name}\r\n            />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldComboGrid;","import React, { useEffect, useState } from 'react';\r\nimport { DatePicker } from '@fluentui/react';\r\nimport moment from 'moment';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldDate = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    useEffect(() => {\r\n        let tValue = null;\r\n        if (props.defaultValue) {\r\n            tValue = moment(props.defaultValue, 'YYYY.MM.DD');\r\n        }\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n    const onFormatDate = (date) => {\r\n        return !date ? '' : moment(date).format(\"YYYY.MM.DD\");\r\n    };\r\n\r\n    const onChangeDate = (p_date) => {\r\n        setValue(p_date);\r\n        if (p_date) {\r\n            props.onChanged(moment(p_date).format(\"YYYY.MM.DD\"), '', props.keyfield, '', props.title);\r\n        } else {\r\n            props.onChanged(null, '', props.keyfield, '', props.title);\r\n        }\r\n    }\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                <DatePicker\r\n                    formatDate={onFormatDate}\r\n                    borderless={false}\r\n                    allowTextInput\r\n                    onSelectDate={onChangeDate}\r\n                    value={value}\r\n                    disabled={props.disable == true ? true : false}\r\n                    placeholder={props.placeholder}\r\n                    minDate={props.minDate}\r\n                    maxDate={props.maxDate}\r\n                />\r\n                {(props.required && !value && props.checkreq) ? (\r\n                    <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                        {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                    </div>\r\n                ) : null}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldDate;","import React, { useEffect, useState } from 'react';\r\nimport { Dropdown, defaultDatePickerStrings } from '@fluentui/react';\r\nimport { DatePicker } from '@fluentui/react';\r\nimport moment from 'moment';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldDateNoTitle = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    useEffect(() => {\r\n        let tValue = null;\r\n        if (props.defaultValue) {\r\n            tValue = moment(props.defaultValue);\r\n        }\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n    const onFormatDate = (date) => {\r\n        return !date ? '' : moment(date).format(\"YYYY.MM.DD\");\r\n    };\r\n\r\n    const onChangeDate = (p_date) => {\r\n        setValue(p_date);\r\n        if (p_date) {\r\n            props.onChanged(moment(p_date).format(\"YYYY.MM.DD\"), '', props.keyfield, '', props.title);\r\n        } else {\r\n            props.onChanged(null, '', props.keyfield, '', props.title);\r\n        }\r\n    }\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <DatePicker\r\n                formatDate={onFormatDate}\r\n                borderless={false}\r\n                allowTextInput\r\n                onSelectDate={onChangeDate}\r\n                value={value}\r\n                disabled={props.disable == true ? true : false}\r\n                placeholder={props.placeholder}\r\n            />\r\n            {(props.required && !value && props.checkreq) ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                </div>\r\n            ) : null}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldDateNoTitle;","import React, { useEffect, useState } from 'react';\r\nimport { Dropdown } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\nimport { Shimmer } from '@fluentui/react';\r\n\r\nconst FieldDropdown = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (p_value) => {\r\n        setValue(p_value.key);\r\n        props.onChanged(p_value.key, p_value.text, props.keyfield, props.keyfieldname, props.title);\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props?.defaultValue != undefined ? props.defaultValue : null);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            {props.title && (\r\n                <div style={{ display: 'flex' }}>\r\n                    <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n                </div>\r\n            )}\r\n            <div style={{ marginTop: props.title ? 6 : 0 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <Dropdown\r\n                        options={props.data ? props.data : []}\r\n                        selectedKey={value}\r\n                        disabled={props.disable ? true : false}\r\n                        onChanged={onChanged}\r\n                        errorMessage={(props.required && !value?.toString() && props.checkreq && props.data?.length > 0 && !props.disable) ? (props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)) : null}\r\n                        styles={{\r\n                            title: {\r\n                                border: '1px solid #DDDDDD'\r\n                            }\r\n                        }}\r\n                        placeholder={props.placeholder}\r\n                    />\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldDropdown;","import React, { useEffect, useState } from 'react';\r\nimport { Dropdown } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\nimport { Shimmer } from '@fluentui/react';\r\n\r\nconst FieldDropdownMulti = (props) => {\r\n\r\n    const [value, setValue] = useState([]);\r\n\r\n    const onChanged = (p_value) => {\r\n        let tValue = [...value];\r\n        if (p_value.selected) {\r\n            tValue.push(p_value.key);\r\n        } else {\r\n            let tIndex = tValue.indexOf(p_value.key);\r\n            if (tIndex >= 0) {\r\n                tValue.splice(tIndex, 1);\r\n            }\r\n        }\r\n        setValue(tValue);\r\n        props.onChanged(tValue, p_value.text, props.keyfield, '', props.title);\r\n    }\r\n\r\n    useEffect(() => {\r\n        let tValue = [];\r\n        if (props.defaultValue?.length > 0) {\r\n            tValue = props.defaultValue;\r\n        }\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n    \r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <Dropdown\r\n                        options={props.data ? props.data : []}\r\n                        multiSelect\r\n                        selectedKeys={value}\r\n                        disabled={props.disable ? true : false}\r\n                        onChanged={onChanged}\r\n                        errorMessage={(props.required && value?.length == 0 && props.checkreq && props.data?.length > 0 && !props.disable) ? (props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)) : null}\r\n                        styles={{\r\n                            title: {\r\n                                border: '1px solid #DDDDDD'\r\n                            }\r\n                        }}\r\n                        placeholder={props.placeholder}\r\n                    />\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldDropdownMulti;","import React from 'react';\r\nimport { NormalPeoplePicker } from '@fluentui/react';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldEmployee = (props) => {\r\n\r\n    const onFilterChagned = async (filterText, currentPersonas) => {\r\n        let tData = [];\r\n        if (filterText) {\r\n            if (props.API) {\r\n                await props.API.get(props.dataurl + \"?search=\" + filterText).then(response => {\r\n                    if (response.status === 200 && response.data?.rettype === 0) {\r\n                        if (response.data?.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        tData?.map(r => {\r\n            r.secondaryText = r.secondarytext ? r.secondarytext : '--'\r\n        });\r\n\r\n        return tData;\r\n    };\r\n\r\n\r\n    const onEmptyInputFocus = async () => {\r\n\r\n        let tData = [];\r\n\r\n        if (props.API) {\r\n            await props.API.get(props.dataurl + \"?lfr=true\").then(response => {\r\n                if (response.status == 200 && response.data.rettype == 0) {\r\n                    if (response.data.retdata?.length > 0) {\r\n                        tData = response.data.retdata;\r\n                    }\r\n                }\r\n            });\r\n        }\r\n\r\n        tData?.map(r => {\r\n            r.secondaryText = r.secondarytext ? r.secondarytext : '--'\r\n        });\r\n\r\n        return tData;\r\n    }\r\n\r\n    const onSelectEmp = (p_value) => {\r\n        if (p_value?.length > 0) {\r\n            props.onChanged(p_value[0].key, p_value[0].secondaryText, props.keyfield, p_value[0].email);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ fontWeight: 600, fontSize: 14 }}>{props.title}</div>\r\n            <div style={{ marginTop: 6 }}>\r\n                <NormalPeoplePicker\r\n                    onResolveSuggestions={onFilterChagned}\r\n                    onEmptyInputFocus={onEmptyInputFocus}\r\n                    resolveDelay={1000}\r\n                    itemLimit={1}\r\n                    onChange={onSelectEmp}\r\n                    pickerSuggestionsProps={{\r\n                        noResultsFoundText: 'Харуулах мэдээлэлгүй байна',\r\n                    }}\r\n                    inputProps={{\r\n                        placeholder: props.title\r\n                    }}\r\n                />\r\n                {(props.required && !props.defaultValue && props.checkreq) ? (\r\n                    <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                        {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                    </div>\r\n                ) : null}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldEmployee;","import React, { useState, useEffect } from 'react';\r\nimport { Shimmer, TagPicker } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldItemList = (props) => {\r\n\r\n    const [value, setValue] = useState([]);\r\n    const [lastSearchValue, setLastSearchValue] = useState();\r\n\r\n    useEffect(() => {\r\n        let tValue = [];\r\n\r\n        if (props?.defaultValue?.length > 0\r\n            && props?.defaultValue[0].key != null\r\n            && props?.defaultValue[0].key != undefined\r\n            && props?.defaultValue[0].key != NaN\r\n            && props?.defaultValue[0].key?.toString() != \"\"\r\n            && props?.defaultValue[0].name) {\r\n            tValue = props.defaultValue;\r\n        }\r\n\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    const filterSuggested = async (p_filterText, p_list) => {\r\n        let tRule = true;\r\n        let tData = [];\r\n        setLastSearchValue(p_filterText);\r\n\r\n        let tParam = ['search=' + p_filterText];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.get(props.dataurl + \"?\" + tParam.join(\"&\")).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData;\r\n    }\r\n\r\n    const onEmptyInputFocus = async () => {\r\n        let tRule = true;\r\n        let tData = [];\r\n\r\n        let tParam = [\"lfr=true\"];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.get(props.dataurl + \"?\" + tParam.join(\"&\")).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData;\r\n    }\r\n\r\n    const onChange = (item) => {\r\n        setValue(item);\r\n        if (item?.length > 0) {\r\n            props.onChanged(item[0].key, item[0].text, props.keyfield, props.keyfieldname, props.title);\r\n        } else {\r\n            props.onChanged(null, null, props.keyfield, '', props.title);\r\n        }\r\n    };\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <TagPicker\r\n                        styles={{\r\n                            root: {\r\n                                backgroundColor: Color.white\r\n                            }\r\n                        }}\r\n                        disabled={props.disable == true ? true : false}\r\n                        onResolveSuggestions={filterSuggested}\r\n                        onEmptyInputFocus={onEmptyInputFocus}\r\n                        resolveDelay={1000}\r\n                        itemLimit={1}\r\n                        selectedItems={value}\r\n                        onChange={onChange}\r\n                        pickerSuggestionsProps={{\r\n                            suggestionsHeaderText: '\"' + (lastSearchValue ? lastSearchValue : '') + '\"-н бүх утгыг харах',\r\n                            noResultsFoundText: 'Харуулах мэдээлэлгүй байна',\r\n                        }}\r\n                        inputProps={{\r\n                            placeholder: 'Хайх утгаа бичнэ үү'\r\n                        }}\r\n                    />\r\n                )}\r\n            </div>\r\n            {(props.required && !(props?.defaultValue?.length > 0 && props?.defaultValue[0].key) && props.checkreq) ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                </div>\r\n            ) : null}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldItemList;","export const setRecent = (p_key, p_value) => {\r\n    if (p_key && p_value) {\r\n        let tExistsItem = [];\r\n        let eIndex = -1;\r\n\r\n        if (localStorage.getItem(p_key + \"_recent\")) {\r\n            tExistsItem = JSON.parse(localStorage.getItem(p_key + \"_recent\"));\r\n        }\r\n\r\n        eIndex = tExistsItem.indexOf(p_value);\r\n\r\n        if (eIndex >= 0) {\r\n            tExistsItem.splice(eIndex, 1);\r\n        }\r\n\r\n        tExistsItem.unshift(p_value);\r\n\r\n        if (tExistsItem?.length > 5) {\r\n            tExistsItem = tExistsItem.slice(0, 5);\r\n        }\r\n\r\n        localStorage.setItem(p_key + \"_recent\", JSON.stringify(tExistsItem));\r\n    }\r\n}\r\n\r\nexport const getRecent = (p_key) => {\r\n    let tExistsItem = [];\r\n\r\n    if (localStorage.getItem(p_key + \"_recent\")) {\r\n        tExistsItem = JSON.parse(localStorage.getItem(p_key + \"_recent\"));\r\n    }\r\n\r\n    return tExistsItem;\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Shimmer, TagPicker } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\nimport { ReactComponent as PlusIcon } from '../../svg/plusIcon.svg';\r\nimport { getRecent, setRecent } from '../../SharedFunc/Recent';\r\n\r\nconst FieldItemListAdd = (props) => {\r\n\r\n    const [value, setValue] = useState([]);\r\n    const [lastSearchValue, setLastSearchValue] = useState();\r\n\r\n    useEffect(() => {\r\n        let tValue = [];\r\n\r\n        if (props?.defaultValue?.length > 0\r\n            && props?.defaultValue[0].key != null\r\n            && props?.defaultValue[0].key != undefined\r\n            && props?.defaultValue[0].key != NaN\r\n            && props?.defaultValue[0].key?.toString() != \"\"\r\n            && props?.defaultValue[0].name) {\r\n            tValue = props.defaultValue;\r\n        }\r\n\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    const filterSuggested = async (p_filterText, p_list) => {\r\n\r\n        let tRule = true;\r\n        let tData = [];\r\n        setLastSearchValue(p_filterText);\r\n\r\n        let tParam = ['search=' + p_filterText];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.get(props.dataurl + \"?\" + tParam.join(\"&\")).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData.concat({ key: \"newItem\", name: '\"' + p_filterText + '\" утгыг нэмэх', isNewItem: true, newValue: p_filterText });\r\n    }\r\n\r\n    const onChange = async (item) => {\r\n        let tItem = item;\r\n\r\n        if (item && item?.length > 0 && item[0].isNewItem && item[0].newValue) {\r\n\r\n            if (props?.onAdd) {\r\n                tItem = [];\r\n                props?.onAdd(item[0].newValue);\r\n            } else {\r\n                let tParam = {\r\n                    name: item[0].newValue\r\n                };\r\n\r\n                if (props.saveparam?.length > 0) {\r\n                    props.saveparam.map(r => {\r\n                        tParam[r.key] = r.name;\r\n                    });\r\n                }\r\n\r\n                if (props.API) {\r\n                    await props.API.post(props.saveurl, [\r\n                        tParam\r\n                    ]).then(response => {\r\n                        if (response.status == 200 && response.data.rettype == 0) {\r\n                            tItem = response.data.retdata;\r\n                        }\r\n                    });\r\n                }\r\n            }\r\n        }\r\n\r\n        setValue(tItem);\r\n        if (tItem?.length > 0 && tItem[0].key != \"newItem\") {\r\n            props.onChanged(tItem[0].key, tItem[0].text, props.keyfield, props.keyfieldname, props.title);\r\n            setRecent(props.keyfield, tItem[0].key);\r\n        } else {\r\n            props.onChanged(null, null, props.keyfield, '', props.title);\r\n        }\r\n    };\r\n\r\n    const onEmptyInputFocus = async () => {\r\n\r\n        let tRecent = getRecent(props.keyfield);\r\n\r\n        let tRule = true;\r\n        let tParam = [\"lfr=true\"];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRecent?.length > 0) {\r\n            tRecent.map(r => {\r\n                tParam.push(\"ids=\" + r);\r\n            });\r\n        }\r\n\r\n        let tData = [];\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.get(props.dataurl + (tParam?.length > 0 ? (\"?\" + tParam.join(\"&\")) : \"\")).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData;\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <TagPicker\r\n                        styles={{\r\n                            root: {\r\n                                backgroundColor: Color.white\r\n                            }\r\n                        }}\r\n                        disabled={props.disable == true ? true : false}\r\n                        onEmptyInputFocus={onEmptyInputFocus}\r\n                        onResolveSuggestions={filterSuggested}\r\n                        resolveDelay={1000}\r\n                        itemLimit={1}\r\n                        selectedItems={value}\r\n                        onChange={onChange}\r\n                        pickerSuggestionsProps={{\r\n                            suggestionsHeaderText: '\"' + (lastSearchValue ? lastSearchValue : '') + '\"-н бүх утгыг харах',\r\n                            noResultsFoundText: 'Харуулах мэдээлэлгүй байна',\r\n                        }}\r\n                        inputProps={{\r\n                            placeholder: 'Хайх утгаа бичнэ үү'\r\n                        }}\r\n                        onRenderSuggestionsItem={(p_props, p_item_props) => {\r\n                            if (p_props.isNewItem) {\r\n                                return (\r\n                                    <div style={{ display: 'flex', backgroundColor: '#F7F7F7', width: '100% ', alignItems: 'center' }}>\r\n                                        <div style={{ marginLeft: 12 }}>\r\n                                            <PlusIcon />\r\n                                        </div>\r\n                                        <div style={{ margin: '6px 12px' }}>{p_props.name}</div>\r\n                                    </div>\r\n                                );\r\n                            } else {\r\n                                return (\r\n                                    <div style={{ margin: '6px 12px' }}>{p_props.name}</div>\r\n                                );\r\n                            }\r\n                        }}\r\n                    />\r\n                )}\r\n            </div>\r\n            {(props.required && !(props?.defaultValue?.length > 0 && props?.defaultValue[0].key) && props.checkreq) ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                </div>\r\n            ) : null}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldItemListAdd;","import React, { useState, useEffect } from 'react';\r\nimport { Shimmer, TagPicker } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldItemListGrid = (props) => {\r\n\r\n    const [value, setValue] = useState([]);\r\n    const [lastSearchValue, setLastSearchValue] = useState();\r\n\r\n    useEffect(() => {\r\n        let tValue = [];\r\n\r\n        if (props?.defaultValue?.length > 0\r\n            && props?.defaultValue[0].key != null\r\n            && props?.defaultValue[0].key != undefined\r\n            && props?.defaultValue[0].key != NaN\r\n            && props?.defaultValue[0].key?.toString() != \"\"\r\n            && props?.defaultValue[0].name) {\r\n            tValue = props.defaultValue;\r\n        }\r\n\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n    const filterSuggested = async (p_filterText, p_list) => {\r\n        let tRule = true;\r\n        let tData = [];\r\n        setLastSearchValue(p_filterText);\r\n\r\n        let tParam = ['search=' + p_filterText];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.post(props.dataurl + \"?\" + tParam.join(\"&\"), props.body).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData;\r\n    }\r\n\r\n    const onEmptyInputFocus = async () => {\r\n        let tRule = true;\r\n        let tData = [];\r\n\r\n        let tParam = [\"lfr=true\"];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.post(props.dataurl + \"?\" + tParam.join(\"&\"), props.body).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData;\r\n    }\r\n\r\n    const onChange = (item) => {\r\n        setValue(item);\r\n        if (item?.length > 0) {\r\n            props.onChanged(props.index, props.keyfield, item[0].key, props.keyfieldname, item[0].text, item[0]);\r\n        } else {\r\n            props.onChanged(props.index, props.keyfield, null, props.keyfieldname, null, null);\r\n        }\r\n    };\r\n\r\n    return (\r\n        <div>\r\n            <div>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <TagPicker\r\n                        styles={{\r\n                            root: {\r\n                                backgroundColor: Color.white\r\n                            }\r\n                        }}\r\n                        disabled={props.disable == true ? true : false}\r\n                        onResolveSuggestions={filterSuggested}\r\n                        onEmptyInputFocus={onEmptyInputFocus}\r\n                        resolveDelay={1000}\r\n                        itemLimit={1}\r\n                        selectedItems={value}\r\n                        onChange={onChange}\r\n                        pickerSuggestionsProps={{\r\n                            suggestionsHeaderText: '\"' + (lastSearchValue ? lastSearchValue : '') + '\"-н бүх утгыг харах',\r\n                            noResultsFoundText: 'Харуулах мэдээлэлгүй байна',\r\n                        }}\r\n                        inputProps={{\r\n                            placeholder: 'Хайх утгаа бичнэ үү'\r\n                        }}\r\n                    />\r\n                )}\r\n            </div>\r\n            {(props.required && !(props?.defaultValue?.length > 0 && props?.defaultValue[0].key) && props.checkreq) ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                </div>\r\n            ) : null}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldItemListGrid;","import React, { useState, useEffect } from 'react';\r\nimport { Shimmer, TagPicker } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldItemListGridGet = (props) => {\r\n\r\n    const [value, setValue] = useState([]);\r\n    const [lastSearchValue, setLastSearchValue] = useState();\r\n\r\n    useEffect(() => {\r\n        let tValue = [];\r\n\r\n        if (props?.defaultValue?.length > 0\r\n            && props?.defaultValue[0].key != null\r\n            && props?.defaultValue[0].key != undefined\r\n            && props?.defaultValue[0].key != NaN\r\n            && props?.defaultValue[0].key?.toString() != \"\"\r\n            && props?.defaultValue[0].name) {\r\n            tValue = props.defaultValue;\r\n        }\r\n\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n    const filterSuggested = async (p_filterText, p_list) => {\r\n        let tRule = true;\r\n        let tData = [];\r\n        setLastSearchValue(p_filterText);\r\n\r\n        let tParam = ['search=' + p_filterText];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.get(props.dataurl + \"?\" + tParam.join(\"&\")).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData;\r\n    }\r\n\r\n    const onEmptyInputFocus = async () => {\r\n        let tRule = true;\r\n        let tData = [];\r\n\r\n        let tParam = [\"lfr=true\"];\r\n\r\n        if (props.dataparam?.length > 0) {\r\n            props.dataparam.map(r => {\r\n                tParam.push(r.key + '=' + r.name);\r\n                if (!r.name) {\r\n                    tRule = false;\r\n                }\r\n            });\r\n        }\r\n\r\n        if (tRule) {\r\n            if (props.API) {\r\n                await props.API.get(props.dataurl + \"?\" + tParam.join(\"&\")).then(response => {\r\n                    if (response.status == 200 && response.data.rettype == 0) {\r\n                        if (response.data.retdata?.length > 0) {\r\n                            tData = response.data.retdata;\r\n                            tData.map(r => {\r\n                                r.name = r.text\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\r\n        return tData;\r\n    }\r\n\r\n    const onChange = (item) => {\r\n        setValue(item);\r\n        if (item?.length > 0) {\r\n            props.onChanged(props.index, props.keyfield, item[0].key, props.keyfieldname, item[0].text, item[0]);\r\n        } else {\r\n            props.onChanged(props.index, props.keyfield, null, props.keyfieldname, null, null);\r\n        }\r\n    };\r\n\r\n    return (\r\n        <div>\r\n            <div>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <TagPicker\r\n                        styles={{\r\n                            root: {\r\n                                backgroundColor: Color.white\r\n                            }\r\n                        }}\r\n                        disabled={props.disable == true ? true : false}\r\n                        onResolveSuggestions={filterSuggested}\r\n                        onEmptyInputFocus={onEmptyInputFocus}\r\n                        resolveDelay={1000}\r\n                        itemLimit={1}\r\n                        selectedItems={value}\r\n                        onChange={onChange}\r\n                        pickerSuggestionsProps={{\r\n                            suggestionsHeaderText: '\"' + (lastSearchValue ? lastSearchValue : '') + '\"-н бүх утгыг харах',\r\n                            noResultsFoundText: 'Харуулах мэдээлэлгүй байна',\r\n                        }}\r\n                        inputProps={{\r\n                            placeholder: 'Хайх утгаа бичнэ үү'\r\n                        }}\r\n                    />\r\n                )}\r\n            </div>\r\n            {(props.required && !(props?.defaultValue?.length > 0 && props?.defaultValue[0].key) && props.checkreq) ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                </div>\r\n            ) : null}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldItemListGridGet;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst FieldLabel = (props) => {\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ color: Color.graySecond, fontSize: 14 }}>{props.title}</div>\r\n            <div style={{ marginTop: 6, fontSize: 14, color: Color.blackSecond }}>\r\n                {props.value}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldLabel;","import React from 'react';\r\nimport { TextField } from '@fluentui/react';\r\n\r\nconst FieldLabelBorder = (props) => {\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ fontWeight: 600, fontSize: 14 }}>{props.title}</div>\r\n            <div style={{ marginTop: 6 }}>\r\n                <TextField value={props.value} disabled />\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldLabelBorder;","import React, { useState, useEffect } from 'react';\r\nimport { Shimmer, TextField } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldNumber = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (value) => {\r\n        setValue(value.target.value);\r\n        props.onChanged(value.target.value, '', props.keyfield, '', props.title);\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontWeight: 600, fontSize: 14 }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <TextField\r\n                        onChange={onChanged}\r\n                        disabled={props.disable}\r\n                        type='number'\r\n                        value={value ? value : null}\r\n                        errorMessage={(props.required && !value && props.checkreq) ? (props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)) : null}\r\n                        placeholder={props.placeholder}\r\n                    />\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldNumber;","import React, { useState, useEffect } from 'react';\r\nimport { Shimmer, TextField } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\nimport NumberFormat from 'react-number-format';\r\n\r\nconst FieldNumberFormat = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (value) => {\r\n        if (value.target.value) {\r\n            let tValue = parseFloat(value.target.value?.toString()?.replaceAll(\",\", ''));\r\n            setValue(tValue);\r\n            props.onChanged(tValue, '', props.keyfield, '', props.title);\r\n        } else {\r\n            setValue(null);\r\n            props.onChanged(null, '', props.keyfield, '', props.title);\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n\r\n    let errorMsg = null;\r\n    if (props.limit && value) {\r\n        if (parseFloat(value?.toString().replaceAll(',', '')) < parseFloat(props.limit.min)\r\n            || parseFloat(value?.toString().replaceAll(',', '')) > parseFloat(props.limit.max)) {\r\n            errorMsg = 'Хязгаараас хэтэрсэн';\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            {props.title && (\r\n                <div style={{ display: 'flex' }}>\r\n                    <div style={{ fontWeight: 600, fontSize: 14 }}>\r\n                        {props.title}\r\n                        {props.limit ? (\" (\" + props.limit.min + \"-\" + props.limit.max + \")\") : null}\r\n                    </div>\r\n                    {props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n                </div>\r\n            )}\r\n            <div style={{ marginTop: props.title ? 6 : 0 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <NumberFormat\r\n                        style={{ textAlign: 'end' }}\r\n                        customInput={TextField}\r\n                        onChange={onChanged}\r\n                        thousandSeparator={true}\r\n                        decimalScale={2}\r\n                        disabled={props.disable}\r\n                        value={value}\r\n                        errorMessage={(props.required && (!value || errorMsg) && props.checkreq) ? (errorMsg ? errorMsg : (props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired))) : null}\r\n                        placeholder={props.placeholder}\r\n                        fixedDecimalScale={props?.fixedDecimalScale ? true : false}\r\n                    />\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldNumberFormat;","import React, { useState, useEffect } from 'react';\r\nimport { Shimmer, TextField } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\nimport NumberFormat from 'react-number-format';\r\n\r\nconst FieldNumberFormatIncludeZero = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (value) => {\r\n        if (value.target.value) {\r\n            let tValue = parseFloat(value.target.value?.toString()?.replaceAll(\",\", ''));\r\n            setValue(tValue);\r\n            props.onChanged(tValue, '', props.keyfield, '', props.title);\r\n        } else {\r\n            setValue(null);\r\n            props.onChanged(null, '', props.keyfield, '', props.title);\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n\r\n    let errorMsg = null;\r\n    if (props.limit && value) {\r\n        if (parseFloat(value?.toString().replaceAll(',', '')) < parseFloat(props.limit.min)\r\n            || parseFloat(value?.toString().replaceAll(',', '')) > parseFloat(props.limit.max)) {\r\n            if (props.lang == \"en\") {\r\n                errorMsg = 'Limit exceeded';\r\n            } else {\r\n                errorMsg = 'Хязгаараас хэтэрсэн';\r\n            }\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            {props.title && (\r\n                <div style={{ display: 'flex' }}>\r\n                    <div style={{ fontWeight: 600, fontSize: 14 }}>\r\n                        {props.title}\r\n                        {props.limit ? (\" (\" + props.limit.min + \"-\" + props.limit.max + \")\") : null}\r\n                    </div>\r\n                    {props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n                </div>\r\n            )}\r\n            <div style={{ marginTop: props.title ? 6 : 0 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <NumberFormat\r\n                        style={{ textAlign: 'end' }}\r\n                        customInput={TextField}\r\n                        onChange={onChanged}\r\n                        thousandSeparator={true}\r\n                        decimalScale={2}\r\n                        disabled={props.disable}\r\n                        value={value ? value : null}\r\n                        errorMessage={(props.required && (value < 0 || value == null || errorMsg) && props.checkreq) ? (errorMsg ? errorMsg : (props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired))) : null}\r\n                        placeholder={props.placeholder}\r\n                    />\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldNumberFormatIncludeZero;","import React, { useState, useEffect } from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport { TextField } from '@fluentui/react';\r\n\r\nconst FieldNumberGrid = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (value) => {\r\n        setValue(value.target.value);\r\n        props.onChanged(props.keyfield, props.index, value.target.value, '', props.title);\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.value);\r\n    }, [props.value]);\r\n\r\n    return (\r\n        <div style={{ marginLeft: 16 }}>\r\n            <NumberFormat\r\n                style={{ textAlign: 'end' }}\r\n                customInput={TextField}\r\n                onChange={onChanged}\r\n                thousandSeparator={true}\r\n                decimalScale={2}\r\n                disabled={props.disable}\r\n                value={value ? value : null}\r\n                placeholder={props.placeholder}\r\n            />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldNumberGrid;","import React, { useState, useEffect } from 'react';\r\nimport { TextField } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldPassword = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (p_value) => {\r\n        setValue(p_value.target.value);\r\n        props.onChanged(p_value.target.value, '', props.keyfield, '', props.title);\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.defaultValue);\r\n    }, [props.defaultValue])\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    let styles = {};\r\n    if (props.height) {\r\n        styles = {\r\n            field: {\r\n                height: props.height\r\n            },\r\n            fieldGroup: {\r\n                height: props.height\r\n            }\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                <TextField \r\n                    styles={{ ...styles }} \r\n                    autoComplete='off' \r\n                    type='password' \r\n                    disabled={props.disable == true ? true : false} \r\n                    onChange={onChanged} \r\n                    value={value} \r\n                    errorMessage={(props.required && !value && props.checkreq) ? (props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)) : null} \r\n                    placeholder={props.placeholder}\r\n                    />\r\n            </div>\r\n        </div >\r\n    );\r\n}\r\n\r\nexport default FieldPassword;","import React from 'react';\r\nimport { SearchBox } from '@fluentui/react';\r\n\r\nconst FieldSearch = (props) => {\r\n    return (\r\n        <div>\r\n            <SearchBox\r\n                placeholder={props.placeholder}\r\n                style={{ width: props.large ? 300 : 200 }}\r\n                styles={{\r\n                    root: {\r\n                        border: '1px solid #E5E5E5'\r\n                    }\r\n                }} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldSearch;","export const validEnglish = new RegExp('(?![×÷])[A-Za-zÀ-ÿ]');\r\nexport const validNumber = /^[0-9]$/;\r\nexport const validMongolian = /^[А-ЯӨҮЁа-яөүё]/;\r\nexport const validRegister = /^[А-ЯӨҮЁ]{2}[0-9]{8}$/;","import React, { useState, useEffect } from 'react';\r\nimport { TextField } from '@fluentui/react';\r\nimport { Color, specialCharacters, ctrlCommandKeys } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\nimport { Shimmer } from '@fluentui/react';\r\nimport { validEnglish, validNumber, validMongolian, validRegister } from '../../const/Regex';\r\n\r\nconst FieldText = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n    const [regexMessage, setRegexMessage] = useState(\"\");\r\n    const [warningMsg, setWarningMsg] = useState(\"\");\r\n\r\n    const onChanged = (p_value) => {\r\n        if (props.limit > 0 && p_value?.target?.value?.length > props.limit) {\r\n            let tValue = p_value.target.value?.substring(0, props.limit);\r\n            setValue(tValue);\r\n            props.onChanged(tValue, '', props.keyfield, '', props.title);\r\n        } else {\r\n            if (props.regex) {\r\n                if (props.regex === 'register' || props.regex === 'property' || props.regex === 'transport') {\r\n                    setValue(p_value.target.value.toUpperCase());\r\n                }\r\n                onValidate(p_value.target.value);\r\n            } else {\r\n                setValue(p_value.target.value);\r\n            }\r\n            props.onChanged(p_value.target.value, '', props.keyfield, '', props.title);\r\n        }\r\n        if (props.limitMin > 0 && p_value?.target?.value?.length < props.limitMin) {\r\n            setWarningMsg(`Хамгийн багадаа ${props.limitMin} тэмдэгт оруулна уу!`);\r\n        } else {\r\n            setWarningMsg('');\r\n        }\r\n    }\r\n\r\n    const onValidate = (p_value) => {\r\n        if (props.regex && p_value) {\r\n            switch (props.regex) {\r\n                case \"cyrillic\":\r\n                    if (validEnglish.test(p_value)) {\r\n                        setRegexMessage(\"Кирилл үсэг оруулна уу\");\r\n                        return false;\r\n                    } else {\r\n                        setRegexMessage(\"\");\r\n                    }\r\n                    break;\r\n                case \"register\":\r\n                    const validRegister = /^[А-ЯӨҮЁ]{2}[0-9]{8}$/;\r\n                    if (!validRegister.test(p_value)) {\r\n                        setRegexMessage(\"Зөв РД оруулна уу\");\r\n                    } else {\r\n                        setRegexMessage(\"\");\r\n                    }\r\n                    if (!value || value.length < 2) {\r\n                        if (!validMongolian.test(p_value)) {\r\n                            return false;\r\n                        }\r\n                    } else {\r\n                        if (value && value.length < 10) {\r\n                            if (value.length === 9) {\r\n                                return true;\r\n                            }\r\n                            if (!validNumber.test(p_value)) {\r\n                                return false\r\n                            }\r\n                        } else {\r\n                            setRegexMessage(\"\");\r\n                            return false;\r\n                        }\r\n                    }\r\n                    break;\r\n                case \"property\":\r\n                    const validPropertyLetter = /^[үҮ]{1}/;\r\n                    const validProperty = /^[Ү]{1}[0-9]{10}$/;\r\n                    if (!validProperty.test(p_value)) {\r\n                        setRegexMessage(\"Зөв гэрчилгээний дугаар оруулна уу\");\r\n                    } else {\r\n                        setRegexMessage(\"\");\r\n                    }\r\n                    if (!value || value.length < 1) {\r\n                        if (!validPropertyLetter.test(p_value)) {\r\n                            return false;\r\n                        }\r\n                    } else {\r\n                        if (value && value.length < 11) {\r\n                            if (value.length === 10) {\r\n                                return true;\r\n                            }\r\n                            if (!validNumber.test(p_value)) {\r\n                                return false\r\n                            }\r\n                        } else {\r\n                            setRegexMessage(\"\");\r\n                            return false;\r\n                        }\r\n                    }\r\n                    break;\r\n                case \"transport\":\r\n                    const validTransport = /^[0-9]{4}[А-ЯӨҮЁа-яөүёа]{3}$/;\r\n                    const validTransportLetter = /^[А-ЯӨҮЁа-яөүё]$/;\r\n                    if (!validTransport.test(p_value)) {\r\n                        setRegexMessage(\"Зөв улсын дугаар оруулна уу\");\r\n                    } else {\r\n                        setRegexMessage(\"\");\r\n                    }\r\n                    if (!value || value.length < 4) {\r\n                        if (!validNumber.test(p_value)) {\r\n                            return false\r\n                        }\r\n                    } else {\r\n                        if (value && value.length < 7) {\r\n                            if (!validTransportLetter.test(p_value)) {\r\n                                return false;\r\n                            }\r\n                        } else {\r\n                            setRegexMessage(\"\");\r\n                            return false;\r\n                        }\r\n                    }\r\n                    break;\r\n                default:\r\n                    const exp = new RegExp(props.regex);\r\n                    if (!exp.test(p_value)) {\r\n                        setRegexMessage(props.regexMessage);\r\n                        return false;\r\n                    } else {\r\n                        setRegexMessage(\"\");\r\n                    }\r\n                    break;\r\n            }\r\n        }\r\n        return true;\r\n    }\r\n\r\n    const onKeyDown = (e) => {\r\n        if (e.keyCode == 13 && props.onEnterClicked) {\r\n            props.onEnterClicked(value);\r\n        }\r\n        if (props.regex && \r\n            (props.regex === 'cyrillic' || props.regex === 'register' || props.regex === 'property' || props.regex === 'transport')\r\n        ) {\r\n            if (e.ctrlKey && ctrlCommandKeys.includes(e.keyCode)) return;\r\n            if (!specialCharacters.includes(e.keyCode)) {\r\n                let isValid = onValidate(e.key);\r\n                if (!isValid) e.preventDefault();\r\n            }\r\n        }\r\n    }\r\n\r\n    const onBlur = () => {\r\n        if (props.onFocusOut) {\r\n            props.onFocusOut();\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    let vMaxLength = {};\r\n    if (props.maxLength) {\r\n        vMaxLength = {\r\n            maxLength: props.maxLength\r\n        }\r\n    }\r\n\r\n\r\n    let errorMessage = null;\r\n\r\n    if (props.required && props.checkreq) {\r\n        if (props.message) {\r\n            errorMessage = props.message;\r\n        } else if (!value) {\r\n            errorMessage = props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired);\r\n        }\r\n    }\r\n\r\n    let styles = {};\r\n    if (props.height) {\r\n        styles = {\r\n            field: {\r\n                height: props.height\r\n            },\r\n            fieldGroup: {\r\n                height: props.height\r\n            }\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            {props.title && (\r\n                <div style={{ display: 'flex' }}>\r\n                    <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n                </div>\r\n            )}\r\n            <div style={{ marginTop: props.title ? 6 : 0 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <TextField\r\n                        styles={{ ...styles }}\r\n                        {...vMaxLength}\r\n                        autoComplete='off'\r\n                        disabled={props.disable == true ? true : false}\r\n                        onChange={onChanged}\r\n                        type={props.type}\r\n                        onKeyDown={onKeyDown}\r\n                        value={value}\r\n                        errorMessage={errorMessage}\r\n                        placeholder={props.placeholder}\r\n                        onBlur={onBlur}\r\n                    />\r\n                )}\r\n            </div>\r\n            {props.regex && regexMessage ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {regexMessage}\r\n                </div>\r\n            ) : null}\r\n            {props.limitMin && warningMsg ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {warningMsg}\r\n                </div>\r\n            ) : null}\r\n            {props.link ? (\r\n                <div onClick={props.linkfunc} style={{ marginTop: 6, color: Color.blue, cursor: 'pointer', textDecoration: 'underline', fontSize: 12 }}>\r\n                    {props.link}\r\n                </div>\r\n            ) : null}\r\n        </div >\r\n    );\r\n}\r\n\r\nexport default FieldText;","import React, { useState, useEffect } from 'react';\r\nimport { TextField } from '@fluentui/react';\r\nimport { Color, specialCharacters, ctrlCommandKeys } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn  } from '../../const/MessageConst';\r\nimport { validEnglish } from '../../const/Regex';\r\n\r\nconst FieldTextArea = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n    const [regexMessage, setRegexMessage] = useState(\"\");\r\n    const [warningMsg, setWarningMsg] = useState(\"\");\r\n\r\n    const onChanged = (p_value) => {\r\n        setValue(p_value.target.value);\r\n        props.onChanged(p_value.target.value, '', props.keyfield, '', props.title);\r\n        if (props.regex) {\r\n            onValidate(p_value.target.value);\r\n        }\r\n        if (props.limitMin > 0 && p_value?.target?.value?.length < props.limitMin) {\r\n            setWarningMsg(`Хамгийн багадаа ${props.limitMin} тэмдэгт оруулна уу!`);\r\n        } else {\r\n            setWarningMsg('');\r\n        }\r\n    }\r\n\r\n    const onValidate = (p_value) => {\r\n        if (props.regex && p_value) {\r\n            switch (props.regex) {\r\n                case \"cyrillic\":\r\n                    if (validEnglish.test(p_value)) {\r\n                        setRegexMessage(\"Кирилл үсэг оруулна уу\");\r\n                        return false;\r\n                    } else {\r\n                        setRegexMessage(\"\");\r\n                    }\r\n                    break;\r\n                default:\r\n                    const exp = new RegExp(props.regex);\r\n                    if (!exp.test(p_value)) {\r\n                        setRegexMessage(props.regexMessage);\r\n                        return false;\r\n                    } else {\r\n                        setRegexMessage(\"\");\r\n                    }\r\n                    break;\r\n            }\r\n        }\r\n        return true;\r\n    }\r\n\r\n    const onKeyDown = (e) => {\r\n        if (props.regex && props.regex === 'cyrillic') {\r\n            if (e.ctrlKey && ctrlCommandKeys.includes(e.keyCode)) return;\r\n            if (!specialCharacters.includes(e.keyCode)) {\r\n                let isValid = onValidate(e.key);\r\n                if (!isValid) e.preventDefault();\r\n            }\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    let vMaxLength = {};\r\n    if (props.maxLength) {\r\n        vMaxLength = {\r\n            maxLength: props.maxLength\r\n        }\r\n    }\r\n\r\n\r\n    let errorMessage = null;\r\n\r\n    if (props.required && props.checkreq) {\r\n        if (props.message) {\r\n            errorMessage = props.message;\r\n        } else if (!value) {\r\n            errorMessage = props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                <TextField \r\n                    multiline\r\n                    rows={props.rows}\r\n                    {...vMaxLength}\r\n                    autoComplete='off' \r\n                    disabled={props.disable == true ? true : false} \r\n                    onChange={onChanged} \r\n                    onKeyDown={onKeyDown}\r\n                    value={value} \r\n                    errorMessage={errorMessage}\r\n                    placeholder={props.placeholder}\r\n                    />\r\n            </div>\r\n            {props.regex && regexMessage ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {regexMessage}\r\n                </div>\r\n            ) : null}\r\n            {props.limitMin && warningMsg ? (\r\n                <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                    {warningMsg}\r\n                </div>\r\n            ) : null}\r\n        </div >\r\n    );\r\n}\r\n\r\nexport default FieldTextArea;","import React, { useState, useEffect } from 'react';\r\nimport { TextField } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst FieldTextGrid = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (p_value) => {\r\n        setValue(p_value.target.value);\r\n        if (props.onChanged) {\r\n            props.onChanged(props.keyfield, props.index, p_value.target.value, '', props.title);\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.value);\r\n    }, [props.value]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <TextField borderless readOnly={props.disable == true ? true : false} onChange={onChanged} value={value} placeholder={props.name ? props.name : ''} />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldTextGrid;","import React, { useState, useEffect } from 'react';\r\nimport { TextField } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\nimport { Shimmer } from '@fluentui/react';\r\n\r\n\r\nconst FieldTextlarge = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n\r\n    const onChanged = (p_value) => {\r\n        setValue(p_value.target.value);\r\n        props.onChanged(p_value.target.value, '', props.keyfield, '', props.title);\r\n    }\r\n\r\n    const onKeyDown = (e) => {\r\n        if (e.keyCode == 13 && props.onEnterClicked) {\r\n            props.onEnterClicked(value);\r\n        }\r\n    }\r\n\r\n    useEffect(() => {\r\n        setValue(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    let vMaxLength = {};\r\n    if (props.maxLength) {\r\n        vMaxLength = {\r\n            maxLength: props.maxLength\r\n        }\r\n    }\r\n\r\n    let errorMessage = null;\r\n\r\n    if (props.required && props.checkreq) {\r\n        if (props.message) {\r\n            errorMessage = props.message;\r\n        } else if (!value) {\r\n            errorMessage = props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 16, color: Color.gray }}>{props.title}</div>\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                {props.loading ? (\r\n                    <div>\r\n                        <Shimmer />\r\n                        <Shimmer />\r\n                    </div>\r\n                ) : (\r\n                    <TextField canRevealPassword defaultvalue={props.defaultValue ? props.defaultValue : null} onChange={onChanged} type={props.type} onKeyDown={onKeyDown} value={value} errorMessage={errorMessage}   {...vMaxLength} autoComplete='off' disabled={props.disable == true ? true : false}\r\n                        styles={{\r\n                            field: {\r\n                                height: 56\r\n                            },\r\n                            fieldGroup: {\r\n                                height: 56,\r\n                                border: '1px solid #DADADA',\r\n                                borderRadius: 8\r\n                            },\r\n                            revealButton: { height: 56 }\r\n                        }} \r\n                        placeholder={props.placeholder}\r\n                        />\r\n                )}\r\n            </div>\r\n        </div >\r\n    );\r\n}\r\n\r\nexport default FieldTextlarge;","import React from 'react';\r\n\r\nconst FieldTextVoid = (props) => {\r\n    return (\r\n        <div>\r\n            <div style={{ fontSize: 14 }}>{props.title}</div>\r\n            <div style={{ marginTop: 6, height: 32 }}>\r\n            </div>\r\n        </div >\r\n    );\r\n}\r\n\r\nexport default FieldTextVoid;","import React from 'react';\r\nimport { IconButton } from '@fluentui/react';\r\n\r\nconst GridAction = (props) => {\r\n    return (\r\n        <div>\r\n            {props.title}\r\n            <IconButton\r\n                styles={{\r\n                    root: { float: 'right', height: 'inherit' }\r\n                }}\r\n                menuIconProps={{ iconName: \"MoreVertical\" }}\r\n                menuProps={{\r\n                    items: [\r\n                        {\r\n                            key: 'Засах',\r\n                            text: 'Засах',\r\n                            iconProps: { iconName: 'Edit' },\r\n                            onClick: () => props.onEdit(props.id)\r\n                        },\r\n                        {\r\n                            key: 'Устгах',\r\n                            text: 'Устгах',\r\n                            iconProps: { iconName: 'Delete' },\r\n                            onClick: () => props.onDelete(props.id)\r\n                        }\r\n                    ],\r\n                    directionalHintFixed: true,\r\n                }}\r\n            />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridAction;","import React from 'react';\r\nimport { DetailsList, SelectionMode, DetailsListLayoutMode } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst GridDefault = (props) => {\r\n\r\n    let columns = [];\r\n    if (props?.columns?.length > 0) {\r\n        columns = props.columns.map(r => {\r\n            let vRow = { ...r };\r\n            vRow.isResizable = true;\r\n            vRow.key = r.fieldName;\r\n\r\n            let classNames = [];\r\n            if (r.isBold) {\r\n                classNames.push(\"row-bold\");\r\n            }\r\n            if (r.isCapitalize) {\r\n                classNames.push(\"row-capitalize\")\r\n            }\r\n\r\n            if (classNames?.length > 0) {\r\n                vRow.className = classNames.join(\" \");\r\n            }\r\n\r\n            if (r.colSize) {\r\n                if (r.colSize == 'small') {\r\n                    vRow.maxWidth = 100;\r\n                }\r\n                if (r.colSize == 'mid') {\r\n                    vRow.maxWidth = 160;\r\n                }\r\n            }\r\n\r\n            if (r.minColSize) {\r\n                if (r.minColSize == 'mid') {\r\n                    vRow.minWidth = 220;\r\n                    vRow.maxWidth = 260;\r\n                } else if (r.minColSize == 'large') {\r\n                    vRow.minWidth = 320;\r\n                    vRow.maxWidth = 360;\r\n                }\r\n            }\r\n\r\n            return vRow;\r\n        });\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <DetailsList\r\n                styles={{\r\n                    root: {\r\n                        selectors: {\r\n                            '.ms-DetailsHeader': {\r\n                                paddingTop: '0px'\r\n                            },\r\n                            '.ms-DetailsRow-cell': {\r\n                                color: '#201F1E'\r\n                            }\r\n                        }\r\n                    }\r\n                }}\r\n                selectionMode={SelectionMode.none}\r\n                compact={true}\r\n                items={props.data ? props.data : []}\r\n                columns={columns}\r\n            />\r\n            {props?.footer &&\r\n                <div style={{ \r\n                        textAlign: 'right',\r\n                        padding: '11px 14px 7px 14px',\r\n                        fontWeight: 600,\r\n                        fontSize: 14,\r\n                        color: Color.backText,\r\n                        background: Color.white\r\n                        }}>\r\n                    {props.footer}\r\n                </div>}\r\n            {props?.data?.length <= 0 ? (\r\n                <div style={{ backgroundColor: Color.white, textAlign: 'center', color: Color.grayNoData, paddingBottom: 18 }}>\r\n                    Харуулах мэдээлэлгүй байна\r\n                </div>\r\n            ) : (\r\n                null\r\n            )}\r\n\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridDefault;","import React, { useState, useEffect } from 'react';\r\nimport { Color } from '../../const/Const';\r\nimport { ReactComponent as VerticalDivider } from '../../svg/verticalDividerGray.svg';\r\nimport ButtonIcon from '../ButtonIcon/ButtonIcon';\r\nimport GridDefault from '../GridDefault/GridDefault';\r\n\r\nconst GridAdd = (props) => {\r\n\r\n    const [data, setData] = useState([]);\r\n\r\n    const getData = () => {\r\n        let tData = [];\r\n        if (props.data) {\r\n            tData = props.data;\r\n        }\r\n        setData(tData);\r\n    }\r\n\r\n    useEffect(() => {\r\n        getData();\r\n    }, [props.data]);\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex', alignItems: 'center' }}>\r\n                <div style={{ fontSize: 20 }}>{props.title}</div>\r\n                <div style={{ fontSize: 14, color: Color.grayText, marginTop: 4, marginLeft: 8 }}>\r\n                    {props.description ? (\"/\" + props.description + \"/\") : \"\"}\r\n                </div>\r\n                <div style={{ height: 28, marginLeft: 16, marginRight: 16 }}>\r\n                    <VerticalDivider />\r\n                </div>\r\n                <div>\r\n                    <ButtonIcon onClick={props.onNew} text=\"Нэмэх\" iconName=\"Add\" />\r\n                </div>\r\n            </div>\r\n            <div style={{ marginTop: 24 }}>\r\n                <GridDefault\r\n                    columns={props.columns ? props.columns : []}\r\n                    data={data}\r\n                />\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridAdd;","import React, { useState, useEffect } from 'react';\r\nimport { Checkbox } from '@fluentui/react';\r\n\r\nconst GridColCheck = (props) => {\r\n\r\n    const [checked, setChecked] = useState(props.checked ? true : false);\r\n\r\n    const onChanged = (ev, isChecked) => {\r\n        setChecked(isChecked);\r\n        props.onChanged(isChecked, '', props.keyfield);\r\n    }\r\n\r\n    useEffect(() => {\r\n        setChecked(props.defaultValue);\r\n    }, [props.defaultValue]);\r\n\r\n    return (\r\n        <Checkbox disabled={props.disable == false ? true : false} checked={checked} onChange={onChanged} label={null} />\r\n    );\r\n}\r\n\r\nexport default GridColCheck;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst GridFooter = (props) => {\r\n    return (\r\n        <div style={{ fontWeight: 600, fontSize: 13, color: Color.backText }}>\r\n            {props.children}\r\n        </div>\r\n    );\r\n}\r\nexport default GridFooter;","import React from 'react';\r\nimport { ShimmeredDetailsList, SelectionMode, DetailsListLayoutMode, DetailsRow } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport GridFooter from '../GridFooter/GridFooter';\r\nimport Number from '../Number/Number';\r\nimport _ from 'lodash';\r\n\r\nconst GridDefaultShimmer = (props) => {\r\n\r\n    let columns = [];\r\n    if (props?.columns?.length > 0) {\r\n        columns = props.columns.map((r, index) => {\r\n            let vRow = { ...r };\r\n            vRow.isResizable = true;\r\n            vRow.key = r.fieldName;\r\n            vRow.index = index;\r\n\r\n            let classNames = [];\r\n            if (r.isBold) {\r\n                classNames.push(\"row-bold\");\r\n            }\r\n            if (r.isCapitalize) {\r\n                classNames.push(\"row-capitalize\")\r\n            }\r\n            if (r.align == \"right\") {\r\n                classNames.push(\"row-right\")\r\n            }\r\n\r\n            if (classNames?.length > 0) {\r\n                vRow.className = classNames.join(\" \");\r\n            }\r\n\r\n            if (r.colSize) {\r\n                if (r.colSize == 'small') {\r\n                    vRow.maxWidth = 100;\r\n                }\r\n                if (r.colSize == 'mid') {\r\n                    vRow.maxWidth = 160;\r\n                }\r\n            }\r\n            if (r.minColSize) {\r\n                if (r.minColSize == 'mid') {\r\n                    vRow.minWidth = 220;\r\n                    vRow.maxWidth = 260;\r\n                } else if (r.minColSize == 'large') {\r\n                    vRow.minWidth = 320;\r\n                    vRow.maxWidth = 360;\r\n                }\r\n            }\r\n\r\n            if (r.number) {\r\n                vRow.onRender = (pitem, pindex, pcolumn) => {\r\n                    let tValue = 0;\r\n                    if (pcolumn.key && pitem[pcolumn.key]) {\r\n                        tValue = parseFloat(pitem[pcolumn.key]?.toString()?.replaceAll(\",\", ''));\r\n                    }\r\n                    return (\r\n                        <Number value={tValue?.toFixed(2)} />\r\n                    );\r\n                };\r\n            }\r\n\r\n            return vRow;\r\n        });\r\n    }\r\n\r\n    const onRenderDetailsFooter = (detailsFooterProps) => {\r\n\r\n        let tColumns = [];\r\n\r\n        if (detailsFooterProps?.columns?.length > 0) {\r\n            tColumns = detailsFooterProps?.columns?.map((r, index) => {\r\n                let tRow = { ...r };\r\n                tRow = _.omit(tRow, \"onRender\");\r\n                return tRow;\r\n            });\r\n        }\r\n\r\n        if (tColumns?.length > 0) {\r\n            return (\r\n                <div style={{ position: props.data?.length > 20 ? 'fixed' : 'none', bottom: props.data?.length > 20 ? 0 : 'none', zIndex: props.data?.length > 20 ? 100 : 'none' }}>\r\n                    <DetailsRow\r\n                        {...detailsFooterProps}\r\n                        columns={tColumns}\r\n                        item={{}}\r\n                        onRenderItemColumn={(item, index, column) => {\r\n                            if (column) {\r\n                                if (column.index == 0) {\r\n                                    return (\r\n                                        <GridFooter>\r\n                                            {props.lang == \"en\" ? 'SUMMARY' : 'Нийт дүн'}\r\n                                        </GridFooter>\r\n                                    );\r\n                                } else {\r\n                                    if (column.summary && props.data?.length > 0) {\r\n                                        let tData = [...props.data];\r\n                                        let tSummary = tData.map(r => {\r\n                                            if (column.key && r[column.key] && !isNaN(parseFloat(r[column.key]?.toString()?.replaceAll(',', '')))) {\r\n                                                return parseFloat(r[column.key]?.toString()?.replaceAll(',', ''));\r\n                                            } else {\r\n                                                return 0;\r\n                                            }\r\n                                        }).reduce((a, b) => a + b, 0);\r\n\r\n                                        return (\r\n                                            <GridFooter>\r\n                                                <Number value={props?.integersummary ? parseInt(tSummary) : tSummary?.toFixed(2)} />\r\n                                            </GridFooter>\r\n                                        );\r\n\r\n                                    } else {\r\n                                        return (\r\n                                            <GridFooter>\r\n                                            </GridFooter>\r\n                                        );\r\n                                    }\r\n                                }\r\n                            }\r\n                            return undefined;\r\n                        }}\r\n                    />\r\n                </div>\r\n            );\r\n        } else {\r\n            return null;\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <ShimmeredDetailsList\r\n                styles={{\r\n                    root: {\r\n                        selectors: {\r\n                            '.ms-DetailsHeader': {\r\n                                paddingTop: '0px'\r\n                            },\r\n                            '.ms-DetailsRow-cell': {\r\n                                color: '#201F1E'\r\n                            }\r\n                        }\r\n                    }\r\n                }}\r\n                setKey={props.setKey ? props.setKey : null}\r\n                selectionMode={SelectionMode.none}\r\n                layoutMode={props.fixedColumns ? DetailsListLayoutMode.fixedColumns : DetailsListLayoutMode.justified}\r\n                enableShimmer={props.loading ? true : false}\r\n                compact={true}\r\n                items={props.data ? props.data : []}\r\n                columns={columns}\r\n                onRenderRow={props.onRenderRow ? props.onRenderRow : null}\r\n                onRenderDetailsFooter={props.summary && props.data?.length > 0 ? onRenderDetailsFooter : null}\r\n            />\r\n            {props?.footer &&\r\n                <div style={{ \r\n                        textAlign: 'right',\r\n                        padding: '11px 14px 7px 14px',\r\n                        fontWeight: 600,\r\n                        fontSize: 14,\r\n                        color: Color.backText,\r\n                        background: Color.white\r\n                        }}>\r\n                    {props.footer}\r\n                </div>}\r\n            {!props.loading && props?.data?.length <= 0 ? (\r\n                <div style={{ backgroundColor: Color.white, textAlign: 'center', color: Color.grayNoData, paddingBottom: 18 }}>\r\n                    {props.lang == \"en\" ? \"No Data\" : \"Харуулах мэдээлэлгүй байна\"}\r\n                </div>\r\n            ) : (\r\n                null\r\n            )}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridDefaultShimmer;","import React from 'react';\r\nimport { DetailsList, SelectionMode, DetailsListLayoutMode } from '@fluentui/react';\r\n\r\nconst GridField = (props) => {\r\n\r\n    let columns = [];\r\n    if (props?.columns?.length > 0) {\r\n        columns = props.columns.map(r => {\r\n            let vRow = { ...r };\r\n            vRow.isResizable = true;\r\n            vRow.key = r.fieldName;\r\n            return vRow;\r\n        });\r\n    }\r\n\r\n    return (\r\n        <DetailsList\r\n            styles={{\r\n                root: {\r\n                    selectors: {\r\n                        '.ms-DetailsHeader': {\r\n                            paddingTop: '0px'\r\n                        },\r\n                        '.ms-FocusZone': {\r\n                            borderBottom: '1px solid rgb(243, 242, 241)'\r\n                        },\r\n                        '.ms-DetailsRow-cell': {\r\n                            color: '#201F1E'\r\n                        },\r\n                        '.ms-DetailsHeader-cellName':{\r\n                            color: '#6A6D70',\r\n                            fontWeight: 400\r\n                        }\r\n                    }\r\n                }\r\n            }}\r\n            selectionMode={SelectionMode.none}\r\n            compact={true}\r\n            layoutMode={DetailsListLayoutMode.justified}\r\n            items={props.data ? props.data : []}\r\n            columns={columns}\r\n        />\r\n    );\r\n}\r\n\r\nexport default GridField;","import React, { useState, useEffect } from 'react';\r\nimport { ComboBox, Dropdown } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst GridFilterField = (props) => {\r\n\r\n    const [value, setValue] = useState([]);\r\n    const [value1, setValue1] = useState([]);\r\n    const [data, setData] = useState([]);\r\n    const [selectedKeys, setSelectedKeys] = useState([]);\r\n\r\n    useEffect(() => {\r\n        let tData = [];\r\n        if (props.data?.length > 0) {\r\n            tData = props.data;\r\n            if (props.parentkey) {\r\n                if (props.parentvalue?.length > 0) {\r\n                    let tParentValue = [...props.parentvalue].filter(r => r.fieldname == props.parentkey)?.map(r => r.value);\r\n                    tData = tData.filter(r => tParentValue?.includes(r.parentid));\r\n                } else {\r\n                    tData = [];\r\n                }\r\n            }\r\n        }\r\n        setData(tData);\r\n    }, [props.data, props.parentvalue]);\r\n\r\n    const onChanged = (p_value) => {\r\n        let tValue = [...value];\r\n        if (p_value.selected) {\r\n            tValue.push(p_value.key);\r\n        } else {\r\n            let tIndex = tValue.indexOf(p_value.key);\r\n            if (tIndex >= 0) {\r\n                tValue.splice(tIndex, 1);\r\n            }\r\n        }\r\n        setValue(tValue);\r\n\r\n        let tRValue = [];\r\n        tValue?.map(r => {\r\n            tRValue.push({\r\n                fieldname: props.keyfield,\r\n                value: r\r\n            });\r\n        });\r\n        props.onChanged(tRValue, props.keyfield);\r\n    }\r\n\r\n    const onChangeCombo = (event, option, index, value) => {\r\n        let tValue = [...value1];\r\n        if (option.selected) {\r\n            tValue.push(option.key);\r\n        } else {\r\n            let tIndex = tValue.indexOf(option.key);\r\n            if (tIndex >= 0) {\r\n                tValue.splice(tIndex, 1);\r\n            }\r\n        }\r\n        setValue1(tValue);\r\n\r\n        let tRValue = [];\r\n        tValue?.map(r => {\r\n            tRValue.push({\r\n                fieldname: props.keyfield,\r\n                value: r\r\n            });\r\n        });\r\n\r\n        let selected = option?.selected;\r\n        if (option) {\r\n            setSelectedKeys(prevSelectedKeys =>\r\n                selected ? [...prevSelectedKeys, option.key] : prevSelectedKeys.filter(k => k !== option.key),\r\n            );\r\n        }\r\n         props.onChanged(tRValue, props.keyfield);\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            {props?.combo ?\r\n                <ComboBox\r\n                    multiSelect\r\n                    selectedKey={selectedKeys}\r\n                    placeholder={props.namefield}\r\n                    options={data}\r\n                    onChange={onChangeCombo}\r\n                /> :\r\n                <Dropdown\r\n                    styles={{\r\n                        root: {\r\n                            maxWidth: 180\r\n                        },\r\n                        title: {\r\n                            border: '0px',\r\n                            backgroundColor: Color.grayHeaderBack\r\n                        },\r\n                        callout: {\r\n                            minWidth: 300\r\n                        }\r\n                    }}\r\n                    disabled={data?.length > 0 ? false : true}\r\n                    multiSelect\r\n                    options={data}\r\n                    placeholder={props.namefield}\r\n                    onChanged={onChanged}\r\n                />\r\n            }\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridFilterField;","import React, { useState, useEffect } from 'react';\r\nimport GridFilterField from '../GridFilterField/GridFilterField';\r\n\r\nconst GridFilter = (props) => {\r\n\r\n    const [data, setData] = useState([]);\r\n    const [value, setValue] = useState([]);\r\n\r\n    useEffect(() => {\r\n        let tData = [];\r\n        if (props?.data?.length > 0) {\r\n            tData = props.data;\r\n        }\r\n        setData(tData);\r\n    }, [props.data]);\r\n\r\n    const onChanged = (p_value, p_key) => {\r\n        let tValue = [...value];\r\n        tValue = tValue?.filter(r => r.fieldname != p_key);\r\n        tValue = tValue?.concat(p_value);\r\n        setValue(tValue);\r\n        if (props.onGridFilterChange) {\r\n            props.onGridFilterChange(tValue);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div style={{ display: 'flex' }}>\r\n            {data?.map(r => {\r\n                return (\r\n                    <div style={{ marginRight: 16 }}>\r\n                        <GridFilterField keyfield={r.key} namefield={r.text} data={r.data} onChanged={onChanged} parentkey={r.parentid} parentvalue={value} combo={r.combo} />      \r\n                    </div>\r\n                );\r\n            })}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridFilter;","import React from 'react';\r\nimport { DetailsList, SelectionMode, GroupHeader } from '@fluentui/react';\r\n\r\nconst GridGrouped = (props) => {\r\n\r\n    let columns = [];\r\n    if (props?.columns?.length > 0) {\r\n        columns = props.columns.map(r => {\r\n            let vRow = { ...r };\r\n            vRow.isResizable = true;\r\n            vRow.key = r.fieldName;\r\n            return vRow;\r\n        });\r\n    }\r\n\r\n    return (\r\n        <DetailsList\r\n            styles={{\r\n                root: {\r\n                    selectors: {\r\n                        '.ms-DetailsHeader': {\r\n                            paddingTop: '0px'\r\n                        },\r\n                        '.ms-FocusZone': {\r\n                            borderBottom: '1px solid rgb(243, 242, 241)'\r\n                        },\r\n                        '.ms-DetailsRow-cell': {\r\n                            color: '#201F1E'\r\n                        },\r\n                        '.ms-GroupHeader-title': {\r\n                            color: '#0358A7'\r\n                        }\r\n                    }\r\n                }\r\n            }}\r\n            selectionMode={SelectionMode.none}\r\n            items={props.data ? props.data : []}\r\n            compact={true}\r\n            columns={columns}\r\n            groups={props.groups ? props.groups : []}\r\n            groupProps={{\r\n                onRenderHeader: (columnProps) => {\r\n                    if (props.onHeaderClick) {\r\n                        return (\r\n                            <div onClick={() => { props.onHeaderClick(columnProps.group.key); }}>\r\n                                <GroupHeader {...columnProps} />\r\n                            </div>\r\n                        );\r\n                    } else {\r\n                        return (\r\n                            <GroupHeader {...columnProps} />\r\n                        );\r\n                    }\r\n                }\r\n            }}\r\n        />\r\n    );\r\n}\r\n\r\nexport default GridGrouped;","import React, { useState, useEffect } from 'react';\r\nimport { Color } from '../../const/Const';\r\nimport FieldItemListGridGet from '../FieldItemListGridGet/FieldItemListGridGet';\r\nimport { ReactComponent as DeleteIconColor } from '../../svg/deleteIcon.svg';\r\n\r\nconst GridMultiSelect = (props) => {\r\n\r\n    const [initData, setInitData] = useState(\r\n        {\r\n            key: null,\r\n            text: null,\r\n            rowstate: 0\r\n        }\r\n    );\r\n\r\n    const [data, setData] = useState([{ ...initData }]);\r\n\r\n    const getExistData = () => {\r\n        let tData = [{ ...initData }];\r\n        if (props?.defaultValue?.length > 0) {\r\n            if (props.defaultValue.map(r => r.rowstate).indexOf(0) < 0) {\r\n                tData = props.defaultValue.concat([{ ...initData }]);\r\n            } else {\r\n                tData = props.defaultValue;\r\n            }\r\n\r\n        }\r\n        tData?.map(r => {\r\n            if (r.text) {\r\n                r.name = r.text\r\n            }\r\n        });\r\n        setData(tData);\r\n    }\r\n\r\n    useEffect(() => {\r\n        getExistData();\r\n    }, [props.defaultValue])\r\n\r\n    const onEdit = (p_index, p_field, p_value, p_fieldname, p_valuename, p_full) => {\r\n        let tData = [...data];\r\n        tData[p_index][p_field] = p_value;\r\n        tData[p_index][p_fieldname] = p_valuename;\r\n        tData[p_index].rowstate = 1;\r\n\r\n        setData(tData);\r\n        if (props.onChanged) {\r\n            props.onChanged(tData, '', props.keyfield);\r\n        }\r\n    }\r\n\r\n    const onDelete = (p_index) => {\r\n        let tData = [...data];\r\n\r\n        tData.splice(p_index, 1);\r\n\r\n        setData(tData);\r\n        if (props.onChanged) {\r\n            props.onChanged(tData, '', props.keyfield);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, fontWeight: 600 }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            {data?.map((r, index) => {\r\n                let vBorder = {\r\n                    borderBottom: '1px solid #EDEBE9'\r\n                };\r\n                if (r.rowstate == 0) {\r\n                    vBorder = {};\r\n                }\r\n                return (\r\n                    <div key={index} style={{ display: 'flex', alignItems: 'center', paddingTop: 6, ...vBorder }}>\r\n                        {r.rowstate != 0 ? (\r\n                            <div onClick={() => onDelete(index)} style={{ display: 'flex', alignItems: 'center', cursor: 'pointer' }}><DeleteIconColor /></div>\r\n                        ) : (\r\n                            <div style={{ display: 'flex', alignItems: 'center' }}>\r\n                                <DeleteIconColor disable />\r\n                            </div>\r\n                        )}\r\n                        <div style={{ marginLeft: 8, width: '100%' }}>\r\n                            <FieldItemListGridGet onChanged={onEdit} keyfield='key' keyfieldname='text' index={index} defaultValue={[{ key: r.key, name: r.text }]} dataurl={props.dataurl} />\r\n                        </div>\r\n                    </div>\r\n                );\r\n            })}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridMultiSelect;","import React from 'react';\r\nimport { ConstCss } from '../../const/Const';\r\nimport { ReactComponent as ExcelIcon } from '../../svg/excelIcon.svg'\r\n\r\nconst IconExcel = () => {\r\n    return (\r\n        <div style={{ ...ConstCss.flexCenter, cursor: 'pointer' }}>\r\n            <ExcelIcon />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default IconExcel;","import React from 'react';\r\nimport { ConstCss } from '../../const/Const';\r\nimport { ReactComponent as FilterIcon } from '../../svg/filterIcon.svg'\r\n\r\nconst IconFilter = () => {\r\n    return (\r\n        <div style={{ ...ConstCss.flexCenter, cursor: 'pointer' }}>\r\n            <FilterIcon />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default IconFilter;","import React from 'react';\r\nimport { ConstCss } from '../../const/Const';\r\nimport { ReactComponent as FreezeIcon } from '../../svg/freezeIcon.svg'\r\n\r\nconst IconFreeze = () => {\r\n    return (\r\n        <div style={{ ...ConstCss.flexCenter, cursor: 'pointer' }}>\r\n            <FreezeIcon />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default IconFreeze;","import React from 'react';\r\nimport { ConstCss } from '../../const/Const';\r\nimport { ReactComponent as OrderByIcon } from '../../svg/orderby.svg'\r\n\r\nconst IconOrder = () => {\r\n    return (\r\n        <div style={{ ...ConstCss.flexCenter, cursor: 'pointer' }}>\r\n            <OrderByIcon />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default IconOrder;","import React, { useState, useEffect } from 'react';\r\nimport { Tree } from 'antd';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst ListTree = (props) => {\r\n\r\n    const [data, setData] = useState([]);\r\n    const [dKey, setDKey] = useState(1);\r\n\r\n    useEffect(() => {\r\n        setData(props.data);\r\n        setDKey(r => r + 1);\r\n    }, [props.data])\r\n\r\n    return (\r\n        <div key={dKey}>\r\n            <div style={{ marginBottom: 6, height: 42, display: 'flex', alignItems: 'center', paddingLeft: 16, paddingRight: 16, fontWeight: 600, fontSize: 14, backgroundColor: Color.grayHeaderBack }}>\r\n                {props.title}\r\n            </div>\r\n            <Tree\r\n                style={{ paddingLeft: 16 }}\r\n                titleRender={(nodeData) => {\r\n                    if (nodeData.level == 0) {\r\n                        return (\r\n                            <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\r\n                                <div style={{ fontWeight: 600, fontSize: 14, color: Color.blue }}>\r\n                                    {nodeData.title}\r\n                                </div>\r\n                            </div>\r\n                        );\r\n                    } else {\r\n                        return (\r\n                            <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\r\n                                <div style={{ fontSize: 12, color: '#212121' }}>\r\n                                    {nodeData.title}\r\n                                </div>\r\n                            </div>\r\n                        );\r\n                    }\r\n                }}\r\n                defaultExpandAll\r\n                treeData={data?.length > 0 ? data : []}\r\n                onSelect={props.onSelect}\r\n            />\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ListTree;","import React from 'react';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react';\r\nimport './LoadScreen.css';\r\n\r\nexport const LoadScreen = () => {\r\n    return <div className='loadScreen'>\r\n        <div className='loadScreenSpin'>\r\n            <Spinner size={SpinnerSize.large} />\r\n        </div>\r\n    </div>\r\n};\r\n\r\nexport const showLoadScreen = () => {\r\n    if (document.getElementsByClassName('loadScreen').length > 0) {\r\n        document.getElementsByClassName('loadScreen')[0].style = 'display:block';\r\n    }\r\n}\r\n\r\nexport const hideLoadScreen = () => {\r\n    if (document.getElementsByClassName('loadScreen').length > 0) {\r\n        document.getElementsByClassName('loadScreen')[0].style = 'display:none';\r\n    }\r\n}","import React from 'react';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react';\r\n\r\nconst LoadSpin = (props) => {\r\n    return (\r\n        <Spinner size={SpinnerSize.medium} />\r\n    );\r\n}\r\n\r\nexport default LoadSpin;","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\n\r\nconst NumberHideZero = (props) => {\r\n    return (\r\n        <div>\r\n            {props.value > 0 ? (\r\n                <div style={{ textAlign: 'right' }}>\r\n                    <NumberFormat value={props.value} displayType={'text'} thousandSeparator={true}></NumberFormat> <span>{props.symbol && props.value ? \" ₮\" : null}{(props.value && props.csymbol) ? props.csymbol : \"\"}</span>\r\n                </div>\r\n            ) : (\r\n                <div style={{ textAlign: 'right' }}>--</div>\r\n            )}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default NumberHideZero;","import React, { useState, useEffect } from 'react';\r\nimport { Color, ConstCss } from '../../const/Const';\r\nimport { ReactComponent as DropdownIcon } from '../../svg/dropdownLine.svg';\r\nimport { Dropdown, Menu } from 'antd';\r\n\r\nconst PageFilter = (props) => {\r\n\r\n    const [displayValue, setDisplayValue] = useState();\r\n\r\n    const onChange = (value) => {\r\n        let eIndex = props?.data?.map(r => r.key).indexOf(value.key);\r\n        if (eIndex >= 0 && props.onChange) {\r\n            props.onChange(value.key, props.data[eIndex].text);\r\n        }\r\n    }\r\n\r\n    let menuComp = null;\r\n    if (props.data?.length > 0) {\r\n        menuComp = (\r\n            <Menu onClick={onChange}>\r\n                {props.data.map(r => {\r\n                    if (r.divider) {\r\n                        return (\r\n                            <React.Fragment>\r\n                                <Menu.Item key={r.key}>{r.text} {r.description && (<div style={{ fontSize: 12, color: Color.gray }}>{r.description}</div>)}</Menu.Item>\r\n                                {r.divider && (<Menu.Divider />)}\r\n                            </React.Fragment>\r\n                        );\r\n                    } else {\r\n                        return (\r\n                            <Menu.Item key={r.key}>{r.text} {r.description && (<div style={{ fontSize: 12, color: Color.gray }}>{r.description}</div>)}</Menu.Item>\r\n                        );\r\n                    }\r\n                })}\r\n            </Menu>\r\n        )\r\n    }\r\n\r\n    useEffect(() => {\r\n        let tDisplayValue = null;\r\n        if (props?.value && props?.data?.length > 0) {\r\n            let tIndex = props.data.map(r => r.key).indexOf(props.value);\r\n            if (tIndex >= 0) {\r\n                tDisplayValue = props.data[tIndex].text;\r\n            }\r\n        }\r\n        setDisplayValue(tDisplayValue);\r\n    }, [props.value])\r\n    return (\r\n        <Dropdown overlay={menuComp} trigger={['click']}>\r\n            <div style={{ ...ConstCss.flexCenter, cursor: 'pointer' }}>\r\n                <div style={{ fontSize: 20, color: Color.black }}>\r\n                    {displayValue} {props.dataCount ? `(${props.dataCount})` : null}\r\n                </div>\r\n                <div style={{ marginTop: 11, marginLeft: 8 }}>\r\n                    <DropdownIcon />\r\n                </div>\r\n            </div>\r\n        </Dropdown>\r\n    );\r\n}\r\n\r\nexport default PageFilter;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst PageTitle = (props) => {\r\n    return (\r\n        <div style={{\r\n            fontSize: 20,\r\n            color: Color.backText\r\n        }}>\r\n            {props.children}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default PageTitle;","export const getFilter = (p_filter, p_filterparams) => {\r\n    let filtercolumns = [];\r\n\r\n    if (p_filter?.length > 0) {\r\n        filtercolumns = p_filter;\r\n    } else {\r\n        if (p_filter?.length != 0) {\r\n            if (p_filterparams) {\r\n                try {\r\n                    filtercolumns = JSON.parse(p_filterparams);\r\n                } catch (e) {\r\n                    filtercolumns = [];\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    return filtercolumns;\r\n}\r\n\r\nexport const getSearch = (p_search, p_data) => {\r\n    let tData = [...p_data];\r\n    if(p_search && p_search?.toString() != \"null\"){\r\n        tData = searchData(p_search, p_data);\r\n    }\r\n    return tData;\r\n}\r\n\r\nexport const searchData = (p_text, p_data) => {\r\n    let filteredData = [...p_data];\r\n    return p_data?.filter(r => {\r\n        let tValue = Object.keys(r).map(key => {\r\n            return r[key];\r\n        })?.join('')?.toLowerCase();\r\n\r\n        if (tValue?.indexOf(p_text?.toLowerCase()) >= 0) {\r\n            return true;\r\n        } else {\r\n            return false;\r\n        }\r\n    });\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport { Color, ConstCss } from '../../const/Const';\r\nimport PageTitle from '../PageTitle/PageTitle';\r\nimport PageFilter from '../PageFilter/PageFilter';\r\nimport ButtonIcon from '../ButtonIcon/ButtonIcon';\r\nimport { TextField } from '@fluentui/react';\r\nimport GridFilter from '../GridFilter/GridFilter';\r\nimport { searchData } from '../../SharedFunc/FilterAndSearch.js';\r\nimport { ReactComponent as Divider } from '../../svg/verticalDividerGray.svg';\r\nimport { ReactComponent as IconFilter } from '../../svg/filterIcon.svg';\r\nimport { ReactComponent as SearchIcon } from '../../svg/searchBlack.svg';\r\nimport { ReactComponent as ExitIcon } from '../../svg/exit.svg';\r\n\r\nconst PageHeader = (props) => {\r\n\r\n    const [searchValue, setSearchValue] = useState();\r\n    const [showFilter, setShowFilter] = useState(false);\r\n    const [data, setData] = useState([]);\r\n    const [columns, setColumns] = useState(props.columns ? props.columns : []);\r\n    const searchFieldRef = useRef();\r\n\r\n    const onSearch = (p_value) => {\r\n\r\n        setSearchValue(p_value.target.value);\r\n\r\n        let filteredData = [...data];\r\n        if (p_value?.target?.value && data?.length > 0) {\r\n            filteredData = searchData(p_value?.target?.value, data);\r\n        }\r\n\r\n        if (props.setSearchParams) {\r\n            props.setSearchParams({\r\n                search: p_value?.target?.value,\r\n                filter: props.searchParams.get('filter')\r\n            });\r\n        }\r\n\r\n        if (props.onSearch) {\r\n            props.onSearch(filteredData);\r\n        }\r\n\r\n    };\r\n\r\n    useEffect(() => {\r\n        let tData = [];\r\n        if (props.data) {\r\n            tData = props.data;\r\n        }\r\n        if (props?.showfilter == true) {\r\n            setShowFilter(true);\r\n        }\r\n        setData(tData);\r\n\r\n    }, [props.data]);\r\n\r\n    useEffect(() => {\r\n        if (showFilter) {\r\n            searchFieldRef?.current?.focus();\r\n        }\r\n    }, [showFilter]);\r\n\r\n    useEffect(() => {\r\n        if (props.searchParams) {\r\n            let tSearchParam = props.searchParams.get('search');\r\n            if (props.searchParams.get('filter') || tSearchParam) {\r\n                setShowFilter(true);\r\n                if (tSearchParam && tSearchParam?.toString() != \"null\") {\r\n                    if (props.setSearchValue) {\r\n                        props.setSearchValue(tSearchParam);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }, []);\r\n\r\n    const onGridFilterChange = (p_gridfiltervalue) => {\r\n\r\n        if (props.setSearchParams) {\r\n            try {\r\n                props.setSearchParams({\r\n                    search: props.searchParams.get('search'),\r\n                    filter: JSON.stringify(p_gridfiltervalue)\r\n                });\r\n            } catch (e) {\r\n                props.setSearchParams({\r\n                    search: props.searchParams.get('search'),\r\n                    filter: JSON.stringify([])\r\n                });\r\n            }\r\n        }\r\n\r\n        if (props.onGridFilterChange) {\r\n            props.onGridFilterChange(p_gridfiltervalue);\r\n        }\r\n    }\r\n\r\n    const onExit = () => {\r\n        let filteredData = [...data];\r\n        if (props.onSearch) {\r\n            props.onSearch(filteredData);\r\n        }\r\n        if (props.onGridFilterChange) {\r\n            if (props.setSearchParams) {\r\n                props.setSearchParams({\r\n                    search: '',\r\n                    filter: JSON.stringify([])\r\n                });\r\n            }\r\n            props.onGridFilterChange([]);\r\n        }\r\n        setSearchValue([]);\r\n    }\r\n\r\n    const onChangeFilter = () => {\r\n        setShowFilter(r => !r);\r\n        setSearchValue([]);\r\n        props.onGridFilterChange([]);\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{\r\n                height: 50,\r\n                width: '100%',\r\n                backgroundColor: Color.grayBackground,\r\n                display: 'flex',\r\n                justifyContent: 'space-between',\r\n                paddingLeft: 16,\r\n                paddingRight: 16\r\n            }}>\r\n                <div style={{ ...ConstCss.flexCenter }}>\r\n\r\n                    {!props.showLeftFilter && (\r\n                        <div style={{ marginRight: 16 }}>\r\n                            <PageTitle>{props.title} {(props.loading != true && props.dataCount) ? (\"(\" + props.dataCount + \")\") : null}</PageTitle>\r\n                        </div>\r\n                    )}\r\n                    {props.showLeftFilter && (\r\n                        <div style={{ marginRight: 16 }}>\r\n                            <PageFilter onChange={props.changeFilter} value={props.filterValue} data={props.filterData} dataCount={props.dataCount} />\r\n                        </div>\r\n                    )}\r\n                    <div style={{ height: 28 }}>\r\n                        <Divider />\r\n                    </div>\r\n                    <div style={{ marginLeft: 16, marginBottom: '5px' }}>\r\n                        {props.buttonTitle && (<ButtonIcon text={props.buttonTitle} iconName='Add' onClick={props.onButtonClick} />)}\r\n                    </div>\r\n                    {props.addButton && (\r\n                        <div style={{ marginLeft: 16 }}>\r\n                            {props.addButton}\r\n                        </div>\r\n                    )}\r\n                </div>\r\n                <div style={{ ...ConstCss.flexCenter }}>\r\n                    {props.addRightButton ? (props.addRightButton) : null}\r\n                    {props.data ? (\r\n                        <div onClick={onChangeFilter} style={{ marginLeft: 8 }} >\r\n                            <IconFilter />\r\n                        </div>\r\n                    ) : null}\r\n                </div>\r\n            </div>\r\n            {showFilter && props.showDetailSearch ? (\r\n                <div>\r\n                    {props.children}\r\n                </div>\r\n            ) : null}\r\n            {showFilter ? (\r\n                <div style={{\r\n                    height: 50,\r\n                    width: '100%',\r\n                    backgroundColor: Color.grayHeaderBack,\r\n                    display: 'flex',\r\n                    alignItems: 'center',\r\n                    justifyContent: 'space-between',\r\n                    paddingLeft: 16,\r\n                    paddingRight: 16\r\n                }}>\r\n                    <div style={{ display: 'flex', alignItems: 'center' }}>\r\n                        <SearchIcon />\r\n                        <TextField componentRef={searchFieldRef} onChange={onSearch} style={{ backgroundColor: Color.grayHeaderBack, minWidth: 300 }} borderless placeholder={props.lang == \"en\" ? \"Search...\" : \"Хайх...\"} value={searchValue} />\r\n                    </div>\r\n                    <div style={{ display: 'flex', alignItems: 'center' }}>\r\n                        <GridFilter data={props.gridFilter} onGridFilterChange={onGridFilterChange} />\r\n                        <div onClick={onExit} style={{ display: 'flex', alignItems: 'center', cursor: 'pointer' }}>\r\n                            <ExitIcon />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            ) : null}\r\n        </div>\r\n    );\r\n}\r\nexport default PageHeader;","import React from 'react';\r\nimport { Steps } from 'antd';\r\n\r\nconst { Step } = Steps;\r\nconst PageStep = (props) => {\r\n    return (\r\n        <div style={{ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.15), inset 0px -1px 0px rgba(217, 217, 217, 0.25)', paddingLeft: 16, paddingRight: 16, paddingBottom: 16 }}>\r\n            <div>\r\n                <div style={{ marginTop: 12, marginBottom: 12, fontSize: 20 }}>\r\n                    {props.title} | № {props.id?.toString()?.substring(0, 20)}{props?.id?.length > 20 && \"...\"}\r\n                </div>\r\n            </div>\r\n            <div style={{ marginTop: 4 }}>\r\n                <Steps current={props.currentStep ? props.currentStep : 0}>\r\n                    {props.steps?.map(r => (\r\n                        <Step key={r.title} title={r.title} />\r\n                    ))}\r\n                </Steps>\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\nexport default PageStep;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst PageTitleMid = (props) => {\r\n    return (\r\n        <div style={{\r\n            fontSize: 16,\r\n            color: Color.backText\r\n        }}>\r\n            {props.children}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default PageTitleMid;","import React from 'react';\r\nimport { MessageBar, MessageBarType } from '@fluentui/react';\r\n\r\nconst Warning = (props) => {\r\n\r\n    let zeroMargin = {\r\n    };\r\n\r\n    if (props.margin) {\r\n        zeroMargin = {\r\n            marginTop: 13\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            {props.value && (<div style={{ ...zeroMargin }}>\r\n                <MessageBar\r\n                    messageBarType={MessageBarType.warning}\r\n                    dismissButtonAriaLabel=\"Close\">\r\n                    {props.value}\r\n                </MessageBar>\r\n            </div>)}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default Warning;","import React, { useState, useEffect } from 'react';\r\nimport { Panel, PanelType } from '@fluentui/react';\r\nimport Warning from '../Warning/Warning';\r\nimport ButtonSecondary from '../ButtonSecondary/ButtonSecondary';\r\nimport ButtonDelete from '../ButtonDelete/ButtonDelete';\r\n\r\nconst PanelBase = (props) => {\r\n\r\n    const [warning, setWarning] = useState();\r\n\r\n    useEffect(() => {\r\n        setWarning(props.warning);\r\n    }, [props.warning]);\r\n\r\n    return (\r\n        <Panel\r\n            isOpen={props.isOpen}\r\n            headerText={props.headerText}\r\n            onDismiss={props.onDismiss}\r\n            type={props.PanelType == \"large\" ? PanelType.large : PanelType.medium}\r\n            isFooterAtBottom={true}\r\n            onRenderFooterContent={() => (\r\n                <div style={{ display: 'flex', justifyContent: 'space-between' }}>\r\n                    <div>\r\n                        {props.delete ? <ButtonDelete text=\"Устгах\" onClick={props.onDelete} /> : null}\r\n                    </div>\r\n                    <div style={{ display: 'flex', alignItems: 'center' }}>\r\n                        <div style={{ marginRight: 16 }}>\r\n                            <Warning zeroMargin value={warning} />\r\n                        </div>\r\n                        <div style={{ marginRight: 16 }}>\r\n                            <ButtonSecondary text={props.lang == \"en\" ? \"Cancel\" : \"Болих\"} onClick={props.onDismiss} />\r\n                        </div>\r\n                        {props.buttons}\r\n                    </div>\r\n                </div>\r\n            )}\r\n        >\r\n            {props.children}\r\n        </Panel>\r\n    );\r\n}\r\n\r\nexport default PanelBase;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\nimport { ReactComponent as ReportIcon } from '../../svg/reportIcon.svg';\r\n\r\nconst ReportApprovedDoc = (props) => {\r\n    return (\r\n        <div style={{ height: 160, width: 160, backgroundColor: Color.white, cursor: 'pointer', marginLeft: 16 }} onClick={() => props.onClick(props.data)}>\r\n            <div style={{ height: 90, width: 160, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: Color.white }}>\r\n                <div style={{ position: 'absolute', color: 'gray', fontSize: 18, marginBottom: '10px' }}> {props.data?.number} </div>\r\n                <ReportIcon />\r\n            </div>\r\n            <div style={{ height: 70, width: 160, display: 'flex', justifyContent: 'center', backgroundColor: Color.white }}>\r\n                <div style={{ textAlign: 'center', fontSize: 12, paddingLeft: 8, paddingRight: 8 }}>\r\n                    {props.data?.name?.length > 40 ? (\r\n                        props.data?.name?.substring(0, 40) + \"...\"\r\n                    ) : (\r\n                        props.data?.name\r\n                    )}\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ReportApprovedDoc;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\nimport { ReactComponent as RepDocIcon } from '../../svg/repDocIcon.svg';\r\n\r\nconst ReportDoc = (props) => {\r\n    return (\r\n        <div style={{ height: 160, width: 160, backgroundColor: Color.white, cursor: 'pointer', marginLeft: 16 }} onClick={() => props.onClick(props.data)}>\r\n            <div style={{ height: 90, width: 160, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: Color.white }}>\r\n                <RepDocIcon />\r\n            </div>\r\n            <div style={{ height: 70, width: 160, display: 'flex', justifyContent: 'center', backgroundColor: Color.white }}>\r\n                <div style={{ textAlign: 'center', fontSize: 12, paddingLeft: 8, paddingRight: 8 }}>\r\n                    {props.data?.name?.length > 40 ? (\r\n                        props.data?.name?.substring(0, 40) + \"...\"\r\n                    ) : (\r\n                        props.data?.name\r\n                    )}\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ReportDoc;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\nimport { ReactComponent as FolderIcon } from '../../svg/folderIcon.svg';\r\n\r\nconst ReportFolder = (props) => {\r\n    return (\r\n        <div style={{ height: 160, width: 160, backgroundColor: Color.white, cursor: 'pointer', marginLeft: 16 }} onClick={() => props.onClick(props.data)}>\r\n            <div style={{ height: 90, width: 160, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: Color.white }}>\r\n                <FolderIcon />\r\n            </div>\r\n            <div style={{ height: 70, width: 160, display: 'flex', justifyContent: 'center', backgroundColor: Color.white }}>\r\n                <div style={{ textAlign: 'center', fontSize: 12, paddingLeft: 8, paddingRight: 8 }}>\r\n                    {props.data?.name?.length > 40 ? (\r\n                        props.data?.name?.substring(0, 40) + \"...\"\r\n                    ) : (\r\n                        props.data?.name\r\n                    )}\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default ReportFolder;","import React from 'react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst Step = (props) => {\r\n    return (\r\n        <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', height: 64 }}>\r\n            {props.data?.map((r, index) => {\r\n                let bColor = Color.white;\r\n                let tColor = Color.graySecond;\r\n                let vborderColor = '1px solid #6A6D70';\r\n                if (r.key == props.defaultKey) {\r\n                    bColor = Color.blue;\r\n                    tColor = Color.white;\r\n                    vborderColor = '1px solid #0358A7';\r\n                }\r\n\r\n                return (\r\n                    <>\r\n                        <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\r\n                            <div style={{ border: vborderColor, width: 32, height: 32, backgroundColor: bColor, borderRadius: 16, display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 14, color: tColor }}>\r\n                                {r.key}\r\n                            </div>\r\n                            <div style={{ marginLeft: 5, fontSize: 12, color: Color.graySecond }}>\r\n                                {r.text}\r\n                            </div>\r\n                        </div>\r\n                        {index + 1 < props.data?.length && (\r\n                            <div style={{ height: 1, backgroundColor: Color.blue, content: \"\", marginLeft: 8, marginRight: 8, width: 50 }}></div>\r\n                        )}\r\n                    </>\r\n                );\r\n            })}\r\n        </div>\r\n\r\n    );\r\n}\r\n\r\nexport default Step;","import React, { useEffect } from 'react';\r\n\r\nconst { tableau } = window;\r\nconst TableauContainer = (props) => {\r\n    const initViz = async () => {\r\n        if (props.API) {\r\n            await props.API.get(props.tokenurl).then(response => {\r\n                if (response?.status === 200 && response?.data?.retdata) {\r\n                    const options = {\r\n                        hideToolbar: true,\r\n                        hideTabs: true,\r\n                        toolbarPosition: 'TOP'\r\n                    };\r\n                    let container = document.getElementById(props.elmId);\r\n                    new tableau.Viz(container, props?.url?.replace('{token}', response.data.retdata, options));\r\n                }\r\n            });\r\n        }\r\n    };\r\n\r\n    useEffect(() => {\r\n        initViz();\r\n        return () => {\r\n            let vizs = tableau.VizManager.getVizs();\r\n            for (let i = vizs.length; i > 0; i--) {\r\n                vizs[i - 1].dispose();\r\n            }\r\n        }\r\n    }, []);\r\n\r\n    return (\r\n        <div>\r\n            <div id={props.elmId} style={{ width: '100wh', height: '100vh', display: 'flex', justifyContent: 'center', backgroundColor: '#f7f7f7' }}>\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default TableauContainer;","import React from 'react';\r\n\r\nconst TextGridHeader = (props) => {\r\n    return (\r\n        <div style={{ fontWeight: 600, fontSize: 14 }}>\r\n            {props.value}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default TextGridHeader;","import React from 'react';\r\n\r\nconst TextTitle = (props) => {\r\n    return (\r\n        <div style={{ fontSize: 20 }}>\r\n            {props.value}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default TextTitle;","import React, { useState, useEffect } from 'react';\r\nimport { Badge, Dropdown, Menu, Input, Select } from 'antd';\r\nimport { Panel, PanelType, Persona, PersonaSize } from '@fluentui/react';\r\nimport { Color, ConstCss } from '../../const/Const';\r\nimport { ReactComponent as MenuLogo } from '../../svg/menu.svg';\r\nimport { ReactComponent as Divider } from '../../svg/verticalDivider.svg';\r\nimport { ReactComponent as DropdownIcon } from '../../svg/dropdown.svg';\r\nimport { ReactComponent as NotificationIcon } from '../../svg/notification.svg';\r\nimport { ReactComponent as QuestionIcon } from '../../svg/question.svg'\r\nimport { ReactComponent as MenuBlackIcon } from '../../svg/menuBlackIcon.svg';\r\nimport { ReactComponent as MenuBack } from '../../svg/menuBack.svg';\r\nimport { ReactComponent as MenuUserIcon } from '../../svg/menuUserIcon.svg';\r\nimport { ReactComponent as SearchIcon } from '../../svg/searchBlack.svg';\r\n\r\nconst { Option } = Select;\r\nconst Header = (props) => {\r\n\r\n    const [showMenu, setShowMenu] = useState(false);\r\n    const [menuKey, setMenuKey] = useState();\r\n    const [menuText, setMenuText] = useState();\r\n    const [backPath, setBackPath] = useState();\r\n    const [selectedSearchMenu, setSelectedSearchMenu] = useState('ALL');\r\n    const menuData = props.menuData ? props.menuData : {};\r\n    const userMenu = props.userMenu ? props.userMenu : [];\r\n    const [notificationCount, setNotificationCount] = useState(0);\r\n\r\n    useEffect(() => {\r\n        if (props?.notificationCount) {\r\n            setNotificationCount(props?.notificationCount);\r\n        }\r\n\r\n        let tMenuKey = '';\r\n        let tMenuText = '';\r\n        let tMenuKeyParent = '';\r\n        let tBackPath = '';\r\n        if (props.location?.pathname) {\r\n            let tPath = props.location?.pathname?.split('/');\r\n            if (tPath.length >= 1) {\r\n                tMenuKey = tPath[1];\r\n                if (tPath.length > 3) {\r\n                    tPath.pop();\r\n                    tBackPath = tPath.join('/');\r\n                }\r\n            }\r\n        }\r\n\r\n        if (tMenuKey) {\r\n\r\n            Object.keys(menuData).map(key => {\r\n                menuData[key]?.map(r => {\r\n                    if (r.path == tMenuKey) {\r\n                        tMenuKeyParent = key;\r\n                    }\r\n                })\r\n            });\r\n\r\n            let tMenuData = menuData[tMenuKeyParent];\r\n            let tIndex = tMenuData?.map(r => r.path).indexOf(tMenuKey);\r\n            if (tIndex >= 0) {\r\n                tMenuText = tMenuData[tIndex].text;\r\n            }\r\n\r\n        }\r\n\r\n        setMenuKey(tMenuKeyParent);\r\n        setMenuText(tMenuText);\r\n        setBackPath(tBackPath);\r\n    }, [props.location?.pathname, props?.notificationCount]);\r\n\r\n    const onChangeMenu = (value) => {\r\n        if (props.navigate) {\r\n            props.navigate('/' + value.key);\r\n        }\r\n    }\r\n\r\n    let menuComp = (\r\n        <Menu onClick={onChangeMenu}>\r\n\r\n            {menuKey && menuData[menuKey]\r\n                ? (\r\n                    menuData[menuKey].map(r => {\r\n                        return (\r\n                            <Menu.Item key={r.path}>\r\n                                {r.text}\r\n                            </Menu.Item>\r\n                        );\r\n                    })\r\n                ) : null\r\n            }\r\n        </Menu>\r\n    );\r\n\r\n    const logOut = () => {\r\n        if (props.logOut) {\r\n            props.logOut();\r\n        }\r\n    }\r\n\r\n    let userComp = (\r\n        <Menu onClick={onChangeMenu}>\r\n            {userMenu &&\r\n                (userMenu?.map(r => {\r\n                    return (\r\n                        <Menu.Item key={r.path}>\r\n                            {r.text}\r\n                        </Menu.Item>\r\n                    )\r\n                }))\r\n            }\r\n            <Menu.Item key=\"logout\" onClick={logOut}>\r\n                {props?.lang == \"en\" ? \"Logout \" : \"Гарах\"}\r\n            </Menu.Item>\r\n        </Menu>\r\n    );\r\n\r\n    const onPressMenu = () => {\r\n        setShowMenu(r => !r);\r\n    }\r\n\r\n    const onPressQuestion = () => {\r\n        if (props.questionDocUrl) {\r\n            window.open(`${props.questionDocUrl}`, '_blank');\r\n        }\r\n    }\r\n\r\n    const onPressBack = () => {\r\n        if (props.navigate) {\r\n            if (props.location?.state?.backurl) {\r\n                props.navigate(backPath);\r\n            } else {\r\n                props.navigate(-1);\r\n            }\r\n        }\r\n    }\r\n\r\n    const onPressNotification = () => {\r\n        if (props.onPressNotification) {\r\n            props.onPressNotification();\r\n        }\r\n    }\r\n\r\n    const onPressCompanyName = () => {\r\n        if (props.onPressCompanyName) {\r\n            props.onPressCompanyName();\r\n        }\r\n    }\r\n\r\n    const onSearchMenuChange = (value) => {\r\n        setSelectedSearchMenu(value);\r\n    }\r\n\r\n    const onSearch = (e) => {\r\n        if (props.onSearch) {\r\n            props.onSearch(e.target.value, selectedSearchMenu);\r\n        }\r\n    }\r\n\r\n    let vPosition = {\r\n        position: \"fixed\",\r\n        top: 0,\r\n        right: 0,\r\n        zIndex: 100\r\n    }\r\n\r\n    if (props?.disablePosition) {\r\n        vPosition = {};\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div style={{\r\n                width: '100%',\r\n                height: '48px',\r\n                backgroundColor: props.color ? props.color : Color.primary,\r\n                display: 'flex',\r\n                justifyContent: 'space-between',\r\n                alignItems: 'center',\r\n                paddingLeft: '14px',\r\n                paddingRight: '16px',\r\n                ...vPosition\r\n\r\n            }}>\r\n                <div style={{ display: 'flex', alignItems: 'center' }}>\r\n\r\n                    {backPath ? (\r\n                        <div onClick={onPressBack} style={{ cursor: 'pointer', marginRight: 16, ...ConstCss.flexCenter }}>\r\n                            <MenuBack />\r\n                        </div>\r\n                    ) : null}\r\n\r\n                    <div onClick={onPressMenu} style={{ cursor: 'pointer', ...ConstCss.flexCenter }}>\r\n                        <MenuLogo />\r\n                    </div>\r\n                    <div onClick={onPressCompanyName} style={{ marginLeft: 22, ...ConstCss.flexCenter, fontSize: 14, fontWeight: 'bold', color: Color.white, cursor: 'pointer' }}>\r\n                        {props?.companyname?.substring(0, 60)}{props?.companyname?.length > 60 && \"...\"}\r\n                    </div>\r\n                    <div style={{ marginLeft: 17, marginRight: 17, ...ConstCss.flexCenter }}>\r\n                        <Divider />\r\n                    </div>\r\n                    <div>\r\n                        <Dropdown overlay={menuComp} trigger={['click']}>\r\n                            <div style={{ ...ConstCss.flexCenter, cursor: 'pointer' }}>\r\n                                <div style={{\r\n                                    fontWeight: '600',\r\n                                    fontSize: '14px',\r\n                                    color: Color.white\r\n                                }}>{menuText}</div>\r\n                                <div style={{ paddingLeft: 12, marginTop: -6 }}>\r\n                                    <DropdownIcon />\r\n                                </div>\r\n                            </div>\r\n                        </Dropdown>\r\n                    </div>\r\n                </div>\r\n                {props?.searchEnabled &&\r\n                    <div style={{ ...ConstCss.flexCenter, width: '60%' }}>\r\n                        <Input.Group compact style={{ ...ConstCss.flexCenter }}>\r\n                            <Select\r\n                                defaultValue={'_all'}\r\n                                style={{ width: '10%', backgroundColor: '#E7E7E7' }}\r\n                                onChange={onSearchMenuChange}\r\n                                backgroundColor=\"#E7E7E7\"\r\n                            >\r\n                                {props?.searchmenu?.map(item => (\r\n                                    <Option value={item.key}>\r\n                                        {item.text}\r\n                                    </Option>\r\n                                ))}\r\n                            </Select>\r\n                            <Input\r\n                                allowClear\r\n                                style={{ width: '40%' }}\r\n                                onChange={onSearch}\r\n                            />\r\n                        </Input.Group>\r\n                    </div>\r\n                }\r\n                <div style={{ ...ConstCss.flexCenter }}>\r\n                    <div onClick={onPressNotification} style={{ cursor: 'pointer', marginLeft: 30, ...ConstCss.flexCenter }}>\r\n                        <Badge count={notificationCount} size=\"small\">\r\n                            <NotificationIcon />\r\n                        </Badge>\r\n                    </div>\r\n                    <div onClick={onPressQuestion} style={{ cursor: 'pointer', marginLeft: 30, ...ConstCss.flexCenter }}>\r\n                        <QuestionIcon />\r\n                    </div>\r\n                    {props?.addRightComp ? props?.addRightComp : null}\r\n                    <div style={{ cursor: 'pointer', marginLeft: 30, ...ConstCss.flexCenter }}>\r\n                        <Dropdown overlay={userComp} trigger={['click']}>\r\n                            <Persona hidePersonaDetails text={props.userid ? props.userid : \"\"} size={PersonaSize.size32} />\r\n                        </Dropdown>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <Panel\r\n                headerText={props.title}\r\n                isOpen={showMenu}\r\n                onDismiss={onPressMenu}\r\n                hasCloseButton={false}\r\n                isLightDismiss={true}\r\n                type={PanelType.smallFixedNear}\r\n                isFooterAtBottom={true}\r\n                onRenderHeader={() => {\r\n                    return (\r\n                        <div onClick={onPressMenu} style={{ display: 'flex', justifyContent: 'flex-start', marginBottom: 36, justifyItems: 'center', cursor: 'pointer' }}>\r\n                            <div style={{ marginLeft: 24 }}>\r\n                                <MenuBlackIcon />\r\n                            </div>\r\n                            <div style={{ fontWeight: 'bold', fontSize: 14, marginLeft: 10 }}>\r\n                                {props.title}\r\n                            </div>\r\n                        </div>\r\n                    );\r\n                }}\r\n                onRenderFooter={() => {\r\n                    return (\r\n                        <div\r\n                            onClick={() => {\r\n                                setShowMenu(false);\r\n                                props.navigate('/settings');\r\n                            }}\r\n                            style={{ display: 'flex', cursor: 'pointer', marginBottom: 16, borderTop: '1px solid rgb(237, 235, 233)' }}>\r\n                            <div style={{ marginLeft: 24, marginTop: 16 }}>\r\n                                <MenuUserIcon />\r\n                            </div>\r\n                            <div style={{ marginLeft: 10, marginTop: 16 }}>\r\n                                {props.settingsTitle ? props.settingsTitle : 'Тохиргоо'}\r\n                            </div>\r\n                        </div>\r\n                    );\r\n                }}\r\n            >\r\n                <div>\r\n                    {props.children}\r\n                </div>\r\n            </Panel>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default Header;","import React, { useEffect, useState } from 'react';\r\nimport { Calendar, DatePicker, DateRangeType, defaultCalendarStrings } from '@fluentui/react';\r\nimport moment from 'moment';\r\nimport { Color } from '../../const/Const';\r\nimport { MessageConst, MessageConstEn } from '../../const/MessageConst';\r\n\r\nconst FieldMonth = (props) => {\r\n\r\n    const [value, setValue] = useState();\r\n    const [dKey, setDKey] = useState(1);\r\n\r\n    useEffect(() => {\r\n        let tValue = null;\r\n        if (props.defaultValue) {\r\n            let tPropsValue = null;\r\n            if (props.defaultValue.length == 7) {\r\n                tPropsValue = props.defaultValue;\r\n            } else if (props.defaultValue.length > 7) {\r\n                tPropsValue = props.defaultValue.substring(0, 7);\r\n            }\r\n\r\n            if (tPropsValue && moment(tPropsValue, \"YYYY.MM\").isValid()) {\r\n                tValue = moment(tPropsValue, \"YYYY.MM\").toDate();\r\n            }\r\n        }\r\n        setValue(tValue);\r\n    }, [props.defaultValue]);\r\n\r\n\r\n    const onChangeDate = (p_date) => {\r\n        setDKey(r => r + 1);\r\n        if (p_date) {\r\n            props.onChanged(moment(p_date).format(\"YYYY.MM\"), '', props.keyfield, '', props.title);\r\n        } else {\r\n            props.onChanged(null, '', props.keyfield, '', props.title);\r\n        }\r\n    }\r\n\r\n    const onFormatDate = (date) => {\r\n        return !date ? '' : moment(date).format(\"YYYY.MM\");\r\n    };\r\n\r\n    let vColor = { fontWeight: 600 };\r\n    if (props.gray) {\r\n        vColor = {\r\n            color: Color.graySecond,\r\n            fontWeight: 400\r\n        };\r\n    }\r\n\r\n    return (\r\n        <div key={dKey}>\r\n            <div style={{ display: 'flex' }}>\r\n                <div style={{ fontSize: 14, ...vColor }}>{props.title}</div>{props.required && (<div style={{ color: Color.red }}>*</div>)}\r\n            </div>\r\n            <div style={{ marginTop: 6 }}>\r\n                <DatePicker\r\n                    formatDate={onFormatDate}\r\n                    borderless={false}\r\n                    value={value}\r\n                    disabled={props.disable == true ? true : false}\r\n                    calendarAs={() => (\r\n                        <Calendar\r\n                            dateRangeType={DateRangeType.Month}\r\n                            showGoToToday\r\n                            highlightSelectedMonth\r\n                            isDayPickerVisible={false}\r\n                            onSelectDate={onChangeDate}\r\n                        />\r\n                    )\r\n                    }\r\n                    placeholder={props.placeholder}\r\n                />\r\n                {(props.required && !value && props.checkreq) ? (\r\n                    <div style={{ color: 'rgb(164, 38, 44)', fontSize: 12, fontWeight: 400, paddingTop: 5 }}>\r\n                        {props.title + (props.lang == \"en\" ? MessageConstEn.fieldRequired : MessageConst.fieldRequired)}\r\n                    </div>\r\n                ) : null}\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default FieldMonth;","import React from 'react';\r\nimport { ShimmeredDetailsList, SelectionMode, DetailsListLayoutMode, DetailsRow, Selection } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\nimport GridFooter from '../GridFooter/GridFooter';\r\nimport Number from '../Number/Number';\r\nimport _ from 'lodash';\r\n\r\nconst GridDefaultShimmerCheck = (props) => {\r\n\r\n    let columns = [];\r\n    if (props?.columns?.length > 0) {\r\n        columns = props.columns.map((r, index) => {\r\n            let vRow = { ...r };\r\n            vRow.isResizable = true;\r\n            vRow.key = r.fieldName;\r\n            vRow.index = index;\r\n\r\n            let classNames = [];\r\n            if (r.isBold) {\r\n                classNames.push(\"row-bold\");\r\n            }\r\n            if (r.isCapitalize) {\r\n                classNames.push(\"row-capitalize\")\r\n            }\r\n\r\n            if (classNames?.length > 0) {\r\n                vRow.className = classNames.join(\" \");\r\n            }\r\n\r\n            if (r.colSize) {\r\n                if (r.colSize == 'small') {\r\n                    vRow.maxWidth = 100;\r\n                }\r\n                if (r.colSize == 'mid') {\r\n                    vRow.maxWidth = 160;\r\n                }\r\n            }\r\n            if (r.minColSize) {\r\n                if (r.minColSize == 'mid') {\r\n                    vRow.minWidth = 220;\r\n                    vRow.maxWidth = 260;\r\n                } else if (r.minColSize == 'large') {\r\n                    vRow.minWidth = 320;\r\n                    vRow.maxWidth = 360;\r\n                }\r\n            }\r\n\r\n            if (r.number) {\r\n                vRow.onRender = (pitem, pindex, pcolumn) => {\r\n                    let tValue = 0;\r\n                    if (pcolumn.key && pitem[pcolumn.key]) {\r\n                        tValue = parseFloat(pitem[pcolumn.key]?.toString()?.replaceAll(\",\", ''));\r\n                    }\r\n                    return (\r\n                        <Number value={tValue?.toFixed(2)} />\r\n                    );\r\n                };\r\n            }\r\n\r\n            return vRow;\r\n        });\r\n    }\r\n\r\n    const onRenderDetailsFooter = (detailsFooterProps) => {\r\n\r\n        let tColumns = [];\r\n\r\n        if (detailsFooterProps?.columns?.length > 0) {\r\n            tColumns = detailsFooterProps?.columns?.map((r, index) => {\r\n                let tRow = { ...r };\r\n                tRow = _.omit(tRow, \"onRender\");\r\n                return tRow;\r\n            });\r\n        }\r\n\r\n        if (tColumns?.length > 0) {\r\n            return (\r\n                <DetailsRow\r\n                    {...detailsFooterProps}\r\n                    columns={tColumns}\r\n                    item={{}}\r\n                    onRenderItemColumn={(item, index, column) => {\r\n                        if (column) {\r\n                            if (column.index == 0) {\r\n                                return (\r\n                                    <GridFooter>\r\n                                        SUMMARY\r\n                                    </GridFooter>\r\n                                );\r\n                            } else {\r\n                                if (column.summary && props.data?.length > 0) {\r\n                                    let tData = [...props.data];\r\n                                    let tSummary = tData.map(r => {\r\n                                        if (column.key && r[column.key] && !isNaN(parseFloat(r[column.key]?.toString()?.replaceAll(',', '')))) {\r\n                                            return parseFloat(r[column.key]?.toString()?.replaceAll(',', ''));\r\n                                        } else {\r\n                                            return 0;\r\n                                        }\r\n                                    }).reduce((a, b) => a + b, 0);\r\n\r\n                                    return (\r\n                                        <GridFooter>\r\n                                            <Number value={tSummary?.toFixed(2)} />\r\n                                        </GridFooter>\r\n                                    );\r\n\r\n                                } else {\r\n                                    return (\r\n                                        <GridFooter>\r\n                                        </GridFooter>\r\n                                    );\r\n                                }\r\n                            }\r\n                        }\r\n                        return undefined;\r\n                    }}\r\n                />\r\n            );\r\n        } else {\r\n            return null;\r\n        }\r\n    }\r\n\r\n    const onSelect = new Selection({\r\n        onSelectionChanged: () => {\r\n            let tSelection = onSelect.getSelection();\r\n            if (props.onSelect) {\r\n                if (tSelection?.length > 0) {\r\n                    props.onSelect(tSelection);\r\n                } else {\r\n                    props.onSelect([]);\r\n                }\r\n            }\r\n        },\r\n    });\r\n\r\n\r\n    return (\r\n        <div>\r\n            <ShimmeredDetailsList\r\n                styles={{\r\n                    root: {\r\n                        selectors: {\r\n                            '.ms-DetailsHeader': {\r\n                                paddingTop: '0px'\r\n                            },\r\n                            '.ms-DetailsRow-cell': {\r\n                                color: '#201F1E'\r\n                            }\r\n                        }\r\n                    }\r\n                }}\r\n                setKey={props.setKey ? props.setKey : null}\r\n                selectionMode={SelectionMode.multiple}\r\n                layoutMode={props.fixedColumns ? DetailsListLayoutMode.fixedColumns : DetailsListLayoutMode.justified}\r\n                enableShimmer={props.loading ? true : false}\r\n                compact={true}\r\n                items={props.data ? props.data : []}\r\n                columns={columns}\r\n                onRenderRow={props.onRenderRow ? props.onRenderRow : null}\r\n                onRenderDetailsFooter={props.summary && props.data?.length > 0 ? onRenderDetailsFooter : null}\r\n                selection={onSelect}\r\n            />\r\n            {!props.loading && props?.data?.length <= 0 ? (\r\n                <div style={{ backgroundColor: Color.white, textAlign: 'center', color: Color.grayNoData, paddingBottom: 18 }}>\r\n                    {props.lang == \"en\" ? \"No Data\" : \"Харуулах мэдээлэлгүй байна\"}\r\n                </div>\r\n            ) : (\r\n                null\r\n            )}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridDefaultShimmerCheck;","import React from 'react';\r\nimport { ShimmeredDetailsList, SelectionMode, DetailsListLayoutMode, DetailsRow, DetailsList } from '@fluentui/react';\r\nimport { Color } from '../../const/Const';\r\n\r\nconst GridDefaultShimmerStick = (props) => {\r\n\r\n    let columns = [];\r\n    if (props?.columns?.length > 0) {\r\n        columns = props.columns.map(r => {\r\n            let vRow = { ...r };\r\n            vRow.isResizable = true;\r\n            vRow.key = r.fieldName;\r\n\r\n            let classNames = [];\r\n            if (r.isBold) {\r\n                classNames.push(\"row-bold\");\r\n            }\r\n            if (r.isCapitalize) {\r\n                classNames.push(\"row-capitalize\")\r\n            }\r\n\r\n            if (classNames?.length > 0) {\r\n                vRow.className = classNames.join(\" \");\r\n            }\r\n\r\n            if (r.colSize) {\r\n                if (r.colSize == 'small') {\r\n                    vRow.maxWidth = 100;\r\n                }\r\n                if (r.colSize == 'mid') {\r\n                    vRow.maxWidth = 160;\r\n                }\r\n            }\r\n            if (r.minColSize) {\r\n                if (r.minColSize == 'mid') {\r\n                    vRow.minWidth = 220;\r\n                    vRow.maxWidth = 260;\r\n                } else if (r.minColSize == 'large') {\r\n                    vRow.minWidth = 320;\r\n                    vRow.maxWidth = 360;\r\n                }\r\n            }\r\n\r\n            return vRow;\r\n        });\r\n    }\r\n\r\n    if (props.loading) {\r\n        return (\r\n            <div>\r\n                <ShimmeredDetailsList\r\n                    selectionMode={SelectionMode.none}\r\n                    enableShimmer={props.loading ? true : false}\r\n                    compact={true}\r\n                    items={[]}\r\n                    columns={columns}\r\n                />\r\n                {!props.loading && props?.data?.length <= 0 ? (\r\n                    <div style={{ backgroundColor: Color.white, textAlign: 'center', color: Color.grayNoData, paddingBottom: 18 }}>\r\n                        Харуулах мэдээлэлгүй байна\r\n                    </div>\r\n                ) : (\r\n                    null\r\n                )}\r\n            </div>\r\n        );\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <DetailsList\r\n                styles={{\r\n                    root: {\r\n                        overflowX: 'auto',\r\n                        selectors: {\r\n                            '& [role=grid]': {\r\n                                display: 'flex',\r\n                                flexDirection: 'column',\r\n                                alignItems: 'start',\r\n                                maxHeight: 'calc(100vh - 130px)'\r\n                            },\r\n                        },\r\n                    },\r\n                    headerWrapper: {\r\n                        flex: '0 0 auto',\r\n                    },\r\n                    contentWrapper: {\r\n                        flex: '1 1 auto',\r\n                        overflowY: 'auto',\r\n                        overflowX: 'hidden',\r\n                    }\r\n                }}\r\n                setKey={props.setKey ? props.setKey : null}\r\n                selectionMode={SelectionMode.none}\r\n                layoutMode={props.fixedColumns ? DetailsListLayoutMode.fixedColumns : DetailsListLayoutMode.justified}\r\n                enableShimmer={props.loading ? true : false}\r\n                compact={true}\r\n                items={props.data ? props.data : []}\r\n                columns={columns}\r\n                onRenderRow={props.onRenderRow ? props.onRenderRow : null}\r\n            />\r\n            {!props.loading && props?.data?.length <= 0 ? (\r\n                <div style={{ backgroundColor: Color.white, textAlign: 'center', color: Color.grayNoData, paddingBottom: 18 }}>\r\n                    Харуулах мэдээлэлгүй байна\r\n                </div>\r\n            ) : (\r\n                null\r\n            )}\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default GridDefaultShimmerStick;"]}