PageSourceSearch

https://app.allotrac.io/_next/static/chunks/7741-136f8ad826e33751.js

js allotrac.io collected 2026-10-10 00:38:00 UTC 74,803 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7741],{22465:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{$:function(){return FeatureWrapper}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),_entities_site_interface__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(84572),_mui_material__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(9258),_mui_material__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(77345),_mui_material__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(77046),_mui_material__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(67398),contexts_SiteContext__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(64984),next_router__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(11163),next_router__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_3__),react__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(67294),utils_auth__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(41238),_graph_api_src_auth_sitePermissions__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(67781),_utils__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(73884),hooks_useSafeNavigation__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(15186);let FeatureWrapper=param=>{let{children,requiredFeatures}=param,siteContext=(0,react__WEBPACK_IMPORTED_MODULE_4__.useContext)(contexts_SiteContext__WEBPACK_IMPORTED_MODULE_2__.ZP),{navigate}=(0,hooks_useSafeNavigation__WEBPACK_IMPORTED_MODULE_8__.H)(),{allowed,failedReason,unallowedFeatures}=(0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(()=>{var ref,ref1;if(requiredFeatures.some(feature=>_graph_api_src_auth_sitePermissions__WEBPACK_IMPORTED_MODULE_6__.nS.BLOCKED_FEATURES.includes(feature)))return{allowed:!1,failedReason:"One or more required features are blocked on this site",unallowedFeatures:requiredFeatures.filter(feature=>_graph_api_src_auth_sitePermissions__WEBPACK_IMPORTED_MODULE_6__.nS.BLOCKED_FEATURES.includes(feature))};if((null==siteContext?void 0:null===(ref=siteContext.site)||void 0===ref?void 0:ref.type)===_entities_site_interface__WEBPACK_IMPORTED_MODULE_1__.NM.DEMO)return{allowed:!0,failedReason:null,unallowedFeatures:[]};if(!(null==siteContext?void 0:null===(ref1=siteContext.site)||void 0===ref1?void 0:ref1.features))return{allowed:!1,failedReason:"No features available on site",unallowedFeatures:requiredFeatures};let missingFeaturesOnSite=requiredFeatures.filter(feature=>!(0,utils_auth__WEBPACK_IMPORTED_MODULE_5__.dv)(siteContext,feature));return missingFeaturesOnSite.length>0?{allowed:!1,failedReason:"Missing features: ".concat(missingFeaturesOnSite.join(", ")),unallowedFeatures:missingFeaturesOnSite}:{allowed:!0,failedReason:null,unallowedFeatures:[]}},[siteContext,requiredFeatures]),maxRequiredTier=(0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(()=>{if(allowed)return null;let requiredTiers=unallowedFeatures.map(feature=>(0,utils_auth__WEBPACK_IMPORTED_MODULE_5__.Y0)(feature)).filter(tier=>null!==tier);return 0===requiredTiers.length?null:requiredTiers.sort()[requiredTiers.length-1]},[allowed,unallowedFeatures]),canUpgradePlans=(0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(()=>{var ref,ref1;return null!=siteContext&&null!==(ref=siteContext.permissions)&&void 0!==ref&&!!ref.route&&!!(null===(ref1=siteContext.permissions.route["manage-subscription"])||void 0===ref1?void 0:ref1.access)},[siteContext]);return(null==siteContext?void 0:siteContext.site)?allowed?children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__.Z,{display:"flex",justifyContent:"center",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_10__.Z,{severity:"error",sx:{mt:"30vh"},children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_11__.Z,{children:["Unauthorized: ",failedReason,"."]}),maxRequiredTier&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_11__.Z,{children:["Requires ",maxRequiredTier,"."]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_9__.Z,{mt:1,display:"flex",justifyContent:"space-between",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_12__.Z,{variant:"contained",onClick:()=>next_router__WEBPACK_IMPORTED_MODULE_3___default().back(),children:"Go back"}
1),canUpgradePlans&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_12__.Z,{variant:"contained",onClick:()=>navigate("/manage-subscription"),children:"View plans"})]})]})}):(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_utils__WEBPACK_IMPORTED_MODULE_7__.aN,{})}},20637:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893);__webpack_require__(67294);var _mui_material__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9258),_mui_material__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(89658),_mui_material__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(71395),_mui_material__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(67398);let FooterButton=param=>{let{onClick}=param;return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Z,{sx:{p:.7,textAlign:"right",backgroundColor:"background.paper"},children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Z,{direction:"row",gap:1,justifyContent:"flex-end",alignItems:"center",mr:2,mb:.5,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Z,{title:"Resets Grid configuration to default",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__.Z,{variant:"outlined",onClick(){onClick("reset")},children:"Reset"})}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Z,{title:"Saves current Grid configuration to your user profile",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__.Z,{variant:"contained",onClick(){onClick()},children:"Save Preferences"})})]})})};__webpack_exports__.Z=FooterButton},49257:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{$:function(){return convertSortModelToGraphQL},n:function(){return ENTITY_SORT_MAPS}});let SORT_ENUM_MAP={_id:{ASC:"_ID_ASC",DESC:"_ID_DESC"}},ENTITY_SORT_MAPS={jobs:{_id:{ASC:"_ID_ASC",DESC:"_ID_DESC"},serialIdentifier:{ASC:"SERIALIDENTIFIER_ASC",DESC:"SERIALIDENTIFIER_DESC"},multilegGroupingSerial:{ASC:"MULTILEGGROUPINGSERIAL_ASC",DESC:"MULTILEGGROUPINGSERIAL_DESC"},multilegGroupingSerial_tier:{ASC:"MULTILEGGROUPINGSERIAL_ASC",DESC:"MULTILEGGROUPINGSERIAL_DESC"},jobReference:{ASC:"JOBREFERENCE_ASC",DESC:"JOBREFERENCE_DESC"},jobStatus:{ASC:"JOBSTATUS_ASC",DESC:"JOBSTATUS_DESC"},jobDate:{ASC:"JOBDATE_ASC",DESC:"JOBDATE_DESC"},jobType:{ASC:"JOBTYPE_NAME_ASC",DESC:"JOBTYPE_NAME_DESC"},"billable.company":{ASC:"BILLABLE_COMPANY_ASC",DESC:"BILLABLE_COMPANY_DESC"},"origin.company":{ASC:"ORIGIN_COMPANY_ASC",DESC:"ORIGIN_COMPANY_DESC"},"destination.company":{ASC:"DESTINATION_COMPANY_ASC",DESC:"DESTINATION_COMPANY_DESC"},"originAddress.address":{ASC:"ORIGINADDRESS_ADDRESS_ASC",DESC:"ORIGINADDRESS_ADDRESS_DESC"},"destinationAddress.address":{ASC:"DESTINATIONADDRESS_ADDRESS_ASC",DESC:"DESTINATIONADDRESS_ADDRESS_DESC"}},projects:{_id:{ASC:"_ID_ASC",DESC:"_ID_DESC"},serialIdentifier:{ASC:"SERIALIDENTIFIER_ASC",DESC:"SERIALIDENTIFIER_DESC"},projectName:{ASC:"PROJECTNAME_ASC",DESC:"PROJECTNAME_DESC"},startDate:{ASC:"STARTDATE_ASC",DESC:"STARTDATE_DESC"},endDate:{ASC:"ENDDATE_ASC",DESC:"ENDDATE_DESC"},paymentType:{ASC:"PAYMENTTYPE_ASC",DESC:"PAYMENTTYPE_DESC"},"jobType.name":{ASC:"JOBTYPE_NAME_ASC",DESC:"JOBTYPE_NAME_DESC"},"billable.company":{ASC:"BILLABLE_COMPANY_ASC",DESC:"BILLABLE_COMPANY_DESC"},"origin.company":{ASC:"ORIGIN_COMPANY_ASC",DESC:"ORIGIN_COMPANY_DESC"},"originAddress.address":{ASC:"ORIGINADDRESS_ADDRESS_ASC",DESC:"ORIGINADDRESS_ADDRESS_DESC"},"destination.company":{ASC:"DESTINATION_COMPANY_ASC",DESC:"DESTINATION_COMPANY_DESC"},"destinationAddress.address":{ASC:"DESTINATIONADDRESS_ADDRESS_ASC",DESC:"DESTINATIONADDRESS_ADDRESS_DESC"}}},convertSortModelToGraphQL=function(sortModel){let defaultSort=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"_ID_DESC",entityMap=arguments.length>2?arguments[2]:void 0;if(!sortModel||0===sortModel.length)return defaultSort;let primarySort=sortModel[0],colId=primarySort.colId,direction=primarySort.sort.toUpperCase(),columnMap=(entityMap||SORT_ENUM_MAP)[colId];return columnMap&&columnMap[direction]?columnMap[direction]:(console.warn('[sortUtils] Column "'.concat(colId,'" is not supported for sorting. ')+"Using default sort: ".concat(defaultSort,". ")+"To enable sorting on this column, add an index to the MongoDB schema."),defaultSort)}},36250:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{P$:function(){return sideBar},oU:function(){return DetailColumnSidebar}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),_mui_material__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(45777),_mui_material__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(855),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(67294);__webpack_require__(74471);let DetailColumnSidebar=param=>{let{columnDefs,hiddenSubgridColsRef,hiddenCols,updateHiddenSubgridCols}=param,[hiddenSubgridCols,setHiddenSubgridCols]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{setHiddenSubgridCols([...hiddenCols])},[hiddenCols]);let toggleColumn=colId=>{let isCurrentlyHidden=hiddenSubgridColsRef.current.includes(colId),updated=isCurrentlyHidden?hiddenSubgridColsRef.current.filter(id=>id!==colId):[...hiddenSubgridColsRef.current,colId];setHiddenSubgridCols(updated),updateHiddenSubgridCols(updated,colId)};return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{style:{padding:"1rem",width:220},children:null==columnDefs?void 0:columnDefs.map(col=>{let colId=col.field||col.colId||"";return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Z,{control:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Z,{checked:!hiddenSubgridCols.includes(colId),onChange:()=>toggleColumn(colId)}),label:col.headerName||col.field})},colId)})})},sideBar={toolPanels:[{id:"columns",labelDefault:"Columns",labelKey:"columns",iconKey:"columns",toolPanel:"agColumnsToolPanel"},{id:"filters",labelDefault:"Filters",labelKey:"filters",iconKey:"filter",toolPanel:"agFiltersToolPanel"}]}},37048:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{X:function(){return CROSS_TENANT_VEHICLE_ALLOCATION_
1SUBSCRIPTION}});var _swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7297),_apollo_client__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(68806);function _templateObject(){let data=(0,_swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__.Z)(["\n    subscription CrossTenantVehicleAllocationUpdated {\n        crossTenantVehicleAllocationUpdated {\n            type\n            parentJobId\n            vehicleId\n            targetTenantId\n            timestamp\n        }\n    }\n"]);return _templateObject=function(){return data},data}let CROSS_TENANT_VEHICLE_ALLOCATION_SUBSCRIPTION=(0,_apollo_client__WEBPACK_IMPORTED_MODULE_1__.Ps)(_templateObject())},96230:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{L:function(){return JOB_SUBSCRIPTION}});var _swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7297),_apollo_client__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(68806);function _templateObject(){let data=(0,_swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__.Z)(["\n    subscription JobSubscription($jobId: ID!) {\n        job(id: $jobId) {\n            _id\n            serialIdentifier\n            accessPin\n            isForceClosed\n            multilegGroupingSerial\n            filePacks {\n                _id\n                type\n                title\n                description\n                publicId\n                publicLinkExpiry\n                about {\n                    displayName\n                    id\n                    type\n                }\n            }\n            assignedShift {\n                shiftId\n                driver\n                vehicle\n            }\n            billable {\n                account\n                company\n                _id\n                finance {\n                    invoiceableQuantity\n                }\n            }\n            destination {\n                account\n                company\n                _id\n            }\n            carrier {\n                account\n                company\n                _id\n            }\n            destinationAddress {\n                address\n                gps\n                _id\n                destinationNotification {\n                    captures {\n                        pod {\n                            enabled\n                            imageRequired\n                        }\n                        locationGeofence {\n                            enabled\n                        }\n                        notificationGeofence {\n                            enabled\n                        }\n                    }\n                    billableProofCommunications {\n                        locationGeofence\n                        notificationGeofence\n                    }\n                }\n            }\n            jobSubtype {\n                _id\n                name\n                podTemplate\n                popTemplate\n            }\n            customFields {\n                _id\n                customFieldGroup {\n                    _id\n                    name\n                }\n                customFieldTemplateId\n                name\n                type\n                value\n                systemVisibility\n                driverVisibility\n                requiredStage\n                enumeratedValues\n                replicate\n            }\n            documents {\n                _id\n                description\n                path\n                thumbnailPath\n                type {\n                    name\n                }\n                owner {\n                    id\n                }\n                about {\n                    id\n                    type\n                }\n                fileName\n                additionalData\n                otherInfo\n                _metadata {\n                    createdAt\n                }\n                labels {\n                    name\n                    color\n                    description\n                    applicableEntityTypes\n                    _id\n                }\n            }\n            items {\n                item\n                name\n                code\n                type\n                locked\n                label {\n                    _id\n                    name\n                }\n                primaryUnit {\n                    _id\n                    name\n                    dimension\n                    conversionCoefficient\n                    conversionOffset\n                }\n                billing {\n                    dimension\n                    pricePerUnit\
1n                    costPerUnit\n                    serviceCostPerUnit\n                }\n                primaryMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                massMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                amountMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                volumeMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                timeMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                lengthMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                temperatureMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                velocityMeasurements {\n                    allocated {\n                        value\n                        unit\n                        symbol\n                    }\n                    loaded {\n                        value\n                        unit\n                        symbol\n                    }\n                    delivered {\n                        value\n                        unit\n                        symbol\n                    }\n                }\n                units {\n                    time {\n                        minimum\n                    }\n                    primaryDimensionConversions {\n                        amount {\n                            conversionCoefficient\n                            conversionOffset\n                        }\n                        length {\n                            conversionCoefficient\n                            conversionOffset\n                        }\n                        mass {\n                            conversionCoefficient\n                            conversionOffset\n                        }\n                        volume {\n                            conversionCoefficient\n                            conversionOffset\n                        }\n                        time {\n                            conversionCoefficient\n                            conversionOffset\n                        }\n                        temperature {\n                            conversionCoefficient\n                            conversionOffset\n                        }
1\n                        velocity {\n                            conversionCoefficient\n                            conversionOffset\n                        }\n                    }\n                }\n            }\n            jobDate\n            jobReference\n            jobStatus\n            jobStatusHistory {\n                status\n                timestamp\n                gps {\n                    type\n                    coordinates\n                }\n            }\n            origin {\n                _id\n                account\n                company\n            }\n            originAddress {\n                address\n                gps\n                _id\n                originNotification {\n                    captures {\n                        pop {\n                            enabled\n                            imageRequired\n                        }\n                        locationGeofence {\n                            enabled\n                        }\n                        notificationGeofence {\n                            enabled\n                        }\n                    }\n                    billableProofCommunications {\n                        locationGeofence\n                        notificationGeofence\n                    }\n                }\n            }\n            jobType {\n                _id\n                name\n                description\n                systemDefault\n                requiredFields\n                workflow {\n                    jobStagePages {\n                        nodeId\n                        type\n                        nextNode {\n                            nextNodeType\n                            nextNodeID\n                        }\n                    }\n                    formTemplatePages {\n                        nodeId\n                        explicitFormTemplateDefault\n                        formType\n                        implicitFormTemplateHierarchy\n                        nextNode {\n                            nextNodeType\n                            nextNodeID\n                        }\n                    }\n\n                    startingNode {\n                        nextNodeID\n                        nextNodeType\n                    }\n                }\n            }\n            projectId\n            allocationConstraints {\n                allowableShiftTemplates {\n                    _id\n                    name\n                }\n                allowableFleets {\n                    _id\n                    name\n                }\n            }\n            rollover\n            preload {\n                status\n            }\n            shift {\n                _id\n                vehicle {\n                    _id\n                    identifier\n                }\n                driver {\n                    _id\n                    name\n                }\n            }\n            impediment {\n                type\n                blocks\n                impedimentId\n                relatedJobId\n                resolvedAt\n                resolvedBy {\n                    _id\n                    name\n                }\n            }\n            paymentType\n            invoiceStatus\n            labels {\n                _id\n                name\n                color\n                description\n            }\n            pendingAcknowledgments {\n                _id\n                changedFields\n                changedAt\n                acknowledgedAt\n                acknowledgedBy\n                requiresAcknowledgment\n            }\n            multilegId\n            assignedToTenant {\n                tenantId\n                sharedJobId\n                assignedDate\n            }\n            isSharedWithOtherOrganization\n            sharedJobFieldPermissions {\n                jobReference\n                jobDate\n                jobType\n                jobStatus\n                billable\n                origin\n                originAddress\n                destination\n                destinationAddress\n                items {\n                    type\n                    name\n                    code\n                    primaryUnit\n                    units\n                    measurements\n                    billing\n                }\n                jobStatusHistory\n                rollover\n                serialIdentifier\n                paymentType\n                labels\n                customFields\n                impediment\n                filePacks\n                assignedShift\n            }\n            sharing {\n                sourceDocument\n                parentTenantId\n            }\n            invoiceNumber\n            invoiceTotal\n            _metadata {\n                deleted\n            }\n        }\n    }\n"]);
1return _templateObject=function(){return data},data}let JOB_SUBSCRIPTION=(0,_apollo_client__WEBPACK_IMPORTED_MODULE_1__.Ps)(_templateObject())},96981:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Y:function(){return upsertUserPreference},_:function(){return fetchUserPreference}});var _queries__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(49849),_mutations__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(99993);async function upsertUserPreference(client,param){var ref,ref1;let{name,preference}=param,result=await client.mutate({mutation:_mutations__WEBPACK_IMPORTED_MODULE_1__.B,variables:{record:{name,preference}}});return{recordId:null===(ref=result.data)||void 0===ref?void 0:null===(ref1=ref.upsertUserPreference)||void 0===ref1?void 0:ref1.recordId}}async function fetchUserPreference(client,name){var ref,ref1;let{data}=await client.query({query:_queries__WEBPACK_IMPORTED_MODULE_0__.J,variables:{filter:{name}},fetchPolicy:"network-only"}),record=null==data?void 0:null===(ref=data.userPreferencesList)||void 0===ref?void 0:null===(ref1=ref.records)||void 0===ref1?void 0:ref1[0];return{preference:(null==record?void 0:record.preference)||null}}},99993:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{B:function(){return UPSERT_USER_PREFERENCE}});var _swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7297),_apollo_client__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(68806);function _templateObject(){let data=(0,_swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__.Z)(["\n    mutation UpsertUserPreference($record: UserPreferenceInput) {\n        upsertUserPreference(record: $record) {\n            recordId\n        }\n    }\n"]);return _templateObject=function(){return data},data}let UPSERT_USER_PREFERENCE=(0,_apollo_client__WEBPACK_IMPORTED_MODULE_1__.Ps)(_templateObject())},49849:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{J:function(){return GET_USER_PREFERENCE}});var _swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7297),_apollo_client__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(68806);function _templateObject(){let data=(0,_swc_helpers_src_tagged_template_literal_mjs__WEBPACK_IMPORTED_MODULE_0__.Z)(["\n    query UserPreferencesList($filter: FilterFindManyUserPreferenceInput) {\n        userPreferencesList(filter: $filter) {\n            records {\n                name\n                preference\n            }\n        }\n    }\n"]);return _templateObject=function(){return data},data}let GET_USER_PREFERENCE=(0,_apollo_client__WEBPACK_IMPORTED_MODULE_1__.Ps)(_templateObject())},24001:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var IUserPreferenceName,IUserPreferenceName1;__webpack_require__.d(__webpack_exports__,{F:function(){return IUserPreferenceName}}),(IUserPreferenceName1=IUserPreferenceName||(IUserPreferenceName={})).JobListingGrid="jobListingGrid",IUserPreferenceName1.ProjectListingGrid="projectListingGrid",IUserPreferenceName1.DocumentListingGrid="documentListingGrid",IUserPreferenceName1.PriceListGrid="priceListGrid",IUserPreferenceName1.ContactListingGrid="contactListingGrid",IUserPreferenceName1.PlanningScreenGrid="planningScreenGrid",IUserPreferenceName1.PlanningScreenConfig="planningScreenConfig",IUserPreferenceName1.FormArchiveGrid="formArchiveGrid",IUserPreferenceName1.LoggedEventsGrid="loggedEventsGrid",IUserPreferenceName1.InvoiceApprovalGrid="invoiceApprovalGrid",IUserPreferenceName1.YardItemsGrid="yardItemsGrid",IUserPreferenceName1.YardItemsViewGrid="yardItemsViewGrid",IUserPreferenceName1.YardListingConfig="yardListingConfig",IUserPreferenceName1.YardListingSelectedView="yardListingSelectedView"},71181:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{T:function(){return useCustomFieldTemplates}});var _apollo_client__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(6388),_entities_customFieldTemplates_graphql_queries__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(46882),_entities_customFieldTemplates_interfaces_interface__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(35841);function useCustomFieldTemplates(options){var ref,ref1;let entityType=null!==(ref1=null==options?void 0:options.entityType)&&void 0!==ref1?ref1:_entities_customFieldTemplates_interfaces_interface__WEBPACK_IMPORTED_MODULE_1__.py.JOB,{data,loading,error}=(0,_apollo_client__WEBPACK_IMPORTED_MODULE_2__.aM)(_entities_customFieldTemplates_graphql_queries__WEBPACK_IMPORTED_MODULE_0__.J4,{variables:{filter:{entityType},limit:100},fetchPolicy:"cache-and-network"});return{customFieldTemplates:(null==data?void 0:null===(ref=data.customFieldTemplatesList)||void 0===ref?void 0:ref.records)||[],loading,error}}},47741:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{JobListingGrid:function(){return JobListingGrid},default:function(){return listing}});var jsx_runtime=__webpack_require__(85893),index_esm=__webpack_require__(50975),react=__webpack_require__(67294),lib_agGridTheme=__webpack_require__(17081),useApolloClient=__webpack_require__(66252),useMutation=__webpack_require__(50319),useSubscription=__webpack_require__(46171),Edit=__webpack_require__(86866),FileDownload=__webpack_require__(25762),Box=__webpack_require__(9258),CircularProgress=__webpack_require__(53020),Button=__webpack_require__(67398),react_dom_client=__webpack_require__(20745),es=__webpack_require__(67421),ConfirmButton=__webpack_require__(37156),ActionLoaderContext=__webpack_require__(26530),SnackAlertContext=__webpack_require__(3250),dataDefs=__webpack_require__(93237),mutations=__webpack_require__(38789),interfaces_interface=__webpack_require__(53602),defaultConfig=__webpack_require__(93358);let getNestedValue=(obj,path)=>path.split(".").reduce((current,key)=>
1null==current?void 0:current[key],obj),doesRowMatchFilters=(row,filterModel)=>{if(!filterModel||"object"!=typeof filterModel||"filterType"in filterModel)return!0;for(let field in filterModel){let filterData=filterModel[field];if(!filterData)continue;let cellValue=getNestedValue(row,field);if("set"===filterData.filterType){let values=filterData.values,stringValue=null!=cellValue?String(cellValue):"";if(!values.includes(stringValue)&&!values.includes(cellValue))return!1}else if("number"===filterData.filterType){let numValue=Number(cellValue);if(isNaN(numValue)||"equals"===filterData.type&&numValue!==filterData.filter||"greaterThan"===filterData.type&&numValue<=filterData.filter||"lessThan"===filterData.type&&numValue>=filterData.filter)return!1}else if("date"===filterData.filterType){if("equals"===filterData.type&&filterData.dateFrom){let filterDate=filterData.dateFrom.substring(0,10),cellDate=cellValue?String(cellValue).substring(0,10):"";if(cellDate!==filterDate)return!1}}else if("contains"===filterData.type&&filterData.filter){let textValue=null!=cellValue?String(cellValue):"";if(!textValue.toLowerCase().includes(String(filterData.filter).toLowerCase()))return!1}else if("equals"===filterData.type&&void 0!==filterData.filter){let textValue1=null!=cellValue?String(cellValue):"";if(textValue1.toLowerCase()!==String(filterData.filter).toLowerCase())return!1}}return!0},applyFilterAwareTransaction=(gridApi,rawRow,formattedRow,rowId)=>{var ref,ref1;let activeFilterModel=gridApi.getFilterModel(),hasFilters=activeFilterModel&&Object.keys(activeFilterModel).length>0,rowExists=!1;if(gridApi.forEachNode(node=>{var ref;(null===(ref=node.data)||void 0===ref?void 0:ref._id)===rowId&&(rowExists=!0)}),hasFilters){let matchesFilter=doesRowMatchFilters(rawRow,activeFilterModel);if(matchesFilter&&!rowExists){let sortModel=null===(ref=gridApi.getColumnState())||void 0===ref?void 0:ref.find(col=>null!==col.sort),addIndex=(null==sortModel?void 0:sortModel.sort)==="asc"?void 0:0;gridApi.applyServerSideTransactionAsync({route:[],add:[formattedRow],addIndex})}else matchesFilter&&rowExists?gridApi.applyServerSideTransactionAsync({route:[],update:[formattedRow]}):!matchesFilter&&rowExists&&gridApi.applyServerSideTransactionAsync({route:[],remove:[{_id:rowId}]})}else try{if(rowExists)gridApi.applyServerSideTransactionAsync({route:[],update:[formattedRow]});else{let sortModel1=null===(ref1=gridApi.getColumnState())||void 0===ref1?void 0:ref1.find(col=>null!==col.sort),addIndex1=(null==sortModel1?void 0:sortModel1.sort)==="asc"?void 0:0;gridApi.applyServerSideTransactionAsync({route:[],add:[formattedRow],addIndex:addIndex1})}}catch(e){gridApi.refreshServerSide({route:[],purge:!1})}};var FooterButton=__webpack_require__(20637),sortUtils=__webpack_require__(49257),permissionAcces=__webpack_require__(71989),FeatureWrapper=__webpack_require__(22465),AggridComponents=__webpack_require__(36250),dayjs_min=__webpack_require__(27484),dayjs_min_default=__webpack_require__.n(dayjs_min),Modal=__webpack_require__(49513),Stack=__webpack_require__(89658),Typography=__webpack_require__(77046),ToggleButtonGroup=__webpack_require__(53313),ToggleButton=__webpack_require__(287),Divider=__webpack_require__(17318),LinearProgress=__webpack_require__(76789),Chip=__webpack_require__(75298),Download=__webpack_require__(75481),FileDownloadOutlined=__webpack_require__(42519),CheckCircleOutline=__webpack_require__(24134),ErrorOutline=__webpack_require__(18099),LocalizationProvider=__webpack_require__(98523),DatePicker=__webpack_require__(90768),AdapterDayjs=__webpack_require__(87270),modals_Modal=__webpack_require__(36569),aggrid_AggridComponents=__webpack_require__(1349),queries=__webpack_require__(63281),errorHandling=__webpack_require__(22188);let sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms)),clamp01=value=>Math.min(1,Math.max(0,value)),buildExportFilter=(baseFilter,startDate)=>{let filter={...baseFilter||{}};if(delete filter.jobDate,startDate){let operators={...filter._operators||{}};operators.jobDate={...operators.jobDate||{},gte:dayjs_min_default()(startDate).format("YYYY-MM-DD")},filter._operators=operators}return filter},useJobsCsvExport=()=>{let client=(0,useApolloClient.x)(),recordsRef=(0,react.useRef)([]),cancelRef=(0,react.useRef)(!1),runningRef=(0,react.useRef)(!1),runI
1dRef=(0,react.useRef)(0),[state,setState]=(0,react.useState)({status:"idle",fetchedCount:0,oldestJobDate:null,progress:null}),cancelExport=(0,react.useCallback)(()=>{cancelRef.current=!0},[]),resetExport=(0,react.useCallback)(()=>{runIdRef.current+=1,cancelRef.current=!1,recordsRef.current=[],setState({status:"idle",fetchedCount:0,oldestJobDate:null,progress:null})},[]),getRecords=(0,react.useCallback)(()=>recordsRef.current,[]);(0,react.useEffect)(()=>()=>{runIdRef.current+=1,cancelRef.current=!0,runningRef.current=!1},[]);let startExport=(0,react.useCallback)(async param=>{let nextToken,{startDate,baseFilter}=param;if(runningRef.current)return;let runId=runIdRef.current+=1;runningRef.current=!0,cancelRef.current=!1,recordsRef.current=[];let now=dayjs_min_default()(),totalSpanMs=startDate?now.diff(dayjs_min_default()(startDate)):null,exportFilter=buildExportFilter(baseFilter,startDate);setState({status:"running",fetchedCount:0,oldestJobDate:null,progress:startDate?0:null});let oldestJobDate=null;try{for(;;){var ref,ref1,ref2,ref3;if(runIdRef.current!==runId)return;if(cancelRef.current){setState(prev=>({...prev,status:"cancelled"}));return}let variables={limit:50,sort:"JOBDATE_DESC",...Object.keys(exportFilter).length>0?{filter:exportFilter}:{},...nextToken?{nextToken}:{}},[error,response]=await (0,errorHandling.sh)(()=>client.query({query:queries.Bj,variables,fetchPolicy:"no-cache"}));if(runIdRef.current!==runId)return;if(error){setState(prev=>({...prev,status:"error",error:error instanceof Error?error.message:String(error)}));return}let records=(null==response?void 0:null===(ref=response.data)||void 0===ref?void 0:null===(ref1=ref.jobsList)||void 0===ref1?void 0:ref1.records)||[];if(nextToken=null==response?void 0:null===(ref2=response.data)||void 0===ref2?void 0:null===(ref3=ref2.jobsList)||void 0===ref3?void 0:ref3.nextToken,records.length>0){recordsRef.current=recordsRef.current.concat(records);let lastRecord=records[records.length-1];(null==lastRecord?void 0:lastRecord.jobDate)&&(oldestJobDate=String(lastRecord.jobDate))}let progress=totalSpanMs&&totalSpanMs>0&&oldestJobDate?clamp01(now.diff(dayjs_min_default()(oldestJobDate))/totalSpanMs):null;if(setState({status:"running",fetchedCount:recordsRef.current.length,oldestJobDate,progress}),!nextToken||0===records.length)break;await sleep(500)}if(runIdRef.current!==runId)return;setState(prev=>({...prev,status:cancelRef.current?"cancelled":"done",progress:startDate?1:null}))}finally{runIdRef.current!==runId||(runningRef.current=!1)}},[client]);return{state,startExport,cancelExport,resetExport,getRecords}};var hooks=__webpack_require__(74589),papaparse_min=__webpack_require__(57460),papaparse_min_default=__webpack_require__.n(papaparse_min);let getNested=(obj,path)=>{if(obj&&path)return path.split(".").reduce((acc,key)=>{if(null!=acc&&"object"==typeof acc)return acc[key]},obj)},extractLabel=value=>null==value?"":"string"==typeof value?value:"number"==typeof value||"boolean"==typeof value?String(value):"object"==typeof value?String(value.name||value.company||value.identifier||value.label||value.account||""):String(value),CSV_INJECTION_PREFIXES=["=","+","-","@","	","\r"],sanitizeForCsv=value=>{if(""===value)return value;let first=value[0];return CSV_INJECTION_PREFIXES.includes(first)&&("-"!==first&&"+"!==first||Number.isNaN(Number(value)))?"'".concat(value):value},toCsvString=value=>sanitizeForCsv(null==value?"":"string"==typeof value?value:"number"==typeof value||"boolean"==typeof value?String(value):Array.isArray(value)?value.map(entry=>extractLabel(entry)).filter(Boolean).join("; "):"object"==typeof value?extractLabel(value):String(value)),resolveCellValue=(colDef,record)=>{let value;try{"function"==typeof colDef.valueGetter?value=colDef.valueGetter({data:record,colDef,getValue:field=>getNested(record,field),node:null,api:null,column:null,context:null}):colDef.field&&(value=getNested(record,colDef.field))}catch(e){value=colDef.field?getNested(record,colDef.field):""}if("function"==typeof colDef.valueFormatter)try{let formatted=colDef.valueFormatter({value,data:record,colDef,node:null,api:null,column:null,context:null});null!=formatted&&""!==formatted&&(value=formatted)}catch(e1){}return toCsvString(value)}
1,toResolvableColumns=columns=>columns.map(column=>({header:column.getColDef().headerName||column.getColId(),colDef:column.getColDef()})).filter(col=>col.colDef.field||"function"==typeof col.colDef.valueGetter),toResolvableItemColumns=itemColumns=>itemColumns.map((colDef,index)=>({header:colDef.headerName||colDef.field||"item_".concat(index),colDef})).filter(col=>col.colDef.field||"function"==typeof col.colDef.valueGetter),getEnrichedItems=record=>{var ref;let items=Array.isArray(record.items)?record.items:[],billable=record.billable,invoiceableQuantity=null==billable?void 0:null===(ref=billable.finance)||void 0===ref?void 0:ref.invoiceableQuantity;return items.map(item=>({...item,_invoiceableQuantity:invoiceableQuantity}))},buildJobsCsv=(columns,records,options)=>{var ref;let itemMode=null!==(ref=null==options?void 0:options.itemMode)&&void 0!==ref?ref:"none",jobCols=toResolvableColumns(columns),itemCols="none"===itemMode?[]:toResolvableItemColumns((null==options?void 0:options.itemColumns)||[]),fields=[...jobCols.map(col=>col.header),...itemCols.map(col=>col.header)],emptyJobCells=jobCols.map(()=>""),emptyItemCells=itemCols.map(()=>""),data=[];for(let record of records){let jobCells=jobCols.map(col=>resolveCellValue(col.colDef,record));if("none"===itemMode||0===itemCols.length){data.push(jobCells);continue}let items=getEnrichedItems(record);if("concat"===itemMode){let concatCells=itemCols.map(col=>items.map(item=>resolveCellValue(col.colDef,item)).filter(cell=>""!==cell).join("; "));data.push([...jobCells,...concatCells]);continue}if(0===items.length){data.push([...jobCells,...emptyItemCells]);continue}items.forEach((item,index)=>{let itemCells=itemCols.map(col=>resolveCellValue(col.colDef,item)),leadingJobCells="sparse"===itemMode&&index>0?emptyJobCells:jobCells;data.push([...leadingJobCells,...itemCells])})}return papaparse_min_default().unparse({fields,data})},downloadCsv=(filename,csv)=>{let blob=new Blob(["\uFEFF",csv],{type:"text/csv;charset=utf-8;"}),url=URL.createObjectURL(blob),link=document.createElement("a");link.href=url,link.download=filename,document.body.appendChild(link),link.click(),document.body.removeChild(link),URL.revokeObjectURL(url)},exportJobsToCsv=(columns,records,filename,options)=>{let csv=buildJobsCsv(columns,records,options);downloadCsv(filename,csv)};var theme=__webpack_require__(44542);let JOB_COLOR=theme.cx.l,ITEM_COLOR=theme.cx.accentOrange,Segment=param=>{let{color,text}=param;return(0,jsx_runtime.jsx)(Box.Z,{sx:{flex:1,minWidth:0,height:22,borderRadius:.75,bgcolor:"job"===color?JOB_COLOR:ITEM_COLOR,display:"flex",alignItems:"center",justifyContent:"center",px:.5},children:(0,jsx_runtime.jsx)(Typography.Z,{noWrap:!0,sx:{color:"common.white",fontWeight:600,fontSize:"0.65rem",lineHeight:1},children:text})})},SchematicCell=param=>{let{cell}=param;if(!cell.color)return(0,jsx_runtime.jsx)(Box.Z,{sx:{flex:1,height:22,borderRadius:.75,border:"1px dashed",borderColor:"text.disabled"}});let segments=cell.segments&&cell.segments.length>0?cell.segments:[""];return segments.length>1?(0,jsx_runtime.jsx)(Box.Z,{sx:{flex:1,height:22,display:"flex",gap:.5},children:segments.map((text,i)=>(0,jsx_runtime.jsx)(Segment,{color:cell.color,text:text},i))}):(0,jsx_runtime.jsx)(Segment,{color:cell.color,text:segments[0]})},SchematicRow=param=>{let{jobCells,itemCells}=param;return(0,jsx_runtime.jsxs)(Box.Z,{sx:{display:"flex",gap:2},children:[(0,jsx_runtime.jsx)(Box.Z,{sx:{flex:2,display:"flex",gap:.75},children:jobCells.map((cell,i)=>(0,jsx_runtime.jsx)(SchematicCell,{cell:cell},"j".concat(i)))}),itemCells.length>0&&(0,jsx_runtime.jsx)(Box.Z,{sx:{flex:2,display:"flex",gap:.75},children:itemCells.map((cell,i)=>(0,jsx_runtime.jsx)(SchematicCell,{cell:cell},"i".concat(i)))})]})},HeaderRow=param=>{let{jobHeads,itemHeads}=param,label=(text,key)=>(0,jsx_runtime.jsx)(Typography.Z,{variant:"caption",noWrap:!0,sx:{flex:1,fontWeight:700,color:"text.secondary",textTransform:"uppercase",letterSpacing:.3},children:text},key);return(0,jsx_runtime.jsxs)(Box.Z,{sx:{display:"flex",gap:2},children:[(0,jsx_runtime.jsx)(Box.Z,{sx:{flex:2,display:"flex",gap:.75},children:jobHeads.map((h,i)=>label(h,"jh".concat(i)))}),itemHeads.length>0&&(0,jsx_runtime.jsx)(Box.Z,{sx:{flex:2,display:"flex",gap:.75},children:itemHeads.map((h,i)=>label(h,"ih".concat(i)))})]})},jobCells=(id,date)=>[{color:"job",segments:[id]},{color:"job",segments:[date]}],blankJobCells=()=>[{},{}],itemCells=(name,qty)=>[{color:"item",segments:[name]}
1,{color:"item",segments:[qty]}],getRows=(mode,items)=>{let[itemA,itemB,itemC]=items,job1=jobCells("#1001","01/07"),job2=jobCells("#1002","03/07");switch(mode){case"none":return[{jobCells:job1,itemCells:[]},{jobCells:job2,itemCells:[]}];case"full":return[{jobCells:job1,itemCells:itemCells(itemA,"10")},{jobCells:job1,itemCells:itemCells(itemB,"4")},{jobCells:job2,itemCells:itemCells(itemC,"6")}];case"sparse":return[{jobCells:job1,itemCells:itemCells(itemA,"10")},{jobCells:blankJobCells(),itemCells:itemCells(itemB,"4")},{jobCells:job2,itemCells:itemCells(itemC,"6")}];case"concat":return[{jobCells:job1,itemCells:[{color:"item",segments:[itemA,itemB]},{color:"item",segments:["10","4"]}]},{jobCells:job2,itemCells:[{color:"item",segments:[itemC]},{color:"item",segments:["6"]}]}];default:return[]}},ItemExportPreview=param=>{let{mode}=param,{t}=(0,es.$G)(),sampleItems=[t("jobs.export.items.previewSampleItem1"),t("jobs.export.items.previewSampleItem2"),t("jobs.export.items.previewSampleItem3")],rows=getRows(mode,sampleItems),jobHeads=[t("jobs.export.items.previewColJobId"),t("jobs.export.items.previewColJobDate")],itemHeads="none"!==mode?[t("jobs.export.items.previewColItemName"),t("jobs.export.items.previewColItemQty")]:[];return(0,jsx_runtime.jsxs)(Box.Z,{sx:{p:2,borderRadius:1,bgcolor:"action.hover"},children:[(0,jsx_runtime.jsx)(Typography.Z,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:1.5},children:t("jobs.export.items.previewLabel")}),(0,jsx_runtime.jsxs)(Stack.Z,{spacing:.75,children:[(0,jsx_runtime.jsx)(HeaderRow,{jobHeads:jobHeads,itemHeads:itemHeads}),(0,jsx_runtime.jsx)(Box.Z,{sx:{height:"1px",bgcolor:"divider",my:.25}}),rows.map((row,i)=>(0,jsx_runtime.jsx)(SchematicRow,{jobCells:row.jobCells,itemCells:row.itemCells},i))]}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"text.secondary",sx:{mt:2},children:t("jobs.export.items.description.".concat(mode))})]})},DEFAULT_EXPORT_SETTINGS={preset:"30",customDate:null,itemMode:"full"},modalStyle={...modals_Modal.pl,width:540,maxWidth:"calc(100vw - 32px)",maxHeight:"90vh",p:0,overflow:"hidden",display:"flex",flexDirection:"column"},presetOptions=[{value:"7",labelKey:"jobs.export.preset7"},{value:"30",labelKey:"jobs.export.preset30"},{value:"90",labelKey:"jobs.export.preset90"},{value:"365",labelKey:"jobs.export.preset365"},{value:"custom",labelKey:"jobs.export.presetCustom"}],itemModeOptions=[{value:"full",labelKey:"jobs.export.items.modeFull"},{value:"sparse",labelKey:"jobs.export.items.modeSparse"},{value:"concat",labelKey:"jobs.export.items.modeConcat"},{value:"none",labelKey:"jobs.export.items.modeNone"}],JobsExportModal=param=>{let{open,onClose,getBaseFilter,getColumns,itemColumns}=param,{t}=(0,es.$G)(),{state,startExport,cancelExport,resetExport,getRecords}=useJobsCsvExport(),[settings,setSettings]=(0,hooks._)("jobsExportSettings",DEFAULT_EXPORT_SETTINGS),{preset,itemMode}=settings,customDate=(0,react.useMemo)(()=>settings.customDate?dayjs_min_default()(settings.customDate):dayjs_min_default()().subtract(30,"day"),[settings.customDate]),setPreset=value=>setSettings(prev=>({...prev,preset:value})),setItemMode=value=>setSettings(prev=>({...prev,itemMode:value})),setCustomDate=value=>setSettings(prev=>({...prev,customDate:value?value.startOf("day").toISOString():null})),startDate=(0,react.useMemo)(()=>"custom"===preset?customDate?customDate.startOf("day").toDate():null:dayjs_min_default()().subtract(Number(preset),"day").startOf("day").toDate(),[preset,customDate]),isRunning="running"===state.status,isFinished="done"===state.status||"cancelled"===state.status,isConfig="idle"===state.status,percent=null!=state.progress?Math.round(100*state.progress):null,displayPercent="done"===state.status?100:percent,remainingLabel=(0,react.useMemo)(()=>{if(!startDate||!state.oldestJobDate)return null;let oldest=dayjs_min_default()(state.oldestJobDate),target=dayjs_min_default()(startDate);return oldest.isAfter(target)?target.from(oldest,!0):null},[startDate,state.oldestJobDate]),handleStart=()=>{startExport({startDate,baseFilter:getBaseFilter()})},handleDownload=()=>{let filename="jobs-export-".concat(dayjs_min_default()().format("YYYY-MM-DD-HHmm"),".csv");exportJobsToCsv(getColumns(),getRecords(),filename,{itemMode,itemColumns})},handleClose=()=>{isRunning&&cancelExport(),resetExport(),onClose()};return(0,jsx_runtime.jsx)(Modal.Z,{open:open,onClose:handleClose,closeAfterTransition:!0,children:(0,jsx_runtime.jsxs)(modals_Modal.uE,{open:open,sx:modalStyle,children:[(0,jsx_runtime.jsxs)(Stack.Z,{direction:"row",alignItems:"center",spacing:1.5,sx:{px:3,pt:3,pb:1,flexShrink:0},children:[(0,jsx_runtime.jsx)(FileDownloadOutlined.Z,{color:"action"}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"h6",component:"h2",color:"text.primary",sx:{fontWeight:600},children:t("jobs.export.title")})]}),(0,jsx_runtime.jsxs)(Box.Z,{sx:{px:3,pb:2,flex:1,minHeight:0,overflowY:"auto"},children:[isConfig&&(0,jsx_runtime.jsxs)(Box.Z,{children:[(0,jsx_runtime.jsx)(Typography.Z,{variant:"subtitle2",color:"text.primary",sx:{mb:.5},children:t("jobs.export.howFarBack")}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:t("jobs.export.howFarBackHint")}),(0,jsx_runtime.jsx)(ToggleButtonGroup.Z,{value:preset,exclusive:!0,size:"small",color:"primary",fullWidth:!0,onChange:(_e,value)=>value&&setPreset(value),sx:{flexWrap:"wrap",gap:1,"& .MuiToggleButton-root":{borderRadius:1}},children:presetOptions.map(option=>(0,jsx_runtime.jsx)(ToggleButton.Z,{value:option.value,children:t(option.labelKey)},option.value))}),"custom"===preset&&(0,jsx_runtime.jsx)(Box.Z,{sx:{mt:2.5},children:(0,jsx_runtime.jsx)(LocalizationProvider._C,{dateAdapter:AdapterDayjs.y,children:(0,jsx_runtime.jsx)(DatePicker.M,{label:t("jobs.export.startDate"),value:customDate,maxDate:dayjs_min_default()(),onChange:value=>setCustomDate(value),slotProps:{textField:{size:"small",fullWidth:!0}}})})}),startDate&&(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"text.secondary",sx:{mt:2},children:t("jobs.export.rangeSummary",{date:(0,aggrid_AggridComponents.p6)(startDate)})}),(0,jsx_runtime.jsx)(Divider.Z,{sx:{my:2.5}}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"subtitle2",color:"text.primary",sx:{mb:.5},children:t("jobs.export.items.title")}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:t("jobs.export.items.hint")}),(0,jsx_runtime.jsx)(ToggleButtonGroup.Z,{value:itemMode,exclusive:!0,size:"small",color:"primary",fullWidth:!0,onChange:(_e,value)=>value&&setItemMode(value),sx:{flexWrap:"wrap",gap:1,"& .MuiToggleButton-root":{borderRadius:1}},children:itemModeOptions.map(option=>(0,jsx_runtime.jsx)(ToggleButton.Z,{value:option.value,children:t(option.labelKey)},option.value))}),(0,jsx_runtime.jsx)(Box.Z,{sx:{mt:2},children:(0,jsx_runtime.jsx)(ItemExportPreview,{mode:itemMode})})]}),(isRunning||isFinished)&&(0,jsx_runtime.jsxs)(Box.Z,{sx:{p:2.5,borderRadius:1,bgcolor:"action.hover"},children:[(0,jsx_runtime.jsxs)(Stack.Z,{direction:"row",alignItems:"baseline",justifyContent:"space-between",sx:{mb:1},children:[(0,jsx_runtime.jsx)(Typography.Z,{variant:"subtitle2",color:"text.primary",children:isRunning?t("jobs.export.exporting"):t("jobs.export.summaryTitle")}),null!=displayPercent&&(0,jsx_runtime.jsxs)(Typography.Z,{variant:"h6",color:"text.primary",sx:{fontWeight:600,lineHeight:1},children:[displayPercent,"%"]})]}),(0,jsx_runtime.jsx)(LinearProgress.Z,{variant:null!=displayPercent?"determinate":"indeterminate",value:null!=displayPercent?displayPercent:void 0,color:"secondary",sx:{height:8,borderRadius:4}}),(0,jsx_runtime.jsxs)(Stack.Z,{direction:"row",alignItems:"center",justifyContent:"space-between",sx:{mt:1.5},children:[(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"text.secondary",children:state.oldestJobDate?t("jobs.export.progressBackTo",{date:(0,aggrid_AggridComponents.p6)(state.oldestJobDate)}):t("jobs.export.starting")}),(0,jsx_runtime.jsx)(Chip.Z,{size:"small",label:t("jobs.export.recordCount",{count:state.fetchedCount})})]}),remainingLabel&&isRunning&&(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"text.secondary",sx:{mt:.5},children:t("jobs.export.remaining",{duration:remainingLabel})}),"cancelled"===state.status&&(0,jsx_runtime.jsxs)(Stack.Z,{direction:"row",spacing:1,alignItems:"center",sx:{mt:1.5},children:[(0,jsx_runtime.jsx)(ErrorOutline.Z,{fontSize:"small",color:"warning"}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"warning.main",children:t("jobs.export.cancelledNotice")})]}),"done"===state.status&&(0,jsx_runtime.jsxs)(Stack.Z,{direction:"row",spacing:1,alignItems:"center",sx:{mt:1.5},children:[(0,jsx_runtime.jsx)(CheckCircleOutline.Z,{fontSize:"small",color:"success"}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"success.main",children:t("jobs.export.done")})]})]}),"error"===state.status&&(0,jsx_runtime.jsxs)(Stack.Z,{direction:"row",spacing:1,alignItems:"center",children:[(0,jsx_runtime.jsx)(ErrorOutline.Z,{fontSize:"small",color:"error"}),(0,jsx_runtime.jsx)(Typography.Z,{variant:"body2",color:"error.main",children:t("jobs.export.error")})]})]}),(0,jsx_runtime.jsx)(Divider.Z,{sx:{flexShrink:0}}),(0,jsx_runtime.jsxs)(Stack.Z,{direction:"row",justifyContent:"flex-end",spacing:1,sx:{px:3,py:2,flexShrink:0},children:[isConfig&&(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(Button.Z,{onClick:handleClose,color:"inherit",children:t("common.cancel")}),(0,jsx_runtime.jsx)(Button.Z,{onClick:handleStart,variant:"contained",startIcon:(0,jsx_runtime.jsx)(Download.Z,{}),disabled:!startDate,children:t("jobs.export.start")})]}),isRunning&&(0,jsx_runtime.jsx)(Button.Z,{onClick:cancelExport,variant:"outlined",color:"warning",children:t("jobs.export.cancelExport")}),isFinished&&(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(Button.Z,{onClick:handleClose,color:"inherit",children:t("common.close")}),(0,jsx_runtime.jsx)(Button.Z,{onClick:handleDownload,variant:"contained",startIcon:(0,jsx_runtime.jsx)(Download.Z,{}),disabled:0===state.fetchedCount,children:t("jobs.export.download")})]}),"error"===state.status&&(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(Button.Z,{onClick:handleClose,color:"inherit",children:t("common.close")}),state.fetchedCount>0&&(0,jsx_runtime.jsx)(Button.Z,{onClick:handleDownload,variant:"contained",startIcon:(0,jsx_runtime.jsx)(Download.Z,{}),children:t("jobs.export.download")})]})]})]})})};var utils=__webpack_require__(73884),crossTenantSubscriptions=__webpack_require__(37048),subscriptions=__webpack_require__(63812),hepler=__webpack_require__(92798),site_interface=__webpack_require__(84572),helper=__webpack_require__(96981),userPrefernces_interfaces_interface=__webpack_require__(24001),SiteContext=__webpack_require__(64984),useCustomFieldTemplates=__webpack_require__(71181),useCurrency=__webpack_require__(49348),auth=__webpack_require__(41238),graphqlErrors=__webpack_require__(19570),nullSafety=__webpack_require__(10219),graphql_subscriptions=__webpack_require__(96230);let JobListingGrid=param=>{let{additionalFilters,hideFooterButton=!1,customColumnDefs,hideSidebar=!1,useInModal=!1}=param,client=(0,useApolloClient.x)(),{pushAlert}=(0,SnackAlertContext.I)(),{setShowActionLoader}=(0,react.useContext)(ActionLoaderContext.B),[isConfirmationModalOpen,setIsConfirmationModalOpen]=(0,react.useState)(!1),[isExportModalOpen,setIsExportModalOpen]=(0,react.useState)(!1),[hiddenCols,setHiddenCols]=(0,react.useState)([]),[selectedRowToDelete,setSelectedRowToDelete]=(0,react.useState)(null),hiddenSubgridColsRef=(0,react.useRef)([]),gridRef=(0,react.useRef)(null),sharedTenantMapRef=(0,react.useRef)(new Map),{t}=(0,es.$G)(),currencySymbol=(0,useCurrency.m)(),siteContext=(0,react.useContext)(SiteContext.ZP),{theme:agGridTheme,gridKey,isReady,isLoading}=(0,lib_agGridTheme.$i)(),[gridReady,setGridReady]=(0,react.useState)(!1),jobItemListingColumnDefs=(0,react.useMemo)(()=>(0,dataDefs.oP)(currencySymbol),[currencySymbol]),{customFieldTemplates}=(0,useCustomFieldTemplates.T)(),columnDefs=(0,react.useMemo)(()=>{let baseCols=(customColumnDefs||(0,dataDefs.B8)(currencySymbol)).filter(col=>
1"multilegGroupingSerial_tier"!==col.colId||siteContext&&(0,auth.dv)(siteContext,site_interface.Uc.FULL_JOB_MANAGEMENT)).map(col=>"sharedTenantId"===col.colId?{...col,filterParams:{...col.filterParams,values(params){params.success(Array.from(sharedTenantMapRef.current.keys()).sort())},valueFormatter:params=>sharedTenantMapRef.current.get(params.value)||params.value}}:col);if(customColumnDefs)return baseCols;let customFieldCols=(0,dataDefs.zC)(customFieldTemplates.filter(template=>!template.systemDefault)).map(col=>({...col,filter:!1,sortable:!1}));return[...baseCols,...customFieldCols]},[siteContext,customColumnDefs,customFieldTemplates,currencySymbol]);(0,react.useEffect)(()=>{var ref;(null===(ref=gridRef.current)||void 0===ref?void 0:ref.api)&&customFieldTemplates.length>0&&!customColumnDefs&&(async()=>{var ref,ref1;let[error,result]=await (0,errorHandling.sh)(()=>(0,helper._)(client,userPrefernces_interfaces_interface.F.JobListingGrid));if(error){console.error("Failed to re-apply user preferences",error);return}(null==result?void 0:null===(ref=result.preference)||void 0===ref?void 0:ref.columnState)&&(null===(ref1=gridRef.current)||void 0===ref1||ref1.api.applyColumnState({state:result.preference.columnState,applyOrder:!0}))})()},[customFieldTemplates,customColumnDefs,client]);let handleDeleteConfirmation=async()=>{selectedRowToDelete&&await onDeleteClick(selectedRowToDelete),setIsConfirmationModalOpen(!1),setSelectedRowToDelete(null)},[deleteJob]=(0,useMutation.D)(mutations.i_),[bulkUpdateJobs]=(0,useMutation.D)(mutations.bg),{data:subscriptionData}=(0,useSubscription.m)(subscriptions.A),{data:crossTenantAllocationEvents}=(0,useSubscription.m)(crossTenantSubscriptions.X),jobSubscriptionsRef=(0,react.useRef)(new Map),subscribeToJob=(0,react.useCallback)(jobId=>{if(jobSubscriptionsRef.current.has(jobId))return;let subscription=client.subscribe({query:graphql_subscriptions.L,variables:{jobId}}).subscribe({next(param){var ref;let{data}=param;if(!gridRef.current)return;let jobData=null==data?void 0:data.job;if(!jobData)return;if(null===(ref=jobData._metadata)||void 0===ref?void 0:ref.deleted){gridRef.current.api.applyServerSideTransactionAsync({route:[],remove:[{_id:jobId}]});let sub=jobSubscriptionsRef.current.get(jobId);null==sub||sub.unsubscribe(),jobSubscriptionsRef.current.delete(jobId);return}if((0,hepler.ON)(jobData)){gridRef.current.api.applyServerSideTransactionAsync({route:[],remove:[{_id:jobId}]});return}let{jobType}=jobData,formattedJob={...jobData,jobType:"string"==typeof jobType?jobType:null==jobType?void 0:jobType.name};applyFilterAwareTransaction(gridRef.current.api,jobData,formattedJob,jobId)},error:error=>console.error("Job subscription error:",error)});jobSubscriptionsRef.current.set(jobId,subscription)},[client]);(0,react.useEffect)(()=>()=>{jobSubscriptionsRef.current.forEach(sub=>sub.unsubscribe()),jobSubscriptionsRef.current.clear()},[]),(0,react.useEffect)(()=>{var ref,ref1;if((null==subscriptionData?void 0:subscriptionData.newJob)&&(null===(ref=gridRef.current)||void 0===ref?void 0:ref.api)&&gridReady){let{jobType}=subscriptionData.newJob,newJob={...subscriptionData.newJob,jobType:"string"==typeof jobType?jobType:null==jobType?void 0:jobType.name};if(newJob._id&&subscribeToJob(newJob._id),(0,hepler.ON)(subscriptionData.newJob))return;let activeFilterModel=gridRef.current.api.getFilterModel(),hasGridFilters=activeFilterModel&&Object.keys(activeFilterModel).length>0,hasAdditionalFilters=additionalFilters&&Object.keys(additionalFilters).length>0;if((hasGridFilters||hasAdditionalFilters)&&!doesRowMatchFilters(subscriptionData.newJob,activeFilterModel))return;let sortModel=null===(ref1=gridRef.current.api.getColumnState())||void 0===ref1?void 0:ref1.find(col=>null!==col.sort),addIndex=(null==sortModel?void 0:sortModel.sort)==="asc"?void 0:0;gridRef.current.api.applyServerSideTransactionAsync({route:[],add:[newJob],addIndex})}},[subscriptionData,gridReady,subscribeToJob]),(0,react.useEffect)(()=>{var ref;(null==crossTenantAllocationEvents?void 0:crossTenantAllocationEvents.crossTenantVehicleAllocationUpdated)&&(null===(ref=gridRef.current)||void 0===ref?void 0:ref.api)&&gridReady&&(nextTokenRef.current="",lastRequestRef.current="",gridRef.current.api.applyServerSideTransactionAsync({route:[]}
1))},[crossTenantAllocationEvents,gridReady]);let onViewClick=rowData=>{window.open("/jobs/detail/".concat(rowData._id),"_blank")},onEditClick=rowData=>{window.open("/jobs/".concat(rowData._id),"_blank")},onDeleteClick=async rowData=>{let existingSub=jobSubscriptionsRef.current.get(rowData._id);existingSub&&(existingSub.unsubscribe(),jobSubscriptionsRef.current.delete(rowData._id)),setShowActionLoader(!0);let[error]=await (0,errorHandling.sh)(()=>deleteJob({variables:{id:rowData._id}}));if(error)pushAlert({message:t("common.snackbar.deleteFailed",{entity:"Job"}),severity:"error"}),rowData._id&&subscribeToJob(rowData._id);else if(pushAlert({message:t("common.snackbar.deleted",{entity:"Job"}),severity:"success"}),gridRef.current){let api=gridRef.current.api;try{api.applyServerSideTransactionAsync({route:[],remove:[rowData]},result=>{result&&"Applied"===result.status||api.refreshServerSide({route:[]})})}catch(e){api.refreshServerSide({route:[]})}}setShowActionLoader(!1)},onCancelClick=async rowData=>{try{var ref,ref1;setShowActionLoader(!0),await bulkUpdateJobs({variables:{jobIds:[rowData._id],jobStatus:interfaces_interface.sY.canceled}}),pushAlert({message:t("jobs.snackbar.jobsCancelled"),severity:"success"}),null===(ref=gridRef.current)||void 0===ref||null===(ref1=ref.api)||void 0===ref1||ref1.refreshServerSide({purge:!0})}catch(error){pushAlert({message:error.message||t("jobs.snackbar.jobsCancelFailed"),severity:"error"})}finally{setShowActionLoader(!1)}},updateHiddenSubgridCols=(updated,colId)=>{var ref,ref1;hiddenSubgridColsRef.current=updated;let detailGrids=(null===(ref1=null===(ref=gridRef.current)||void 0===ref?void 0:ref.api)||void 0===ref1?void 0:ref1.detailGridInfoMap)||{};Object.entries(detailGrids).forEach(param=>{var ref,ref1;let[_key,detail]=param,colApi=null==detail?void 0:detail.columnApi,colDefs=(null==detail?void 0:null===(ref=detail.api)||void 0===ref?void 0:null===(ref1=ref.getColumnDefs)||void 0===ref1?void 0:ref1.call(ref))||[],colExists=colDefs.some(c=>(c.field||c.colId)===colId);colExists&&(null==colApi||colApi.setColumnVisible(colId,!updated.includes(colId)))})},nextTokenRef=(0,react.useRef)(""),lastRequestRef=(0,react.useRef)(""),isValidUser=(0,utils.$A)(["System Administrator","User"]),getContextMenuItems=params=>{var ref,ref1,ref2;if(!params.node||!params.node.data)return[];let jobStatus=params.node.data.jobStatus,jobInvoiceStatus=params.node.data.invoiceStatus,isSyncBackMirror=!!(null===(ref=params.node.data.assignedToTenant)||void 0===ref?void 0:ref.isSyncedBack),customItems=[];return(0,permissionAcces.Z)(siteContext,"mutation","updateJob")&&customItems.push({name:"Edit",icon:(()=>{let container=document.createElement("div"),root=(0,react_dom_client.createRoot)(container);return root.render((0,jsx_runtime.jsx)(Edit.Z,{style:{fontSize:"15px",verticalAlign:"middle"}})),container})(),action(){var ref;return onEditClick(null==params?void 0:null===(ref=params.node)||void 0===ref?void 0:ref.data)},disabled:isSyncBackMirror||jobStatus===interfaces_interface.sY.completed&&!isValidUser}),(0,permissionAcces.Z)(siteContext,"query","job")&&customItems.push({name:"View",icon:'<span class="ag-icon ag-icon-eye"></span>',action(){var ref;return onViewClick(null==params?void 0:null===(ref=params.node)||void 0===ref?void 0:ref.data)}}),(0,permissionAcces.Z)(siteContext,"mutation","deleteJob")&&customItems.push({name:"Delete",icon:'<span class="ag-icon ag-icon-cancel"></span>',action(){var ref;setSelectedRowToDelete(null==params?void 0:null===(ref=params.node)||void 0===ref?void 0:ref.data),setIsConfirmationModalOpen(!0)},disabled:isSyncBackMirror||jobStatus===interfaces_interface.sY.completed||jobStatus!==interfaces_interface.sY.idle&&jobStatus!==interfaces_interface.sY.onHold&&jobStatus!==interfaces_interface.sY.canceled}),(0,permissionAcces.Z)(siteContext,"mutation","updateJob")&&customItems.push({name:t("jobAllocation.details.cancelJob"),icon:'<span class="ag-icon ag-icon-cross"></span>',action(){var ref;return onCancelClick(null==params?void 0:null===(ref=params.node)||void 0===ref?void 0:ref.data)},disabled:isSyncBackMirror||jobStatus!==interfaces_interface.sY.idle||jobInvoiceStatus===interfaces_interface.nN.SENT||!!(null==params?void 0:null===(ref1=params.node)||void 0===ref1?void 0:null===(ref2=ref1.data)||void 0===ref2?void 0:ref2.sharing)}),(0,defaultConfig.z1)(customItems)},getServerSideDatasource=server=>({async getRows(params){let response=await server.getData(params.request);if(response.success){let tenantNamesChanged=!1;
1response.jobs.forEach(job=>{var ref,ref1;let tenantId=(null===(ref=job.assignedToTenant)||void 0===ref?void 0:ref.tenantId)||(null===(ref1=job.sharing)||void 0===ref1?void 0:ref1.parentTenantId);tenantId&&job.sharedTenantName&&!sharedTenantMapRef.current.has(tenantId)&&(sharedTenantMapRef.current.set(tenantId,job.sharedTenantName),tenantNamesChanged=!0)}),tenantNamesChanged&&gridRef.current&&gridRef.current.api.getColumnFilterInstance("sharedTenantId").then(filterInstance=>{filterInstance&&filterInstance.refreshFilterValues()});let jobs=response.jobs.map(job=>({...job,jobType:job.jobType?"string"==typeof job.jobType?job.jobType:job.jobType.name:job.jobType})),visibleJobs=jobs.filter(job=>!(0,hepler.ON)(job));jobs.forEach(job=>{job._id&&subscribeToJob(job._id)});let lastRow=-1;if(null==nextTokenRef.current){var ref;lastRow=visibleJobs.length+(0,nullSafety.Wc)(null===(ref=params.request)||void 0===ref?void 0:ref.startRow,0)}params.success({rowData:visibleJobs,rowCount:lastRow})}else params.fail()}}),extendedSideBar={...AggridComponents.P$,toolPanels:[...(0,nullSafety.Wc)(AggridComponents.P$.toolPanels,[]),{id:"item",labelDefault:"Items",labelKey:"item",iconKey:"columns",toolPanel:AggridComponents.oU,toolPanelParams:{columnDefs:jobItemListingColumnDefs,hiddenSubgridColsRef,hiddenCols,updateHiddenSubgridCols}}]},restoreGridState=async()=>{let[error,result]=await (0,errorHandling.sh)(()=>(0,helper._)(client,userPrefernces_interfaces_interface.F.JobListingGrid));if(error){console.error("Failed to restore user preferences",error);return}if((null==result?void 0:result.preference)&&gridRef.current){let{columnState,filterModel,hiddenSubgridCols,sharedTenantMap}=result.preference;if(columnState&&gridRef.current.api.applyColumnState({state:columnState,applyOrder:!0}),sharedTenantMap){Object.entries(sharedTenantMap).forEach(param=>{let[key,value]=param;sharedTenantMapRef.current.set(key,value)});let filterInstance=await gridRef.current.api.getColumnFilterInstance("sharedTenantId");filterInstance&&filterInstance.refreshFilterValues()}if(filterModel&&gridRef.current.api.setFilterModel(filterModel),hiddenSubgridCols){var ref,ref1;hiddenSubgridColsRef.current=hiddenSubgridCols,setHiddenCols(hiddenSubgridCols);let detailGrids=(null===(ref1=null===(ref=gridRef.current)||void 0===ref?void 0:ref.api)||void 0===ref1?void 0:ref1.detailGridInfoMap)||{};Object.entries(detailGrids).forEach(param=>{let[_key,detail]=param;hiddenSubgridCols.forEach(colId=>{detail.columnApi.setColumnVisible(colId,!1)})})}}},onGridReady=(0,react.useCallback)(params=>{let datasource=getServerSideDatasource({async getData(request){let{filterModel,sortModel}=request,filters=(0,aggrid_AggridComponents.eD)(filterModel),sort=(0,sortUtils.$)(sortModel,"SERIALIDENTIFIER_DESC",sortUtils.n.jobs),currentRequestKe
1y=JSON.stringify({sort,filter:filterModel});lastRequestRef.current!==currentRequestKey&&(nextTokenRef.current="",lastRequestRef.current=currentRequestKey);let mergedFilters={...filterModel&&Object.keys(filterModel).length>0?filters:{},...additionalFilters||{}},variables={limit:30,...nextTokenRef.current?{nextToken:nextTokenRef.current}:{},...Object.keys(mergedFilters).length>0?{filter:mergedFilters}:{},...sort?{sort:sort}:{}},[error,response]=await (0,errorHandling.sh)(()=>client.query({query:queries.Bj,variables,fetchPolicy:"no-cache"}));return error?(console.error("failed to load data.",error),pushAlert({message:(0,graphqlErrors.bH)(error)||t("common.fetchError"),severity:"error"}),{success:!1,jobs:[]}):(nextTokenRef.current=null==response?void 0:response.data.jobsList.nextToken,{success:!0,jobs:(null==response?void 0:response.data.jobsList.records)||[]})}});params.api.setGridOption("serverSideDatasource",datasource),restoreGridState(),setGridReady(!0)},[subscribeToJob]),resetGrid=()=>{nextTokenRef.current="",lastRequestRef.current="",gridRef.current&&(gridRef.current.api.ensureIndexVisible(0,"top"),gridRef.current.api.refreshServerSide({purge:!0}))},saveGridState=async action=>{if(!gridRef.current)return;setShowActionLoader(!0),"reset"===action&&(hiddenSubgridColsRef.current=[],setHiddenCols([])),"reset"===action&&gridRef.current&&(gridRef.current.api.resetColumnState(),gridRef.current.api.setFilterModel(null));let columnState=gridRef.current.api.getColumnState(),filterModel=gridRef.current.api.getFilterModel(),hiddenSubgridCols=hiddenSubgridColsRef.current,sharedTenantMap=Object.fromEntries(sharedTenantMapRef.current),[error]=await (0,errorHandling.sh)(()=>(0,helper.Y)(client,{name:userPrefernces_interfaces_interface.F.JobListingGrid,preference:{columnState,filterModel,hiddenSubgridCols,sharedTenantMap}}));error?pushAlert({message:t("UserPreferences save failed"),severity:"error"}):pushAlert({message:t("UserPreferences saved successfully"),severity:"success"}),setShowActionLoader(!1)},handleCellClick=params=>{params.node&&params.node.data&&params.event.ctrlKey&&onViewClick(params.node.data)},detailCellRendererParams=(0,react.useMemo)(()=>({detailGridOptions:{columnDefs:jobItemListingColumnDefs,defaultColDef:{resizable:!0,sortable:!0,minWidth:100,flex:1},onCellClicked:handleCellClick,onGridReady(params){hiddenSubgridColsRef.current.forEach(colId=>{params.api.setColumnsVisible([colId],!1)})}},getDetailRowData(params){var ref,ref1;let invoiceableQuantity=null===(ref=params.data.billable)||void 0===ref?void 0:null===(ref1=ref.finance)||void 0===ref1?void 0:ref1.invoiceableQuantity,items=(params.data.items||[]).map(item=>({...item,_invoiceableQuantity:invoiceableQuantity}));params.successCallback(items)}}),[handleCellClick,jobItemListingColumnDefs]);return isReady?(0,jsx_runtime.jsxs)(Box.Z,{component:"main",sx:{width:"100%",height:"100%",position:"relative"},children:[isLoading&&(0,jsx_runtime.jsx)(Box.Z,{sx:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:theme=>"dark"===theme.palette.mode?"rgba(0, 38, 58, 0.7)":"rgba(255, 255, 255, 0.7)",zIndex:9999},children:(0,jsx_runtime.jsx)(CircularProgress.Z,{color:"primary"})}),(0,jsx_runtime.jsxs)(Box.Z,{sx:{width:1,height:useInModal?"100%":"calc(100vh - 120px)"},children:[(0,jsx_runtime.jsx)(Box.Z,{sx:{width:1,height:"100%",opacity:isLoading?0:1,transition:"opacity 0.2s"},children:(0,jsx_runtime.jsx)(index_esm.s,{ref:gridRef,theme:agGridTheme,columnDefs:columnDefs,defaultColDef:dataDefs.nv,gridOptions:{onSortChanged:resetGrid,onFilterChanged:resetGrid}
1,rowModelType:"serverSide",cacheBlockSize:30,onGridReady:onGridReady,getContextMenuItems:getContextMenuItems,detailCellRendererParams:detailCellRendererParams,onCellClicked:handleCellClick,detailRowHeight:200,sideBar:!hideSidebar&&extendedSideBar,masterDetail:!0,getRowId:params=>params.data._id},gridKey)}),!hideFooterButton&&(0,jsx_runtime.jsxs)(Box.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",backgroundColor:"background.paper"},children:[(0,jsx_runtime.jsx)(Button.Z,{variant:"outlined",startIcon:(0,jsx_runtime.jsx)(FileDownload.Z,{}),sx:{ml:2,mb:.5},onClick:()=>setIsExportModalOpen(!0),children:t("jobs.export.button")}),(0,jsx_runtime.jsx)(FooterButton.Z,{onClick:saveGridState})]})]}),isConfirmationModalOpen&&(0,jsx_runtime.jsx)(ConfirmButton.Z,{directOpen:!0,title:t("common.confirmDelete"),text:t("jobs.details.deleteText",{serial:null==selectedRowToDelete?void 0:selectedRowToDelete.serialIdentifier}),warningText:t("common.deleteWarning"),confirmLabel:t("common.delete"),onCancelCallback:()=>setIsConfirmationModalOpen(!1),onConfirmCallback:handleDeleteConfirmation,confirmColor:"error"}
1),isExportModalOpen&&(0,jsx_runtime.jsx)(JobsExportModal,{open:isExportModalOpen,onClose:()=>setIsExportModalOpen(!1),getBaseFilter(){var ref,ref1;let filterModel=null!==(ref1=null===(ref=gridRef.current)||void 0===ref?void 0:ref.api.getFilterModel())&&void 0!==ref1?ref1:null,filters=(0,aggrid_AggridComponents.eD)(filterModel);return{...filters,...additionalFilters||{}}},getColumns(){var ref;return(null===(ref=gridRef.current)||void 0===ref?void 0:ref.api.getAllDisplayedColumns())||[]},itemColumns:jobItemListingColumnDefs})]}):null},FeatureGatedJobListingGrid=()=>(0,jsx_runtime.jsx)(FeatureWrapper.$,{requiredFeatures:[site_interface.Uc.JOB_FULFILLMENT],children:(0,jsx_runtime.jsx)(JobListingGrid,{})});var listing=FeatureGatedJobListingGrid}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.