????

Your IP : 216.73.216.152


Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/
Upload File :
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/6992.31cbdc12.chunk.js.map

{"version":3,"file":"static/js/6992.31cbdc12.chunk.js","mappings":"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","sources":["hooks/useAsync.js","hooks/useAlert.js","hooks/useForm.js","hooks/useConvertAvatar.js","hooks/useSdoc.js","hooks/useDeleteOdata.js","hooks/useQueryFilterOdata.js","hooks/util.js","hooks/useEvent.js","hooks/useKey.js","views/quan-ly-vat-lieu/CuaHangVatLieu/TreeVatLieu.js"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nconst useAsync = (asyncFunction, immediate = true) => {\n    const [status, setStatus] = useState('idle');\n    const [value, setValue] = useState(undefined);\n    const [error, setError] = useState(undefined);\n    const isMounted = useRef(false)\n    // The execute function wraps asyncFunction and\n    // handles setting state for pending, value, and error.\n    // useCallback ensures the below useEffect is not called\n    // on every render, but only if asyncFunction changes.\n    const execute = useCallback((param) => {\n        setStatus('pending');\n        setError(null);\n\n        return asyncFunction(param)\n            .then(response => {\n                if (!isMounted.current) return\n                setValue(response);\n                setStatus('success');\n            })\n            .catch(error => {\n\n                // console.log('error', error)\n\n                if (!isMounted.current) return\n                setError(error);\n                setStatus('error');\n            });\n    }, [asyncFunction]);\n\n    // Call execute if we want to fire it right away.\n    // Otherwise execute can be called later, such as\n    // in an onClick handler.\n    useEffect(() => {\n        if (immediate) {\n            execute();\n        }\n    }, [execute, immediate]);\n\n    useEffect(() => {\n        isMounted.current = true\n        return () => {\n            isMounted.current = false\n        }\n    }, [])\n\n    return { execute, status, value, error, setValue, setStatus };\n};\n\nexport default useAsync\n","import React, {useCallback, useMemo, useState} from \"react\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport MuiAlert from \"@material-ui/lab/Alert\";\n\nfunction Alert(props) {\n    return <MuiAlert elevation={6} variant=\"filled\" {...props} />;\n}\n\n/**\n * @description Example: const {renderAlert,fire} = useAlert()\n * <div>\n *     <button onClick={()=>fire.success(\"TEST\")}/>\n *     {renderAlert}\n * </div>\n * @param autoHideDuration: Thời gian alert tự tắt\n * @return {{renderAlert: *, fire: {success: success, warning: warning, error: error, info: info}}}\n */\nfunction useAlert(autoHideDuration = 6000) {\n    const [alertProps, setAlertProps] = useState(null);\n\n    const fire = useMemo(function () {\n        return {\n            error: function (message = \"Đã xảy ra lỗi, vui lòng thử lại\") {\n                setAlertProps({isOpen: true, message, severity: \"error\"})\n            },\n            success: function (message) {\n                setAlertProps({isOpen: true, message, severity: \"success\"})\n            },\n            warning: function (message) {\n                setAlertProps({isOpen: true, message, severity: \"warning\"})\n            },\n            info: function (message) {\n                setAlertProps({isOpen: true, message, severity: \"info\"})\n            }\n        }\n    }, [setAlertProps])\n\n    const handleClose = useCallback(() => setAlertProps(null), [setAlertProps]);\n\n    const renderAlert = useMemo(() => {\n\n        if (!alertProps) return null\n\n        const {isOpen = false, severity, message} = alertProps;\n\n        return (\n            <Snackbar\n                open={isOpen}\n                autoHideDuration={autoHideDuration}\n                onClose={handleClose}>\n                <Alert onClose={handleClose} severity={severity}>\n                    {message}\n                </Alert>\n            </Snackbar>\n        );\n    }, [alertProps, handleClose, autoHideDuration]);\n\n    return {renderAlert, fire};\n}\n\nexport default useAlert;","import {useCallback, useState} from \"react\";\n\nfunction useForm(initialForm = null) {\n    const [formValue, setFormValue] = useState(() => initialForm)\n\n    const handleInput = useCallback(\n        ({target: {name, value}}) =>\n            setFormValue(prevState => ({...prevState, [name]: value})), [])\n\n    return {formValue, handleInput, setFormValue}\n\n}\n\nexport default useForm\n","import { AUTH_API_URL, _API_URL } from \"../actions/constants\";\n// import Cookies from 'js-cookie';\nimport { useCallback } from \"react\";\n\nconst PATCH = '/Accounts';\n\nconst useConvertAvatar = () => {\n\n    const convert = useCallback(async (idUpload, uuid) => {\n        const headers = {};\n        headers[\"Accept\"] = \"application/json\";\n        // const token = Cookies.get('GDTQLXD');\n        // if (token) {\n        //     headers[\"Authorization\"] = `Bearer ${token}`;\n        // }\n        const url_Upload = uuid && 'HinhCanBoDownload';\n        const url = _API_URL + AUTH_API_URL + PATCH + `/DownloadAuth/${url_Upload}?id=${uuid}&idUpload=${idUpload}`;\n        const encodedUrl = url.replace(/(?<=search=)[^&]+/g, m => encodeURIComponent(m));\n        const res = await fetch(encodedUrl, {\n            method: \"GET\",\n            credentials: \"same-origin\",\n            headers: headers\n        });\n        if (res.ok)\n            return res;\n        else\n            throw res;\n\n    }, [])\n    return { convert }\n}\nexport default useConvertAvatar","\nimport { useCallback } from \"react\"\nimport VanBansEndpoint from \"../service/GDTCores/VanBansEndpoint\";\nconst useSdoc = () => {\n    const getIdDocument = useCallback(async (data, file, DocumentUuid) => {\n        if (!DocumentUuid) {\n            const doc = await VanBansEndpoint.addDocument(data)\n            return { file, Uuid: doc.Uuid }\n        } else { return { file, Uuid: DocumentUuid } }\n    }, [])\n    const uploadFile = useCallback(async (Uuid, file) => {\n        await VanBansEndpoint.uploadFileDocument(Uuid, file);\n        return Uuid;\n    }, [])\n\n    const uploadSdoc = useCallback((data, file, DocumentUuid) => getIdDocument(data, file, DocumentUuid)\n        .then(({ Uuid, file }) => uploadFile(Uuid, file)), [getIdDocument, uploadFile])\n\n    const downloadFile = useCallback((Uuid) => {\n        if (Uuid) VanBansEndpoint.downloadDoc({ Uuid });\n    }, [])\n    return { uploadSdoc, downloadFile }\n\n}\nexport default useSdoc","import { useCallback } from \"react\";\nimport { CHECK_ERROR } from \"../components/alert/Alert\";\n\nconst useDeleteOdata = () => {\n    const handleDelete = useCallback(async (Endpoint, Uuid) => {\n        try {\n            await Endpoint.DeleteADMINODATA(`(${Uuid})`);\n            return Promise.resolve();\n        } catch (error) {\n            await error.json().then(res => {\n                CHECK_ERROR(res.message)\n                return Promise.reject()\n            });\n        }\n    }, [])\n    return ({\n        handleDelete\n    })\n}\nexport default useDeleteOdata","import { useCallback } from 'react';\n\nconst getTableQueryUrl = ([table, column], value, i) => `${table}/any(e${i}:e${i}/${column} eq ${value} )`\n\nconst isParamsValid = params => {\n    const isExistDot = params.indexOf(\".\");\n    if (isExistDot > -1) return params.split(\".\");\n    return '';\n}\n\nfunction getArrColSeachParams(arrColSeach, value) {\n    let type = typeof (value);\n    let newValue = type === 'boolean' ? value : `'${value}'`\n    const strFilter = `${arrColSeach.map((col, i) => {\n        if (Array.isArray(isParamsValid(col))) return getTableQueryUrl(isParamsValid(col), value, i);\n        return `${col} eq ${newValue}`\n    })}`\n    return strFilter.replace(\",\", ` or `);\n}\n/**\n * @template T\n * @typedef {Object} ColParam \n * @property {Array<String>} cols Tên cột cần filter\n * @property {String} value Giá trị filter\n*/\n/**\n * Query odata\n * @param {import('../../../service/Service').Service} TEndpoint \n * @param {Array<ColParam>} seach \n * @property {String} isFullTextSeach Tên cột cần filter\n*/\nfunction QueryFilterOdata() {\n    const QueryOdata = useCallback((TEndpoint, seachs, fullTextSeach, arrExpand = []) => {\n        let query = '?';\n        if (fullTextSeach) { query += `search=${fullTextSeach}` }\n        if (seachs && seachs.length !== 0) {\n            query += `&$filter=`;\n            const strQuery = seachs.map(({ cols, value }) => getArrColSeachParams(cols, value))\n            query += strQuery.join('or');\n\n        }\n        if (arrExpand.length !== 0) {\n            query += `&$expand=${arrExpand.join(',')}`\n        }\n        return TEndpoint.SearchAllOdata(query, null, null, true)\n    }, [])\n    return { QueryOdata }\n}\nexport default QueryFilterOdata","export const on = (obj, ...args) => obj.addEventListener(...args);\nexport const off = (obj, ...args) => obj.removeEventListener(...args);\nexport const noop = () => { };\nexport const isBrowser = typeof window !== 'undefined';\nexport const isNavigator = typeof navigator !== 'undefined';","import { useEffect } from 'react';\nimport { isBrowser, off, on } from './util';\nvar defaultTarget = isBrowser ? window : null;\nvar isListenerType1 = function (target) {\n    return !!target.addEventListener;\n};\nvar isListenerType2 = function (target) {\n    return !!target.on;\n};\nvar useEvent = function (name, handler, target, options) {\n    if (target === void 0) { target = defaultTarget; }\n    useEffect(function () {\n        if (!handler) {\n            return;\n        }\n        if (!target) {\n            return;\n        }\n        if (isListenerType1(target)) {\n            on(target, name, handler, options);\n        }\n        else if (isListenerType2(target)) {\n            target.on(name, handler, options);\n        }\n        return function () {\n            if (isListenerType1(target)) {\n                off(target, name, handler, options);\n            }\n            else if (isListenerType2(target)) {\n                target.off(name, handler, options);\n            }\n        };\n    }, [name, handler, target, options]);\n};\nexport default useEvent;","import { useMemo } from 'react';\nimport useEvent from './useEvent';\nimport { noop } from './util';\nvar createKeyPredicate = function (keyFilter) {\n    return typeof keyFilter === 'function'\n        ? keyFilter\n        : typeof keyFilter === 'string'\n            ? function (event) { return event.key === keyFilter; }\n            : keyFilter\n                ? function () { return true; }\n                : function () { return false; };\n};\nvar useKey = function (key, fn, opts, deps) {\n    if (fn === void 0) { fn = noop; }\n    if (opts === void 0) { opts = {}; }\n    if (deps === void 0) { deps = [key]; }\n    var _a = opts.event, event = _a === void 0 ? 'keydown' : _a, target = opts.target, options = opts.options;\n    var useMemoHandler = useMemo(function () {\n        var predicate = createKeyPredicate(key);\n        var handler = function (handlerEvent) {\n            if (predicate(handlerEvent)) {\n                return fn(handlerEvent);\n            }\n        };\n        return handler;\n    }, [fn, key]);\n    useEvent(event, useMemoHandler, target, options);\n};\nexport default useKey;","import React, { useEffect, useState, useImperativeHandle, useCallback } from 'react'\nimport { CuaHangVatLieusEndpoint, DMVatLieusEndpoint, DMLoaiVatLieusEndpoint } from '../../../service/GDTCores';\nimport { LoadingSpinner } from \"../../../components/spinners\";\nimport { TreeView, TreeItem } from \"../../../components/tree\";\nimport ToastDetail from \"../../../components/base/Toast/ToastDetail\";\nimport { useAsync } from '../../../hooks';\nimport { removeVietnameseTones, settingData } from '../../../actions/util'\nimport { Input } from 'reactstrap';\n\nconst promises = [\n    DMVatLieusEndpoint.getAllVatLieus(),\n    DMLoaiVatLieusEndpoint.getAllDMLoaiVatLieus()\n]\n\nconst getDataVatLieu = () =>\n    Promise.all(promises)\n        .then(([DMVatLieu, DMLoaiVatLieu]) => ({\n            DMVatLieu: DMVatLieu.value,\n            DMLoaiVatLieu: DMLoaiVatLieu.value,\n        }))\n\nconst TreeVatLieu = React.forwardRef((props, ref) => {\n    const { getData, IdCuaHang } = props;\n\n    const { value: dataVatLieu } = useAsync(getDataVatLieu);\n    const [dataTree, setDataTree] = useState([]);\n    const [newDataTree, setNewDataTree] = useState([]);\n    const [expanded, setExpanded] = useState([]);\n    const [listCuaHangVatLieu, setListCuaHangVatLieu] = useState([]);\n\n    useEffect(() => {\n        geListCuaHangVatLieu()\n    }, [])\n\n    useEffect(() => {\n        if (dataVatLieu) {\n            const newDataDMLoaiVatLieu = [];\n            const newDataDMVatLieu = [];\n            dataVatLieu.DMLoaiVatLieu.forEach((curr) => {\n                let element = { ...curr }\n                let check = listCuaHangVatLieu.find(f => f.DMVatLieu.DMLoaiVatLieuId === curr.Id && f.OrganId === IdCuaHang);\n                if (check) {\n                    element.checked = true;\n                    element.isChange = true;\n                }\n                // element.ParentId = null;\n                newDataDMLoaiVatLieu.push(element);\n            })\n            dataVatLieu.DMVatLieu.forEach((curr) => {\n                let element = { ...curr }\n                let check = listCuaHangVatLieu.find(f => f.DMVatLieuId === curr.Id && f.OrganId === IdCuaHang)\n                if (check) {\n                    element.DonGia = check.DonGia;\n                    element.checked = true;\n                    element.isChange = true;\n                }\n                element.ParentId = curr.DMLoaiVatLieuId;\n                newDataDMVatLieu.push(element);\n            })\n            const dataTree = [...newDataDMLoaiVatLieu, ...newDataDMVatLieu];\n            setDataTree(settingData(dataTree))\n            setNewDataTree(settingData(dataTree))\n        }\n    }, [dataVatLieu, listCuaHangVatLieu, IdCuaHang])\n\n    useEffect(() => { getData(dataTree) }, [getData, dataTree]);\n\n    useImperativeHandle(ref, () => ({\n        getAllDataTree: () => dataTree,\n        onClickDelete: (itemChange, check, isReload) => {\n            if (isReload) {\n                geListCuaHangVatLieu();\n                handleCheck(itemChange, check);\n            } else {\n                handleCheck(itemChange, check)\n            }\n        },\n        onClickAdd: (isReload) => isReload && geListCuaHangVatLieu()\n    }));\n\n    const handleToggle = (event, nodeIds) => {\n        event.persist()\n        let iconClicked = event.target.closest(\".MuiTreeItem-iconContainer\")\n        if (iconClicked) setExpanded(nodeIds)\n    };\n\n    const geListCuaHangVatLieu = () => {\n        CuaHangVatLieusEndpoint.getAllCuaHangVatLieus()\n            .then(res => setListCuaHangVatLieu(res.value))\n    }\n\n    const getGrandParent = useCallback((dataTree, idParent) => {\n        const parent = dataTree.find(f => {\n            if (f.Id === idParent) return f\n            if (f.children && f.children.length !== 0) return getGrandParent(f.children, idParent)\n            return null\n        });\n        return parent\n    }, [])\n\n\n    const handleCheck = (itemChange, check) => {\n        // eslint-disable-next-line no-unused-vars\n        let checked, indexGrandParent;\n\n        const updateData = (parent, itemSelected, oldParent) => {\n            parent.forEach((node, i, arr) => {\n                if (node.Id === itemSelected.Id) {\n                    if (i === 0) { arr[i] = itemSelected; } else {\n                        oldParent.children[i] = { ...oldParent.children[i], ...itemSelected };\n                    }\n                } else {\n                    node.children && updateData(node.children, itemSelected, node);\n                }\n            });\n        }\n        const getItemSelect = (data, Id) => {\n            let itemSelected = null;\n            if (data.Id === Id) return data;\n            const { children = [] } = data;\n            for (let i = 0; i < data.children.length; i++) {\n                if (itemSelected) break;\n                if (children[i].Id === Id) { itemSelected = children[i]; break; }\n                if (children[i].children && children[i].children.length !== 0) itemSelected = getItemSelect(children[i], Id)\n            }\n            return itemSelected\n        }\n\n        const updateCheckData = (data, oldParent, arrIdFamily) => {\n            data && data.forEach((item, i, arr) => {\n                const isParent = arrIdFamily.findIndex(cur => cur === item.Id);\n                if (item.children && item.children.length !== 0) { // lấy những thằng cha để checked\n                    if (oldParent) {\n                        if (isParent > -1) oldParent.children[i]['checked'] = true;\n                    } else { arr[i]['checked'] = true; }\n                    if (item.children && item.children.length !== 0) updateCheckData(item.children, item, arrIdFamily)\n                }\n            })\n        }\n        const getAllFamily = (data, idSelect) => {\n            let arrItem = [];\n            const item = getItemSelect(data, idSelect);\n            arrItem.push(item.Id);\n            if (item.ParentId) arrItem = [...arrItem, getItemSelect(data, item.ParentId).Id]\n            return arrItem;\n        }\n        // eslint-disable-next-line no-unused-vars\n        const getAllChildren = (data, idSelect) => {\n            let arrItem = [];\n            const item = getItemSelect(data, idSelect);\n            arrItem.push(item.Id);\n            if (item.ParentId) arrItem = [...arrItem, getItemSelect(data, item.Id).Id] // đag lam\n            return arrItem;\n        }\n        //-- Giải quyết chung\n        let dataGrandParent = getGrandParent(dataTree, itemChange.ParentId);// lay parent tổng\n        indexGrandParent = dataTree.findIndex(p => p.Id === dataGrandParent.Id); // lấy vị trí của ông cố\n        let itemSelect = {};\n        if (check) {\n            if (itemChange.children && itemChange.children.length !== 0) {\n                itemSelect = { ...itemChange, checked: check, isAdd: true };\n            } else {\n                itemSelect = { ...itemChange, checked: check, DonGia: 0, isAdd: true };\n            }\n        } else {\n            itemSelect = { ...itemChange, checked: check };\n        }\n        updateData(dataTree, itemSelect);// update dataSelect vào dataTree\n        const dataParent = [dataTree[indexGrandParent]]; // lấy parent\n        //-------------\n        if (!itemChange.ParentId) {\n            // console.log('ahihi');\n        } else {\n            if (!check) { // bỏ check\n                const checkData = (dataGrandParent, itemChange, dataTree) => {\n                    const arrSister = getItemSelect(dataGrandParent, itemChange.ParentId).children; // lấy anh em\n                    const isNotCheckedAll = arrSister.filter(cur => cur.checked === true).length === 0;\n                    if (isNotCheckedAll) { // nếu tất cả các ae đều rỗng thì update cha rỗng;\n                        const updateNotCheckData = (dataTree, itemChange) => {\n                            const parent = getItemSelect({ children: dataTree, Id: null }, itemChange.ParentId); //lấy parent của item được chọn\n                            updateData(dataTree, { ...parent, 'checked': false });\n                            if (parent.ParentId) {\n                                checkData(dataGrandParent, parent, dataTree); // chưa xong\n                            }\n                        }\n                        updateNotCheckData(dataTree, itemChange);\n                    }\n                }\n                checkData(dataGrandParent, itemChange, dataTree)\n            } else { // tích check\n                const arrIdFamily = getAllFamily(dataGrandParent, itemChange.ParentId); // lấy tất cả id parent\n                updateCheckData(dataParent, null, arrIdFamily);\n                dataTree[indexGrandParent] = dataParent[0];\n            }\n\n            // eslint-disable-next-line no-unused-vars\n            // const dataChange = {\n            //     ...dataGrandParent,\n            //     checked: children.find(f => f.checked) ? true : false,\n            //     isAdd: children.find(f => f.checked) ? true : false,\n            // }\n            // dataTree[indexGrandParent] = dataChange;\n            setDataTree([...dataTree])\n            setNewDataTree([...dataTree])\n        }\n    }\n\n    const viewNodes = (keyParent, data) => data.map((item, index) => {\n        return (\n            <TreeItem\n                key={`${index}${item.Id}`}\n                title={item.Name}\n                nodeId={item.Id}\n                data={{\n                    Parent: keyParent,\n                    NodeId: item.Id,\n                    Title: item.Name,\n                    Name: item.Name,\n                }}\n                disabled={item.isChange}\n                checkable\n                checked={item.checked || false}\n                onCheck={(e, check) => handleCheck(item, check, index)}\n            >\n                {item.children &&\n                    viewNodes(item.Id, item.children)}\n            </TreeItem>\n        )\n    })\n\n    const handleChangeSearch = (event) => {\n        let value = removeVietnameseTones(event.target.value).toLowerCase().trim();\n        const res = dataTree.reduce((acc, a) => {\n            const ch = a.children && a.children.filter(b => removeVietnameseTones(b.Name).toLowerCase().trim().includes(value));\n            if (ch && ch.length) acc.push({ ...a, children: ch });\n            else if (removeVietnameseTones(a.Name).toLowerCase().trim().includes(value)) acc.push({ ...a, name: a.Name });\n            return acc;\n        }, []);\n        setNewDataTree(res)\n    }\n\n    return (\n        <ToastDetail renderTitle={'Danh sách vật liệu'}>\n            <Input\n                size=\"md\"\n                placeholder=\"Nhập tìm kiếm...\"\n                onChange={(event) => handleChangeSearch(event)}\n            />\n            <LoadingSpinner>\n                {newDataTree && newDataTree.length !== 0 && (\n                    <TreeView\n                        nameId=\"Id\"\n                        data={[{ children: newDataTree }]}\n                        expanded={expanded}\n                        onNodeToggle={handleToggle}\n                    >\n                        {viewNodes(\"null\", newDataTree)}\n                    </TreeView>\n                )}\n            </LoadingSpinner>\n        </ToastDetail>\n    )\n});\n\nexport default TreeVatLieu;\n"],"names":["asyncFunction","immediate","arguments","length","undefined","status","setStatus","useState","value","setValue","error","setError","isMounted","useRef","execute","useCallback","param","then","response","current","catch","useEffect","Alert","props","_jsx","MuiAlert","elevation","variant","autoHideDuration","alertProps","setAlertProps","fire","useMemo","isOpen","message","severity","success","warning","info","handleClose","renderAlert","Snackbar","open","onClose","children","initialForm","formValue","setFormValue","handleInput","_ref","target","name","prevState","useConvertAvatar","convert","async","idUpload","uuid","headers","url_Upload","encodedUrl","_API_URL","AUTH_API_URL","replace","m","encodeURIComponent","res","fetch","method","credentials","ok","useSdoc","getIdDocument","data","file","DocumentUuid","Uuid","VanBansEndpoint","addDocument","uploadFile","uploadFileDocument","uploadSdoc","downloadFile","downloadDoc","useDeleteOdata","handleDelete","Endpoint","DeleteADMINODATA","Promise","resolve","json","CHECK_ERROR","reject","isParamsValid","params","indexOf","split","QueryOdata","TEndpoint","seachs","fullTextSeach","arrExpand","query","map","_ref2","cols","arrColSeach","newValue","strFilter","col","i","Array","isArray","getTableQueryUrl","table","column","getArrColSeachParams","join","SearchAllOdata","noop","isBrowser","window","defaultTarget","isListenerType1","addEventListener","isListenerType2","on","handler","options","obj","_len","args","_key","_len2","_key2","removeEventListener","off","key","fn","opts","deps","_a","event","useMemoHandler","keyFilter","predicate","handlerEvent","useEvent","promises","DMVatLieusEndpoint","getAllVatLieus","DMLoaiVatLieusEndpoint","getAllDMLoaiVatLieus","getDataVatLieu","all","DMVatLieu","DMLoaiVatLieu","React","ref","getData","IdCuaHang","dataVatLieu","useAsync","dataTree","setDataTree","newDataTree","setNewDataTree","expanded","setExpanded","listCuaHangVatLieu","setListCuaHangVatLieu","geListCuaHangVatLieu","newDataDMLoaiVatLieu","newDataDMVatLieu","forEach","curr","element","find","f","DMLoaiVatLieuId","Id","OrganId","checked","isChange","push","check","DMVatLieuId","DonGia","ParentId","settingData","useImperativeHandle","getAllDataTree","onClickDelete","itemChange","isReload","handleCheck","onClickAdd","CuaHangVatLieusEndpoint","getAllCuaHangVatLieus","getGrandParent","idParent","indexGrandParent","updateData","parent","itemSelected","oldParent","node","arr","getItemSelect","updateCheckData","arrIdFamily","item","isParent","findIndex","cur","dataGrandParent","p","itemSelect","isAdd","dataParent","getAllFamily","idSelect","arrItem","checkData","filter","updateNotCheckData","viewNodes","keyParent","index","TreeItem","title","Name","nodeId","Parent","NodeId","Title","disabled","checkable","onCheck","e","_jsxs","ToastDetail","renderTitle","Input","size","placeholder","onChange","removeVietnameseTones","toLowerCase","trim","reduce","acc","a","ch","b","includes","handleChangeSearch","LoadingSpinner","TreeView","nameId","onNodeToggle","handleToggle","nodeIds","persist","closest"],"sourceRoot":""}