{"version":3,"sources":["../frontend-common/utils/verification.js","../frontend-common/utils/interceptor.js","../frontend-common/libs/network/network.js","../frontend-common/models/UI.js","../frontend-common/libs/network/emiiter.js","../frontend-common/models/Collection.js","../frontend-common/models/common/DataAlign.js","../frontend-common/models/Storage/Storage.js","../frontend-common/models/SharedMemory.js","models/Auth/events/login-success.domain-event.js","models/Auth/index.js","models/SystemSetting.js","models/Invitation/InvitationCouponList.js","models/Auth/events/login-signin.domain-event.js","models/Root.js","models/index.js","../frontend-common/utils/create-use-mst.js","../frontend-common/models/FinanceApplication/util.js","../frontend-common/models/Fee/Fee.js","../frontend-common/utils/describe-helper.js","../frontend-common/utils/index.js","../frontend-common/utils/slots.js","../frontend-common/components/Grids/index.js","../frontend-common/utils/helper/superstruct-helper.js","widgets/Icon/index.js","../frontend-common/hooks/useWatch.js","../frontend-common/utils/createAjaxDescribe.js","../frontend-common/hooks/useStaticRef.js","components/Button/index.js","../frontend-common/utils/flatten.js","../frontend-common/utils/assignment.js","../frontend-common/components/Spinner/index.js","../frontend-common/hooks/useDestroyRef.js","env.js","widgets/PresetForm/preset.js","../frontend-common/hooks/official-hack.js","../frontend-common/models/Car.js","../frontend-common/models/FinanceApplication/Location.js","../frontend-common/components/Toast/index.js","controller/ToastController.js","controller/async.js","../frontend-common/utils/helper/form-control-helper.js","../frontend-common/components/Modal/index.js","../frontend-common/controller/UIController.js","../frontend-common/utils/dom/closest.js","../frontend-common/components/Popper/index.js","components/Checkbox/Checkbox.js","components/Checkbox/CheckboxGroup.js","components/Checkbox/index.js","models/Car.js","../frontend-common/hooks/useMutationObserver.js","../frontend-common/utils/vue-style.js","../frontend-common/components/PinBox/index.js","../frontend-common/hooks/useShareRef.js","../frontend-common/utils/calculate.js","../frontend-common/models/Mdsp.js","../frontend-common/models/Fee/FormPriceList.js","services/coupon/index.js","services/api.js","widgets/PresetForm/index.js","../frontend-common/utils/format.js","../frontend-common/models/FinanceApplication/TradeIn.js","../frontend-common/models/FinanceApplication/ProtectionPlan.js","../frontend-common/models/FinanceApplication/EmploymentHistory.js","../frontend-common/models/FinanceApplication/ResidentionInformation.js","../frontend-common/models/FinanceApplication/Buyer.js","../frontend-common/models/FinanceApplication/Delivery.js","../frontend-common/models/FinanceApplication/Hold.js","../frontend-common/models/utils/AssignmentHelper.js","../frontend-common/models/FinanceApplication/LoanScheme.js","../frontend-common/models/FinanceApplication/LicenseInfo.js","../frontend-common/models/FinanceApplication/Insurance.js","../frontend-common/models/FinanceApplication/FinanceApplicationFormFeeTemplate.js","../frontend-common/models/FinanceApplication/index.js","../frontend-common/models/FinanceApplication/Person.js","models/Coupon/Coupon.js","../frontend-common/models/FinanceApplication/ExtendedWarrantyFees.js","../frontend-common/utils/helper/stream-helper.js","../frontend-common/utils/createStatusDataDescribe.js","../frontend-common/hooks/useExportApiRef.js","../frontend-common/models/FinanceApplication/Settlement.js","../frontend-common/models/Coupon/Coupon.js","../frontend-common/utils/format-helper/price.js","models/Fee/Fee.js","../frontend-common/utils/dom/is.js","../frontend-common/models/CouponCode.js","../frontend-common/models/Fee/PriceList.js","widgets/Form/date-helper.js","services/order/index.js","widgets/Form/FormItem.js","../frontend-common/models/CarOrder.js","components/Radio/index.js","widgets/Login/index.js","widgets/LoginActivity/index.js","controller/loginController.js","widgets/Login/RegisterPanel.js","services/invitation/index.js","widgets/GoogleLoginButton/index.js","widgets/Login/LoginPanel.js","../frontend-common/utils/createAjaxPagingDescribe.js","../frontend-common/utils/storage.js","components/Ripple/index.js","widgets/Form/TimeList/index.js","widgets/Form/FormItemPreset.js","widgets/Nav/index.js","widgets/Header/index.js","widgets/MoneyField/index.js","../frontend-common/hooks/useStateDescribe.js","../frontend-common/hooks/useAjaxStateDescribe.js","app/translator/index.js","controller/emailController.js","../frontend-common/models/CarPackage/index.js","models/CarOrder.js","app/translator/order.js","models/CouponCode.js","../frontend-common/hooks/useRect.js","services/vehicle/index.js","components/Counter/index.js","widgets/LogoutButton/index.js","controller/invitationController.js","static/logo.svg","libs/init-dayjs.js","static/google.png","static/sent.png","static/logo2.png","static/omvic.jpg","../frontend-common/utils/locationHref.js","../frontend-common/utils/web-helper.js","services/network-init.js","../frontend-common/hooks/useViewport.js","widgets/Footer/index.js","services/config.js","../frontend-common/models/Announcement/Announcement.js","../frontend-common/utils/similar.js","services/announcement/index.js","models/Announcement/Announcement.js","../frontend-common/models/Announcement/AnnouncementList.js","models/Announcement/AnnouncementList.js","widgets/Announcement/index.js","widgets/Announcement/global.js","App.js","index.js"],"names":["emailReg","transformToFormValue","val","undefined","Email","defineFormValidate","value","test","Name","size","string","FirstName","LastName","Phone","Password","isNotEmpty","DatePicker","obj","year","get","month","day","hour","minute","Address","City","CitySelect","Province","PostalCode","Terms","Boolean","formNumber","PositiveNumber","indexOf","StringOrNumber","NotLessThanZero","SelectValidate","runInterceptor","interceptor","cb","initParams","args","isBreak","options","NO","baseArgCount","length","allowMultipleNext","_break","reduce","preCallback","fn","_fn","fnParamsCount","_resolveVal","_next","res","_isBreak","_args","concat","unshift","apply","globalParams","aliasList","axiosInstance","axios","create","defaults","headers","post","httpSheet","noop","omit","list","result","Object","assign","arr","eachAll","startRight","i","prototype","hasOwnProperty","call","each","key","tryFn","isArray","Array","getGlobalParamsSnapshot","isPost","req","params","isArr","data","dataFirst","getErrorMessage","message","network","url","userConfig","config","Log","debug","console","log","axiosParams","keys","method","toLowerCase","effectConfig","interceptorIndicator","interceptors","request","connectRequest","__interceptor_indicator__","internalRequestInterceptor","next","prefixFirstMatch","sheet","reg","RegExp","match","replace","transformUrl","pr","mutationParams","paramsSnapshot","FormData","formData","append","cloneFormData","forEach","File","Blob","paramsFormat","JSON","stringify","then","e","Promise","resolve","internalResponseInterceptor","isError","reject","onBusinessError","checkValidate","retry","retryInterval","pickData","successHandler","catchError","_retry","setTimeout","errorMsg","_$$hasBeenConsumed$$_","errorHandler","runResponseInterceptor","response","Error","onError","map","exit","slice","arguments","_localId","httpId","checkBeforeApply","this","error","setBaseParams","addAlias","push","parse","MatchMedia","types","model","sm","md","lg","xl","UiStore","width","height","matchMedia","optional","views","self","actions","updateFromViewport","Emiiter","emitter","mitt","on","off","emit","Collection","array","late","Car","isCollected","car","find","t","uuid","hasIt","add","exclude","index","findIndex","item","splice","getRandomStr","Math","random","toString","outSideeffect","buildOutSideEventObservable","WIN_RANDOM_STR","emiiter","publishData","vm","eventName","uid","__dataalign_uid__","__dataalign_key__","payload","__dataalign_debug__","localStorage","setItem","window","addEventListener","newValue","assignPro","_from_event_","DataAlign","beforeDestroy","$destroyChannels","runInAction","$registeredChannels","name","__dataalign_handler__","targetUid","signature","_once_signature_","$assign","toJSON","__dataalign_request_handler__","__dataalign_subscription__","subscribe","$tryDataAlign","unsubscribe","compose","afterCreate","Storage","useSessionStorage","frozen","_sync","getLocalStorage","_modify","doing","modifyStorage","json","del","set","SharedMemory","remove","LoginSuccessEvent","defineDomainEvent","loginThenGetUser","info","loginSuccess","email","password","type","LoginParams","auth","user","registerThenLogin","RegisterParams","register","role","address","firstname","lastname","imgurl","phone","fullWithGoogle","googleProfileObj","googleId","givenName","familyName","imageUrl","User","Person","Location","id","code","Auth","token","tokenType","maybe","isHttpLoading","Authorization","tokenStr","needReplenish","_resetLoading","_doLoginAction","action","setUser","err","_checkReplenish","checkReplenish","_publishLoginEvent","tryDispatchDomainEvent","rootStore","setAuth","access_token","token_type","storage","pick","getCurrentUser","getCurrentUserInfo","getUser","EMAIL","birth","getUserInfo","putUser","propertyNames","putUserInfo","tokenConfig","logout","login","loginWithGoogle","SystemSettingServer","createAjaxDescribeMixins","AjaxDescribe","createAjaxDescribe","useAuth","state","updateFromAjaxJson","UnknownArray","Deposit","money","reserveTime","extendPhoneNumber","phoneNumber","String","connector","bracket","tel","SystemSetting","AjaxDescribeHelper","sellCustomPhoneNumber","interestrate","deposit","coverage","gap","protection","sort","a","b","CouponRecord","coupon","Coupon","inviter_name","InvitationCouponListServer","generateDescribeModule","couponServer","fetchMyRewardsCoupon","concurrent","onDataUpdate","InvitationCouponList","record","getMostFavorableCoupon","getMostFavorableRecord","LoginSigninEvent","resolveModal","createSingletonPattern","loadInvitationController","loadChannelController","loadLoginController","EventBus","globalDispatch","event","dispatch","defaultObject","RootStore","ui","UI","collection","sessionStorage","sharedMemory","entryQuery","orderList","CarOrderList","invitationCouponList","feeList","FeeList","systemSetting","init","_initBusinessEventHub","_initDomainEventHub","URLParse","location","href","query","safeAssign","ignore401","all","load","toPromise","channelController","getTicket","invitationController","fetchTicketInfo","loginController","show","autoJump","businessEventHub","eventBus","getEnv","DomainEvent","bindTicket","CouponArrivalRemind","alert","onChange","onClick","floatHead","dialogClass","runIt","rootStoreContext","createContext","RootStoreProvider","children","Provider","initRootStore","getContext","useRootStore","mapStateToProps","store","useContext","parseExp","acc","formInputValue","maybeNull","union","number","createValidate","getSchema","Schema","validate","schema","validateResult","FEE_TYPE","EXTRA","DEDUCTION","PRE","DISCOUNT","FeeType","literal","preTaxTypeList","originalCostTypeList","isBeforeTax","includes","isOriginalCost","FEE_TAXTYPE","DEFAULT","TAXES","HST","PST","GST","TaxType","FEE_VALUETYPE","VALUE","RATIO","Type","FEE_BELONGTYPE","FINANCE","FeeBelongType","FEE_CATEGORYTYPE","OTHER","VEHICLE","VEHICLE_EXTRA_SERVICE","VEHICLE_TRADEIN","CategoryType","getFeesValue","baseValue","reverse","fee","Fee","feeType","belongType","taxType","categoryType","applyTaxType","canFinance","ratio","desc","detail","isTaxes","isDeductionFee","vector","isPreFee","defrac","parseFloat","valueStr","setValue","toValue","toValueStr","filter","globalFees","hookFactory","hook","field","resolveParams","onUpdate","syncKey","ajaxDescribe","bind","getProxy","_observables_","functionType","custom","fromSnapshot","toSnapshot","isTargetType","Function","getValidationMessage","loading","inited","initedAsync","timeStamp","$treenode","getSnapshot","AjaxPagingDescribe","pageNo","maxPage","reload","pager","nextPage","createStatusDataDescribe","createStatusDataDescribeForMST","createAjaxDescribeForMST","createAjaxPagingDescribe","createAjaxPagingDescribeForMST","actionKey","lazyActionKey","preArgs","_describeEmitter","stream","timeSpan","Date","now","isEqual","of","aEventPayload","packPromise","getLastUpdatedStream","from","_onUpdate","getCreateAjaxDescribeMixinsMethods","EMPTY","generateDescribeType","createDescribe","subStreamFactory","pagingConfig","isPagingDescribe","snapshotProcessor","totalCount","afterAttach","_pagingConfig","parent","getParent","_subStreamFactory","_config","configObj","needData","_status","setState","changState","postProcessor","describeTypeArgs","class2type","input","n","factor","pow","round","withFn","fnList","rest","registerFn","loopWith","ori","mergeFn","fn1","fn2","getVal","clear","msg","navigatorBack","history","back","setRef","ref","current","tryJsonParse","str","tryInvoke","scope","split","flattenChildren","props","renderItem","safeRender","slot","toVueSlots","group","groupBy","flattenDeep","toArray","vaildChildren","c","cloneElement","numReg","singleNumReg","divided","cssVal","arithmetic","Row","tag","style","Wrapper","cProps","space","className","marginLeft","marginRight","React","Children","Col","omnibearingSpace","join","padding","paddingLeft","paddingRight","notEmptyReg","isNaN","preReload","struct","check","useAnd","getValue","define","validateStruct","structOrFn","invalidMsg","emptyMsg","trim","allowEmpty","required","Icon","forwardRef","useWatch","optionsOrFn","useState","immediate","useLayout","firstRef","useRef","fnRef","useStaticRef","prevRef","useLayoutEffect","useEffect","omitErudaRequest","packNetwork","networkToObservable","separateReject","other","Button","baseClass","extraClassName","border","color","theme","readOnly","persistContentWhenLoading","onPrevent","attrs","$slots","Wrap","spawnData","setSpawnData","clickHandler","useEventCallback","calcEventRelativePos","classNames","duration","visibility","defaultProps","isFlattenable","baseFlatten","depth","predicate","isStrict","Infinity","toNamePath","formField","exp","last_key","context","isSet","chain","deepAssign","iteration","path","hasKey","secondPath","firstObj","isObj","valueWrap","resolveCssVal","SContainer","styled","global","Spinner","useDestroyRef","destroyRef","process","REACT_APP_PORT","IS_TEST","REACT_APP_ENV","IS_UAT","IS_DEV","IS_PROD","DEV_MODE","MOCK_MODE","presetControls","label","col","controlType","valueFormat","maximumDate","getFullYear","getMonth","getDate","city","province","postal","phoneRequired","confirmPassword","presetTheme","financing","resolver","superstructResolver","object","mergeItem","coverLabel","paymentRegister","personal","contact","replenish","mapToItem","usePrevious","dependencies","useCallback","ReportImage","CarField","bodytype","carfaxlink","conditions","description","discount","doors","drivetrain","engine","exteriorcolours","fueltype","hightlightfeature","horsepower","images_small","images_main","images_all","inspectdate","inspector","interiorcolours","isbooked","issold","isOneOwner","noAccident","make","mdspprice","mechanicreport","mileage","owner","printedkeys","powerType","prodyear","saleprice","specificationreport","status","stocknumber","torque","transmission","vrlink","warranty","pv","like","report_images","exteriorColor","interiorColor","ev","maintenance","isEv","discountPrice","originalPrice","sellOut","INIT_JSON","toData","isAjaxLoading","ajaxError","mdsp","Mdsp","omnibusFee","isCanFinance","verification","strategy","modifiers","offset","popper","Toast","elmRef","toastRef","noDefaultClassName","hide","closeBtn","popperElement","setPopperElement","virtualReference","setVirtualReference","elm","setElm","usePopper","styles","attributes","update","div","document","createElement","body","appendChild","position","top","left","parentNode","removeChild","classList","createPortal","el","checkIsInBody","contains","ToastController","makeObservable","observable","computed","hideNow","$children","clearTimeout","_timer","_hideTimer","isValidElement","containerClassName","icon","title","content","button","renderButton","forceToArray","src","alt","txt","$el","UIController","SpinnerController","toast","spinner","AsyncControll","methods","loadController","isDone","setLoading","createHook","controller","dialogMethods","paymentController","collectionController","tradeController","getOption","valueKey","useEqual","option","getFieldLabel","labelKey","isMobile","navigator","userAgent","Modal","bgClass","titleClass","containerClass","dialogStyle","independence","noClose","closeIcon","detachedCloseBtn","backdropClose","mobileLock","startAnimation","onClose","elRef","delayValue","setDelayValue","setShow","close","bgHandler","target","need","needRef","lock","unlock","useScrollLock","timerRef","setVisible","clientWidth","footerContent","footer","dialog","display","before","after","propTypes","PropTypes","bool","func","node","gid","dynamicComponents","makeAutoObservable","render","DynamicComponentArea","observer","_subscribes","_gid","_isInited","DialogUIController","_params_","closest","rule","is_str","is","instanceMap","flushGlobalInstance","hideFn","outSideWhiteList","Popper","updatePulse","contentClassName","disabled","behavior","extraOptions","delayClose","keepOpenAtContentHover","popperStyle","passthrough","oldValue","oldShow","referenceElement","setReferenceElement","arrowElement","setArrowElement","element","destroy","api","open","toggle","asyncToggle","timeout","useApi","presetEffect","delayHover","onMouseEnter","onMouseLeave","hover","click","focus","onFocus","slotScope","$attrs","preset","contentPreset","ReactDOM","arrow","otherPortal","documentElement","active","Checkbox","trueLabel","falseLabel","normalClass","activeClass","inputRef","isChecked","updateVal","aria-hidden","CheckboxGroup","_ref","changeHandler","values","oriVal","newValuesAfterChange","buildChildProps","child","carServers","fetchVehicle","CarBase","_load","MutationObserver","require","WebKitMutationObserver","MozMutationObserver","defaultConfig","childList","characterData","subtree","createMutationObserver","observe","disconnect","createSubject","Subject","PinBoxContext","_uid","createConstant","resolveDomSelector","onlyParent","querySelector","scroll$$","IntersectionObserver","Set","baseMixins","useData","useRemUnit","isUseable","calSpace","calSpaceValue","useRender","stateApi","renderState","refMap","renderSign","propsRef","depChange$$","forceUpdate$$","forceUpdate","force","subscription","useMutation","mutationUpdate$$","pipe","throttleTime","adsorptionTopMixins","useOptimize","inverse","isArrive","isOverflow","topForLimit","isSleep","computedDefind","absoluteTop","baseTop","hasAbsoluteTop","Number","topForLimitValue","toRem","stateSetter","placeholderRef","pin","limitSpace","getLimitBox","stateRef","computedRef","setArrive","setOverflow","setTopForLimit","setSleep","observerMapRef","factory","useShareRef","placeholderObserver","limitBoxObserver","canSeeEl","canSeeLimitBox","pin$$","dep","subject","useWatchObservable","delayUseOptimizeTimer","delayUseOptimize","oldVal","observerMap","change","isIntersecting","intersectionRatio","arriveSubscription","overflowSubscription","env$","innerHeight","windowHeight","createMonitor","mergeAll","updateOnInit","NEVER","withLatestFrom","env","getBoundingClientRect","bottom","limitBox$","switchMap","$tab","autoHeightMixins","setHeight","_setHeight","hasChange","offsetHeight","realBodyRef","startWith","globalState","setPinboxKeyMap","updateGroupOrderMap","EMPTY_ARRAY","cbQueue","groupMixins","groupQueue","pinboxKeyMap","max","groupQueueBaseTop","groupQueueTop","behindTop","groupQueueTopInfo","_baseTop","behind","useRenderBefore","updateGroupOrder","groupKey","pinboxKey","groupOrder","setGroupQueue","$nextTick","_updateGroupOrder","connectMixins","useMemo","PinBoxProvider","PinBox","mixins","stateMap","comp","stateValue","mapValues","computedValueMap","computedMap","defineProperty","useVueCycle","fixDocumentFlow","placeholderClass","autoHeight","realBodyClass","realBodyStyle","calculateMdsp","downpay","loanmonth","principal","r","_mdsp","toFixed","totalLienAmountForMdsp","totalLienAmount","preTaxValue","fields","PresetPrice","IS_PRESET","FormPriceList","PriceList","vehicle","order","hold","paymenttoken","extendedWarrantyFees","extendedWarrantyList","extraCharges","trimTitle","tradeIn","tradeInValue","lienAmount","cashback","couponTicket","depositMoney","presetCostList","setList","fetchCoupon","fetchMyCouponTicket","fetchCouponTicket","CDNADDR","ADMINBACK","ENDPOINT","ADMINFRONTEND","ENDPOINT_NEW","fromApiSpy","formState","errors","events","PresetForm","noForm","commonInputProps","formApi","useFormContext","control","ignoreName","noController","inputProps","baseProps","isTopLabelStyle","labelStyle","eventKey","numberWithCommas","x","pattern","leadingZero","_durationToString","prefixZero","zeroPlaceholder","separator","foundStart","units","unit","formatDuration","startUnit","allUnits","floor","LendingInstitutions","notes","TradeIn","hasTrading","ownType","hasTradingLoan","lendingInstitutions","ProtectionPlan","corrosion","EmploymentHistory","employer","employerAddress","person","income","seniority","additionalIncome","previousCompanyName","previousCompanyAddress","ResidentionInformation","previousLivedAddress","own","monthly","insuranceNumber","marital","customMarital","Buyer","personaInquiryId","residentionInfo","employmentInfo","mergeFrom","toUserJSON","Delivery","deliveryMethod","deliveryTime","Hold","userid","AssignmentHelper","setFrom","Scheme","downPayment","financeTerm","organization","ppsa","enable","_ppsa","ppsaFee","totalFee","priceList","calculateTaxCostForFee","autoUpdateDisposer","interceptDisposer","syncMdsp","intercept","storedValue","autorun","LoanScheme","use","FormValue","License","licenseOwner","licenseOwnerIndex","vehicleOwnerIndex","vehicleOwner","rinNumber","plateNumber","ownershipNumber","registeredProvince","plate","LicenseInfo","major","secondary","Insurance","policy","effectiveDate","expiryDate","liabilityCoverage","comprDeductible","collisionDeductible","FinanceApplicationFormFeeTemplate","total","payAmount","loanScheme","scheme","FinanceApplicationFormProtectionFee","protectionPlanVo","protectionPlan","price","vehicleFeeName","vehicleFee","corrosionFeeName","corrosionFee","gapFeeName","gapFee","FinanceApplicationFormBase","salesDirector","buyer","coBuyer","CouponCode","ExtendedWarrantyFees","settlement","Settlement","delivery","licenseInfo","insurance","packageVo","Package","loadCoupon","loadCouponTicket","setCouponTicket","updateMdsp","addCoBuyer","removeCoBuyer","protectionFeeList","FinanceApplicationForm","FinanceApplicationFormDetail","license","serverDataTranslator","CouponServer","DEFINE","VehicleWarranty","prefixName","optionId","optionName","CorrosionWarranty","GapWarranty","setStateSheet","vue","changeState","createStatusStream","joint","allowConcurrency","defaultSetState","needInitedAsync","updateState","tap","copyState","format","shareReplay","s","subscribeStatusStreamOnce","emitAtion","skip","take","postConnect","preConnect","action$$","_setState","_data","_state","setErr","onSetState","useExportApiRef","exportFn","newValues","settlementTypeMap","UNKNOWN","CASH","couponStatusOptions","isCanUse","can_use","full_money","expired","checkCanUse","num","FeeListServer","FeeListBase","selector","matches","Element","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","querySelectorAll","Status","calculateFeeListSum","source","taxList","taxMap","_","calculateTaxCost","taxCostMap","fixedValueFeeList","fixedValueFeeListForBeforeTax","fixedValueFeeListForAfterTax","originalCostList","totalTaxCost","totalFeeForBeforeTax","totalFeeForAfterTax","categoryTypeMap","feeTypeMapForOtherCategory","calculateSum","tax","dateToReactModernCalendarDatepicker","date","getDateForReactModernCalendarDatepicker","dayjs","orderServer","getOrder","addOrder","modifyOrder","cancelOrder","selectInputContent","select","FormItem","prefixIcon","suffixIcon","prefixClassName","suffixClassName","colon","mode","readPrefix","readSuffix","noControlWrapper","placeholder","selectAtFocus","labelClassName","isControlled","controlRes","presetControl","parser","setStateValue","prevValue","setPrevValue","isFocus","setFocus","getEventValue","onBlur","isOutSideLabel","requiredMark","labelText","labelContent","isRead","controlContent","prefix","suffix","orderStatusOptions","isHoldOnly","isBooked","isComplete","orderPayStatusOptions","isSuccess","orderLoanStatusOptions","CarOrderBase","order_id","created_at","pay_type","deposit_pay_status","loan_status","isBuyerConfirmed","isVehicleConfirmed","isTradeInConfirmed","isPriceConfirmed","isPaymentConfirmed","isDeliveryConfirmed","isDocumentConfirmed","statusVo","CarOrder","Radio","isSelected","RadioGroup","LoginPanelContent","defaultIndex","onSuccess","forceRenderTabPanel","selectedClassName","LoginPanel","onFail","toastLoginError","RegisterPanel","toastRegisterError","Login","useHistory","jumpProfile","DefaultContent","InviteActivityContent","forMobile","activity","MoneyField","to","LoginActivity","onUpdateIndex","LoginComp","setIndex","useAjaxStateDescribe","ticketInfoDescribe","ReplenishInfomation","checkLogin","isLogin","onInputChange","apiRef","actionType","setActionType","submitBtnRef","submitPrRef","passwordRef","formOptions","formTheme","defaultValues","termsRead","useForm","handleSubmit","watch","getValues","reset","submitHandler","accesstoken","submit","inputMissing","isDirty","isValid","complete","onSubmit","invitationServer","fetchInvitationConfig","fetchInviteList","page","GoogleLoginButton","isLoading","setIsLoading","loginSuccessHandler","googleLogin","useGoogleLogin","toastFindPasswordSuccess","shortcut","watchList","onWatchChange","changeList","defaultPagingOptions","pageNoName","pageSizeName","firstPageValue","onData","pages","onEffect","concatData","createAjaxPagingDescribeFactory","pagingOptions","prevParams","_init","$isPagerReload","buildPagerParams","pageSize","setParams","getPagerParams","changePageSize","setListWithEffect","uniqList","translator","getTimelinessData","monitor","inMemoryStorage","storageHack","getItem","removeItem","setMonitor","isSupported","testKey","createHack","getStorage","setLocalStorage","storageKey","v","consume","timelinessData","removeLocalStorage","modifyJsonString","deleteAllExpires","rect","currentTarget","time","clientX","y","clientY","Ripple","isInit","rippleEl","configRef","useSpring","opacity","scale","rippleAnim","parentEl","parentElement","offsetWidth","start","span","RippleIt","rippleProps","TimeList","hour24Mode","startTime","endTime","gapTime","onDoneClick","end","timeGenerator","datepickerFactory","hasTime","TimeComponent","ORIGINAL","inputClassName","timeProps","renderInput","transferPipe","transferPipeValue","valRef","displayTime","setDisplayTime","isDate","switchToMinuteOnHourSelect","calendarClassName","shouldHighlightWeekends","inputNumberRender","fallbackValue","valueRef","_fallbackValue","createInputEvent","getDomEventValue","renderRead","menuPortalTarget","isSearchable","openMenuOnFocus","classNamePrefix","menuPortal","provided","zIndex","datetime","TimeKeeper","datetime2","radio","radioRow","radioCol","checkbox","checkboxContent","checkboxGroup","inputNumber","moneyPenny","counter","Counter","textarea","default","NavItem","exact","usA","useSpan","Tag","useRouteMatch","Menu","useResponsive","closeMenu","ready","setReady","navList","timer","dropdown","dropdownItems","Nav","menu","isHeaderMobile","headerController","nav","right","setLeft","setNav","setRight","setRect","setTheme","setMobileSign","renderDefault","updateHeaderRect","monitorAttention","Header","useLocation","hidePhoneNum","menuVisible","setMenuVisible","PHONE_NUMBER","headerRef","useRect","renderLeft","renderMiddler","renderRight","onClickCollection","userHandler","pathname","LogoutButton","useHeaderMobileBack","updateHeader","renderBack","reaction","Comp","initState","immutable","describe","setDescribe","useStateDescribe","resolveParamsRef","taskRef","hasDifference","difference","jsonParse","tryParse","toMonthlyPayment","connectFeeName","emailController","SERVER_DEFAULT","SERVER_INVITE","FINANCING_REQUEST","CAR_CARE_TIPS","INVITE","ORDER_CONFIRM","SELL_YOUR_EV","HOLD_ORDER","emailjs","send","templateId","serverId","PackageItem","moreText","moreTemplate","shortDesc","contents","CarPackageList","CarOrderServer","keyword","commonFees","buildFromOldOrder","cancelAjaxDescribe","modifyAjaxDescribe","CarOrderListServer","hasFlowingOrder","carid","flowingList","isFlowing","serverDataTranslatorForCoupon","CarOrderBusiness","CarOrderListBase","CouponCodeServer","CouponCodeBase","attention","callback","monitorScroll","emitChange","removeEventListener","sendToAdf","CounterInput","resolveInputValue","inputValue","NP","strip","min","decrement","step","minus","handleChange","increment","plus","handleBlur","emitChangeInput","handleInput","onInput","handleChangeInput","prevProps","wrapperStyle","btnStyle","inputStyle","Component","alignItems","cursor","background","textAlign","fontSize","ticketInfo","memoryTicket","invitationTicket","it","extend","customParseFormat","localizedFormat","jumpMethod","useReplace","replaceUrl","locationHref","createCheckValidate","paramsSerializer","qs","checkCodeEqual__200","checkCodeEqual_1","checkCodeEqual_0","checkCodeEqual_200","httpStatus","goHome","toastErrAndGoHome","ignore403","ignore405","viewportContext","emptyObject","htmlClassTemplate","doc","calculateMatchMedia","determinedValue","updateHtmlClassName","classKeyList","ViewportProvider","innerWidth","setWidth","setMatchMedia","matchMediaRef","handleWindowResize","prevMatchMedia","prevClassKeyList","shouldUpdateMatch","useViewport","FooterIconItem","Footer","rel","MatchItem","matchType","matchPath","Announcement","link","linkText","matchList","effectiveStartTime","effectiveEndTime","closeable","effectiveStartTimeVo","effectiveEndTimeVo","isAfter","isBefore","some","word","congruent","complexTypeReg","contrast","a_type","b_type","a_len","diffOf","len","similar","announcementServer","fetchAnnouncementList","AnnouncementServer","AnnouncementBase","AnnouncementList","AnnouncementListServer","AnnouncementListBase","re_url","announcement","origin","Link","announcementList","themeClassName","GlobalAnnouncement","preList","preListRef","search","fixSort","Demo","lazy","Home","ProductDetail","Products","ProductPackage","Inspection","Financing","FinanceApplication","Trade","TradeCopy","Profile","AboutUs","Unsubscribe","TestDrive","TestDriveForm","ContactUs","Protection","Guarentee","Faq","ThankYou","SellYourEv","SellYourEvFormSuccess","Loading","AppInner","fallback","component","App","viewportInfo","setDetails","updateUserInfo","setUpdateUserInfo","fetch","clientId","appId","autoBoot","main","xxx","StrictMode","max2","max3","getElementById"],"mappings":"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","file":"static/js/main.f9276ada.chunk.js","sourcesContent":["/**\n * @file 定义业务的验证实体类。基于superstruct\n */\nimport { get } from 'lodash';\nimport { size, string } from 'superstruct';\nimport { defineFormValidate, isNotEmpty } from './helper/superstruct-helper';\n\nconst emailReg =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\nfunction transformToFormValue(val) {\n return val === null || val === undefined ? '' : val + '';\n}\n\nexport function isEmail(value) {\n return emailReg.test(value);\n}\n\n/* 具体业务类型定义 */\n// email\nexport const Email = defineFormValidate(\n 'email',\n isEmail,\n 'Please enter the correct email address',\n 'Please input email address'\n);\n\n// first name & last name\nexport const Name = defineFormValidate(\n 'name',\n size(string(), 0, 200),\n \"The name it's too long\",\n 'Please input your name'\n);\n\nexport const FirstName = defineFormValidate(\n 'first name',\n size(string(), 0, 200),\n \"The first name it's too long\",\n 'Please input first name'\n);\nexport const LastName = defineFormValidate(\n 'last name',\n size(string(), 0, 200),\n \"The last name it's too long\",\n 'Please input last name'\n);\n\n// phone\nexport const Phone = defineFormValidate(\n 'phone',\n (value) => /^\\d{10}$/.test(value),\n 'Please enter the correct phone number',\n 'Please input phone number'\n);\n\n// password\nexport const Password = defineFormValidate('password', isNotEmpty, 'Please input password', 'Please input password');\n/**\n * 重复密码的验证无法静态化,这个需要动态创建。\n * @example\n * const passwordRef = useRef('');\n * const [formOptions] = useState(() => ({\n * resolver: {\n * confirmPassword: defineFormValidate('confirm password', (value) => passwordRef.current === value, 'Please input the same password'),\n * }\n * }));\n *\n * const { watch } = useForm(formOptions);\n * passwordRef.current = watch('password', '');\n */\n\n// card\nexport const Card = defineFormValidate(\n 'card',\n isNotEmpty,\n 'Please enter the correct card information',\n 'Please input card information'\n);\n\n// 日期\nexport const Dates = defineFormValidate('date', isNotEmpty, 'Please select the date', 'Please select the date');\nexport const DatePicker = defineFormValidate(\n 'date',\n isNotEmpty,\n 'Please select the date',\n 'Please select the date',\n function (obj) {\n if (typeof obj === 'string') {\n return obj;\n }\n\n const year = transformToFormValue(get(obj, 'year'));\n const month = transformToFormValue(get(obj, 'month'));\n const day = transformToFormValue(get(obj, 'day'));\n const hour = transformToFormValue(get(obj, 'hour'));\n const minute = transformToFormValue(get(obj, 'minute'));\n\n if (!year) return '';\n\n return `${year}-${month}-${day} ${hour}:${minute}`;\n }\n);\n\n// 地址类\nexport const Address = defineFormValidate('address', size(string(), 0, 500), 'The content is too long');\n\nexport const City = defineFormValidate('city', size(string(), 0, 200), 'The content is too long');\nexport const CitySelect = defineFormValidate(\n 'city',\n size(string(), 0, 200),\n 'The content is too long',\n '',\n function (obj) {\n return transformToFormValue(get(obj, 'value'));\n }\n);\n\nexport const Province = defineFormValidate(\n 'province',\n size(string(), 0, 200),\n 'The content is too long',\n 'Please select province'\n);\n\nexport const PostalCode = defineFormValidate('postal code', size(string(), 0, 200), 'The content is too long');\n\nexport const Terms = defineFormValidate('terms', (value) => Boolean(value), 'Please read the terms');\n\n/* 通用类型定义 */\nconst formNumber = ['number', 'string'];\n\nexport const PositiveNumber = defineFormValidate(\n 'PositiveNumber',\n (value) => formNumber.indexOf(typeof value) !== -1 && +value > 0,\n 'Please enter a number not less than 0',\n 'This field is required'\n);\n\nexport const StringOrNumber = defineFormValidate(\n 'StringOrNumber',\n (value) => formNumber.indexOf(typeof value) !== -1,\n 'Please enter the correct value',\n 'This field is required'\n);\n\nexport const NotLessThanZero = defineFormValidate(\n 'PositiveNumber',\n (value) => formNumber.indexOf(typeof value) !== -1 && +value >= 0,\n 'Please enter the correct value',\n 'This field is required'\n);\n\nexport const Ignore = defineFormValidate('Ignore', () => true);\n\nexport const SelectValidate = defineFormValidate(\n 'Select',\n isNotEmpty,\n 'Please select an option',\n 'Please select an option'\n);\n","/**\n * @module interceptor\n *\n * @summary 简介: 轻松使用拦截器模式。\n * @description 功能: 遍历一个数组,将数组元素以拦截器模式串联执行。\n *\n * @param {Array} interceptor 要遍历的数组。子元素函数的签名 ([res], [...args], [next], [exit]) => {}\n * res: 上一个拦截器元素next()的参数\n * next: 执行下一个拦截器元素,参数将作为执行下一个拦截器元素的res。(只接受一个参数)\n * 如果拦截器元素的形参不包含next,那么相当于隐式调用next()。\n * exit: 终止拦截器遍历,本环节next后调用callback\n *\n * @param {Function} cb 拦截器执行完毕后(所有拦截器元素next后)的回调。\n * @param {*} initParams 拦截器第一个回调的参数\n * @param {Array} args 数组元素的静态参数\n * @param {Object} options 配置拦截器的行为\n * @param {Boolean} options.allowMultipleNext 是否允许多次调用next()\n *\n * @todo\n * 1. 执行优先级: 尚未规范next()后面的代码及下一个拦截器元素的代码的执行顺序。在目前的实现中,异步和同步调用next,这个执行顺\n * 序有所差异。为了避免怪异行为,推荐不要在next()后执行其它代码。\n *\n * @example\n *\n * const routerInterceptor = [];\n *\n * // 因为形参没有next,所以相当于隐式调用了next()\n * routerInterceptor.push(function(res, to, from) {\n * console.log('---> 拦截器元素1', res, to, from);\n * });\n * // 2s后执行到下一个拦截器元素,对了,我还传了一个参数。\n * routerInterceptor.push(function(res, to, from, next) {\n * console.log('---> 拦截器元素2', res, to, from);\n * setTimeout(() => next(666), 2000);\n * });\n *\n * // 2s后执行到下一个拦截器元素,对了,我还传了一个参数。\n * routerInterceptor.push(function(res, to, from, next) {\n * console.log('---> 拦截器元素2 +1', res, to, from);\n * setTimeout(() => next(res + 1), 2000);\n * });\n *\n *\n * routerInterceptor.push(function(res, to, from, next, exit) {\n * console.log('---> 拦截器元素3', res, to, from);\n * exit();\n * next(res); // 由于形参带next,所以还是要主动调(跟是否调用了exit无关),否则后面的元素或callback始终在等待。\n * next(res); // 多次next无效,除非allowMultipleNext: true\n * next(res); // 多次next无效,除非allowMultipleNext: true\n * console.log('---> 除非这前面return,否则后面的代码还是会执行。这个没意见吧?')\n * });\n *\n * routerInterceptor.push(function() {\n * console.log('---> 由于前面的拦截器元素调用了exit,所以不会执行到这后面')\n * });\n *\n * routerInterceptor.push(function() {\n * console.log('---> 2222 由于前面的拦截器元素调用了exit,所以不会执行到这后面')\n * });\n *\n * runInterceptor(routerInterceptor, function(res) {\n * console.log('--> done', res)\n * }, ['to', 'from'], {});\n */\nexport function runInterceptor(interceptor, cb, initParams, args, options = {}) {\n let isBreak;\n let NO = {};\n let baseArgCount = ((args && args.length) || 0) + 1;\n const { allowMultipleNext } = options;\n\n function _break() {\n isBreak = true;\n }\n\n interceptor.reduce(\n function (preCallback, fn) {\n const fnParamsCount = fn.length;\n let _fn,\n _resolveVal = NO;\n\n const _next = function (res) {\n if (allowMultipleNext || _resolveVal === NO) {\n _resolveVal = res;\n _fn && _fn(res);\n }\n };\n\n preCallback(function (res) {\n const _isBreak = isBreak;\n\n if (!_isBreak) {\n const _args = (args || []).concat([_next, _break]);\n _args.unshift(res === NO ? null : res);\n\n fn.apply(null, _args);\n }\n\n if (_isBreak || fnParamsCount <= baseArgCount) {\n _next(res);\n }\n });\n\n return function (fn) {\n if (_resolveVal !== NO) {\n fn(_resolveVal);\n } else {\n _fn = fn;\n }\n };\n },\n function (fn) {\n fn(initParams);\n }\n )(cb);\n}\n","/**\n * 基于axios的网络层封装。方便import使用,将其定位为项目的唯一网络层,所以实现为单例。\n * @example\n * // 全局基础参数\n * network.setBaseParams('channelId', 99);\n * network.setBaseParams('entry', () => 'xxxxxxxxxxx', true);\n *\n * // url别名\n * network.addAlias('/api', (req) => (req.isExternal ? '/wwyy/external' : '/wwyy/server'));\n * network.addAlias('/useApi', '/wwyy/user');\n *\n * // 自定义拦截器\n * network.interceptors.request.push(\n * function (_req, next) {\n * setTimeout(next, 500);\n * },\n * function (req, next) {\n * network('/', null, { connectRequest: req }).then(next);\n * }\n * );\n *\n * // 捕捉全局错误,在这里进行重定向、重请求等。\n * network.catchError = function (res, { url, params, config }) {\n * // 访问到一个404的接口时,尝试请求另一个(重定向)。\n * // 因为每个network调用出现业务错误都会进入这里。\n * // 所以这里也判断一个_dontTry_的自定义标识,来中止重试,防止进入无限循环。\n * if (res.response.status === 404 && !config._dontTry_) {\n * return new Promise(function (resolve, reject) {\n * setTimeout(() => {\n * network('', null, { _dontTry_: true }) // 假装需要请求某个接口更新本地的全局参数,加上_dontTry_标识,标识这个接口都404就不用玩了。\n * .then(() => network.setBaseParams('channelId', 2)) // 更新全局参数。这样后面的请求的参数都是最新的。\n * .then(() => network(url + '1', params, { ...config, retry: 0, _dontTry_: true })) // 假装这是另一个接口\n * .then(resolve, reject);\n * }, 3000);\n * });\n * }\n *\n * return Promise.reject(res);\n * };\n *\n * // 使用\n * network('/useApi/info', { id: 123, name: 'cyc' }, { method: 'post', retry: 1, debug: true, paramsFormat: 'json'});\n */\nimport { get } from 'lodash';\nimport { runInterceptor } from '../../utils/interceptor';\nimport axios from 'axios';\n\nfunction loadQs() {\n return import('qs');\n}\n\nconst globalParams = {};\nconst aliasList = [];\nconst axiosInstance = axios.create();\naxiosInstance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';\n\nconst httpSheet = {};\n\nfunction noop() {}\n\nfunction each(arr, fn, eachAll, startRight) {\n var i;\n\n // 不严谨的判断是否数组\n if (typeof arr.length == 'number') {\n if (startRight) {\n for (i = arr.length - 1; i >= 0; i--) {\n if (fn(arr[i], i, arr) === false) {\n break;\n }\n }\n } else {\n for (i = 0; i < arr.length; i++) {\n if (fn(arr[i], i, arr) === false) {\n break;\n }\n }\n }\n } else if (arr && typeof arr === 'object') {\n for (i in arr) {\n if (eachAll || Object.prototype.hasOwnProperty.call(arr, i)) {\n if (fn(arr[i], i, arr) === false) {\n break;\n }\n }\n }\n }\n}\n\nfunction omit(obj, list) {\n var result = Object.assign({}, obj);\n each(list, function (key) {\n delete result[key];\n });\n\n return result;\n}\n\nfunction tryFn(val, ...args) {\n return typeof val === 'function' ? tryFn(val.apply(null, args)) : val;\n}\n\nfunction isArray(arr) {\n return Array.isArray(arr);\n}\n\nfunction cloneFormData(formData) {\n const data = new FormData();\n\n for (const [key, val] of formData) {\n data.append(key, val);\n }\n\n return data;\n}\n\nfunction isNativeDataObject(data) {\n return (\n (typeof FormData !== 'undefined' && data instanceof FormData) ||\n (typeof File !== 'undefined' && data instanceof File) ||\n (typeof Blob !== 'undefined' && data instanceof Blob)\n );\n}\n\nexport function getGlobalParamsSnapshot(isPost, req, params) {\n const isArr = isArray(req.data) || isArray(req.params) || isArray(params);\n const res = {\n params: {},\n data: isArr ? (isArray(req.data) ? req.data : isArray(req.params) ? req.params : params) : {},\n };\n\n for (var key in globalParams) {\n const value = tryFn(globalParams[key].val, req);\n\n if (typeof value !== 'undefined' && value !== null) {\n if (isPost && !isArr && globalParams[key].dataFirst) {\n res.data[key] = value;\n } else {\n res.params[key] = value;\n }\n }\n }\n\n return res;\n}\n\nfunction transformUrl(url, req) {\n if (/^\\w+:\\/\\//.test(url)) return url;\n\n let prefixFirstMatch = false; // 只匹配一次\n\n return aliasList.reduce(function (url, sheet) {\n if (prefixFirstMatch) return url;\n\n const reg = new RegExp(`^${sheet[0]}`);\n prefixFirstMatch = prefixFirstMatch || !!url.match(reg);\n return url.replace(reg, tryFn(sheet[1], req));\n }, url);\n}\n\nfunction getErrorMessage(res) {\n if (typeof res === 'string') return res;\n return res.message || get(res, 'data.message') || get(res, 'data.msg') || get(res, 'data') || res || '未知错误';\n}\n\nfunction wrapRequestInterceptor(list) {\n return list.map((fn) => {\n return function (req, next) {\n const args = arguments;\n const _next = next;\n args[1] = next = () => _next(req); // 复写next,使其总是传递axiosParams\n\n req.__interceptor_indicator__ = fn;\n fn.apply(null, args);\n\n // 如果拦截器签名没有next,则手动next。\n if (fn.length < 2) {\n next();\n }\n };\n });\n}\n\nfunction wrapResponseInterceptor(list) {\n return list.map((fn) => {\n return function (res, isError, reject, next, exit) {\n fn.apply(null, [\n res,\n isError,\n next,\n () => {\n reject(res);\n exit();\n next();\n },\n ]);\n\n // 如果拦截器签名没有next,则手动next。\n if (fn.length < 2) {\n next(res);\n }\n };\n });\n}\n\n/**\n * 网络层API\n * @param {String} url 请求链接\n * @param {Object|Array} params 请求参数\n * @param {Object} config 配置,其会跟axios的调用参数合并。\n * @param {String} config.method 请求方法\n * @param {Object} config.params 请求的url参数。通常是method为get以外是用到。\n * @param {Number} config.retry 发生非业务正确时的重试次数。\n * @param {String} config.paramsFormat 有效值''和'json'。为'josn'时,content-type为\"application/json\"。默认为\"application/x-www-form-urlencoded\"。\n * @param {String} config.httpId 给请求标记一个id,当该请求未完成,而后面又有同样id的请求发起时,前者不响应。@todo后面有时间改为abort\n * 这在要处理竞态条件的场景很有用,因这是一个很常见的场景,所以内置在内部实现。\n * @param {Function} config.checkValidate 区分请求是否属于业务正确。签名 (res, isError) => boolean。\n * res: axios返回的原始数据。\n * isError: res是否取自axios的catch。\n * @param {Function} config.pickData 业务正确时,用于提取数据的公用方法。它接收的值是axios返回值经过拦截器后的值。\n * @param {Function} config.onBusinessError 请求属于业务错误时的回调,请求本身是成功的。签名 (errMsg, res) => {}\n * @param {Function} config.onError 请求发生错误(如网络错误)时的回调,与onBusinessError互斥,因为请求本身是失败的。签名 (error, config) => {}\n * @param {Function} config.getErrorMessage 包装错误消息,其会传给onBusinessError。返回falsely值时取network 自行解析。签名 (res) => string。\n * @param {Object} config.connectRequest 当在业务拦截器使用了network()进行请求时,这个请求默认也会重新执行一遍业务拦截器。如果不自行进行处理,会导致一直无限循环。\n * 这可以简单地传递拦截器的第一个参数给connectRequest,表示这个network从当前拦截器开始执行拦截器。结合代码表达,如:\n * network.interceptors.request.push(\n * function (req, next) {\n * setTimeout(() => {\n * console.log(req);\n * next();\n * }, 2000);\n * },\n * function (req, next) {\n * // 去掉connectRequest的话,这个network也会重新走一次拦截器,即用上面的setTimeout开始,并回到这里。\n * network('first', null, { connectRequest: req }).then(next);\n * }\n * );\n * @returns Promise\n */\nconst network = function (url, params, userConfig) {\n params = params || {};\n const config = Object.assign({}, network.config, userConfig || {});\n const Log = config.debug ? console.log : noop;\n\n const axiosParams = {\n ...omit(userConfig, Object.keys(network.config)),\n url: url || '',\n method: (config.method || 'get').toLowerCase(),\n };\n\n network.effectConfig(config, axiosParams, userConfig);\n\n const interceptorIndicator = network.interceptors.request.indexOf(\n config.connectRequest && config.connectRequest.__interceptor_indicator__\n );\n const internalRequestInterceptor = [\n function (req, next) {\n req.url = transformUrl(req.url, req);\n\n if (req.method === 'get') {\n req.params = Object.assign(getGlobalParamsSnapshot(false, req).params, config.params || {}, params);\n next();\n } else {\n let mutationParams = params;\n const paramsSnapshot = getGlobalParamsSnapshot(true, req, mutationParams);\n let pr;\n\n if (mutationParams && typeof FormData !== 'undefined' && mutationParams instanceof FormData) {\n // @todo 还没经过测试,本意是复制一个FormData,避免修改原始数据,不然retry时会重复append数据。\n mutationParams = cloneFormData(mutationParams);\n\n Object.keys(paramsSnapshot.data).forEach((key) => {\n mutationParams.append(key, paramsSnapshot.data[key]);\n });\n } else if (!isArray(paramsSnapshot.data)) {\n mutationParams = Object.assign(paramsSnapshot.data, mutationParams);\n }\n\n if (typeof mutationParams !== 'string' && !isNativeDataObject(mutationParams)) {\n if (config.paramsFormat !== 'json') {\n if (config.paramsFormat === 'raw') {\n req.headers = { 'Content-Type': 'application/json' };\n mutationParams = JSON.stringify(mutationParams);\n } else {\n pr = loadQs().then(function (e) {\n mutationParams = e.stringify(mutationParams);\n });\n }\n }\n }\n\n (pr || Promise.resolve()).then(function () {\n req.data = mutationParams;\n req.params = Object.assign(paramsSnapshot.params, config.params || {});\n next();\n });\n }\n },\n ];\n\n const internalResponseInterceptor = [\n function (res, isError, next, reject) {\n const { onBusinessError, checkValidate, retry, retryInterval, pickData } = config;\n\n function resolve(res) {\n next(pickData ? pickData(res, axiosParams, config) : res);\n network.successHandler(res);\n\n Log('done', res);\n }\n\n if (checkValidate(res, isError, axiosParams, config)) {\n resolve(res);\n } else {\n network.catchError(res, { url, params, config: userConfig }).then(resolve, function (res) {\n function _retry() {\n network(url, params, Object.assign(userConfig, { retry: retry - 1 })).then(next, reject);\n }\n\n if (retry > 0) {\n Log('retry', res, res.config);\n retryInterval ? setTimeout(_retry, retryInterval) : _retry();\n } else {\n const errorMsg = config.getErrorMessage(res) || getErrorMessage(res);\n\n Log('error', res, res.config);\n\n if (!res._$$hasBeenConsumed$$_) {\n onBusinessError && onBusinessError(errorMsg, res);\n network.errorHandler(res, errorMsg);\n res._$$hasBeenConsumed$$_ = true;\n }\n\n reject(res);\n }\n });\n }\n },\n ];\n\n function runResponseInterceptor(res, isError) {\n if (isError && (!res.response || res instanceof Error)) {\n const errorMsg = config.getErrorMessage(res) || getErrorMessage(res);\n config.onError && config.onError(res, config);\n network.errorHandler(res, errorMsg, isError);\n return Promise.reject(res);\n }\n\n return new Promise(function (resolve, reject) {\n runInterceptor(\n wrapResponseInterceptor(\n ((config.interceptors && config.interceptors.response) || [])\n .concat(network.interceptors.response)\n .concat(internalResponseInterceptor)\n ),\n resolve,\n res,\n [isError, reject]\n );\n });\n }\n\n return new Promise((resolve, reject) => {\n runInterceptor(\n wrapRequestInterceptor(\n internalRequestInterceptor\n .concat(\n network.interceptors.request.slice(interceptorIndicator + 1) // 跳过已经执行的业务拦截器,防止在业务拦截器死循环\n )\n .concat((config.interceptors && config.interceptors.request) || [])\n ),\n\n function (req) {\n let _localId;\n const { httpId } = config;\n delete req.__interceptor_indicator__;\n\n if (httpId) {\n _localId = httpSheet[httpId] = (httpSheet[httpId] || 0) + 1;\n }\n\n function checkBeforeApply(fn) {\n if (!httpId) return fn;\n return function () {\n if (_localId === httpSheet[httpId]) {\n fn.apply(this, arguments);\n delete httpSheet[httpId];\n }\n };\n }\n\n Log('start request', req);\n network\n .axiosInstance(req)\n .then(\n (res) => runResponseInterceptor(res),\n (error) => {\n // if (error.response) {\n // // The request was made and the server responded with a status code\n // // that falls out of the range of 2xx\n // } else if (error.request) {\n // // The request was made but no response was received\n // // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n // // http.ClientRequest in node.js\n // } else {\n // // Something happened in setting up the request that triggered an Error\n // // console.log('Error', error.message);\n // }\n return runResponseInterceptor(error, true);\n }\n )\n .then(checkBeforeApply(resolve), checkBeforeApply(reject));\n },\n\n axiosParams\n );\n });\n};\n\nObject.assign(network, {\n /**\n * 定义项目的全局参数。用network发起的请求都会带上这些全局参数。\n * @param {String} key 全局参数名\n * @param {*} val 参数值。为函数是每次请求对其递归求值。签名:(req) => any\n * @param {Boolean} dataFirst 参数是否优先作为axios的data域\n * @example\n * network.setBaseParams('entry', () => 'xxx', true);\n * network('/api/aaa'); // 虽然没定义参数,但是会带上全局参数{entry: 'xxx'}。\n */\n setBaseParams(key, val, dataFirst) {\n if (arguments.length < 2) {\n delete globalParams[key];\n } else {\n globalParams[key] = {\n val,\n dataFirst,\n };\n }\n },\n\n /**\n * 定义项目的请求路径的别名\n * @param {String} key 别名名称\n * @param {*} val 映射值。为函数是每次请求对其递归求值。签名:(req) => string\n * @example\n * network.addAlias('/useApi', '/api/user');\n * network('/useApi/1'); // 实际请求地址是 '/api/user/1'\n *\n */\n addAlias(key, val) {\n aliasList.push([key, val]);\n },\n\n // 每次有请求业务正确都会回调,包含重试的。\n successHandler: noop,\n // 每次有请求业务错误和原生错误都会回调,不包含重试的。\n // 通常在这进行日志上报等工作。\n errorHandler: noop,\n\n // 有请求业务错误时回调。不同于errorHandler的是,catchError专注于处理错误,而errorHandler仅仅用于通知。\n // 你可以在此统一实现重新登录,请求重定向等逻辑。\n // 函数签名:(res, entryParams) => Promise\n catchError(res) {\n return Promise.reject(res);\n },\n\n // 拦截器。拦截器用的是utils/interceptor,但是函数签名有小幅度调整,以符合network的直观感受。\n interceptors: {\n // 请求时的拦截器队列,签名 (req, next) => {}。network内部有比用户拦截器执行优先级更高的拦截器。\n // req为axios的参数。\n // next无需传参数,内部重载了它固定传req给下游。详见utils/interceptor\n request: [],\n\n // 响应时的拦截器队列,签名 (res, isError, next, reject) => {}。\n // ⚠⚠⚠ network内部有拦截器实现retry,onBusinessError,httpId(解决竞态条件)等。但它的执行优先级比用户拦截器低。\n // 内部实现用了签名的所有参数,如果用户拦截器传递了不合适的res,或者调用了reject,那么这些功能将受影响。\n // 所以确保你清楚了内部实现再考虑使用该拦截器,否则请考虑使用catchError和errorHandler。\n // res 首个用户拦截器收到的是axios的响应体,后面的拦截器收到的是上游next的值。\n // isError res是否取自axios的catch。\n // next 详见utils/interceptor\n // reject 调用后忽略后面的拦截器,并Promise.reject该次network调用。\n response: [],\n },\n\n // 在拦截器之前执行,用于对config做副作用。\n effectConfig() {},\n\n config: {\n debug: false,\n request: [],\n response: [],\n retry: 0,\n getErrorMessage: noop,\n onError: noop,\n checkValidate(res, isError) {\n if (isError) return false;\n\n try {\n return !!res;\n } catch (e) {\n return false;\n }\n },\n pickData(res) {\n try {\n return JSON.parse(res.data);\n } catch (e) {\n return res.data;\n }\n },\n },\n});\n\nnetwork.axiosInstance = axiosInstance; // 挂在network下,方便进行测试时,单独对axiosInstance进行mock。\n\nexport { transformUrl, getErrorMessage, network, axiosInstance as axios };\nexport default network;\n","/**\n * 宿主环境的UI信息,这里支持将信息挂在state-tree,不直接访问设备API。\n * 应该在应用层访问宿主环境进行更新。\n */\nimport { types } from 'mobx-state-tree';\n\nconst MatchMedia = types.model({\n sm: false,\n md: false,\n lg: false,\n xl: false,\n});\n\nconst UiStore = types\n .model({\n width: 0,\n height: 0,\n matchMedia: types.optional(MatchMedia, {}),\n })\n .views((self) => ({\n get isMobile() {\n return !self.matchMedia.sm;\n },\n }))\n .actions((self) => {\n return {\n updateFromViewport({ width, height, matchMedia }) {\n self.width = width;\n self.height = height;\n self.matchMedia = matchMedia;\n },\n };\n });\n\nexport default UiStore;\n","import mitt from 'mitt';\n\nexport default class Emiiter {\n constructor() {\n this.emitter = mitt();\n }\n\n on() {\n this.emitter.on.apply(this.emitter, arguments);\n }\n\n off() {\n this.emitter.off.apply(this.emitter, arguments);\n }\n\n emit() {\n this.emitter.emit.apply(this.emitter, arguments);\n }\n}","import { types } from 'mobx-state-tree';\nimport Car from './Car';\n\nfunction hasIt(list, car) {\n return list.find((t) => t.uuid === car.uuid);\n}\n\nconst Collection = types\n .model({\n list: types.optional(types.array(types.late(() => Car)), []),\n })\n .views((self) => {\n return {\n isCollected(car) {\n return hasIt(self.list, car);\n },\n };\n })\n .actions((self) => ({\n add(car) {\n self.exclude(car);\n self.list.push(car);\n },\n\n exclude(car) {\n const index = self.list.findIndex((item) => item.uuid === car.uuid);\n\n if (index !== -1) {\n self.list.splice(index, 1);\n }\n }\n }));\n\nexport default Collection;\n","/**\n * @file 数据对齐类,用于同一含义的不同实例之间的数据对齐。\n *\n * # 背景\n * 当一份数据渲染在一或多个页面(像vue-router keep-live)的不同地方时,如果开发人员为图方便将这些数据独立实例化时,就会存在同步问题。\n * 即使大聪明的你可能想到将它提升到store(万一这份数据身份不足以提升到store呢)或者利用DelayDestroy实现为优化版本的单例,甚至利\n * 用vue-data-model的Identifier来保证实例唯一。但当要你考虑不同webview或浏览器标签页时,这就崩溃了吧?\n *\n * # 机制\n * 事件发布/订阅机制。\n * 如果有数据对齐(数据同步)的需要,则手动调用$registeredChannels(name)注册一个通道。\n * 内部重载了$assign,在$assign被执行时,会同时发布事件到事件总线。接下来同一个通道的其他实例会被执行一次$assign,以达到数据对齐。\n *\n * # 使用限制\n * 务必确保你的实体类是可以被序列化和反序列化的。\n */\nimport { types } from 'mobx-state-tree';\nimport Emiiter from '../../libs/network/emiiter';\n\nfunction getRandomStr() {\n return Math.random().toString(36).slice(-8);\n}\n\nconst WIN_RANDOM_STR = getRandomStr();\n\nconst emiiter = new Emiiter();\nwindow.addEventListener('storage', (e) => {\n if (e.key === 'webview-align-event' || e.key === 'webview-align-request') {\n const res = JSON.parse(e.newValue);\n if ('payload' in res) {\n emiiter.emit(e.key, res);\n }\n }\n});\n\nlet outSideeffect, buildOutSideEventObservable;\n\nfunction publishData(vm, data, eventName = 'webview-align-event') {\n const res = {\n uid: vm.__dataalign_uid__,\n key: vm.__dataalign_key__,\n payload: vm,\n ...data,\n };\n\n vm.__dataalign_debug__ && console.log(`++ publish ${eventName} ++`, res);\n outSideeffect && outSideeffect(res); // 同步到app的其他webview\n emiiter.emit(eventName, res); // 同步到本地的其他实例\n localStorage.setItem(eventName, JSON.stringify(res)); // 同步到同一浏览器的其他tab的实例\n localStorage.setItem(eventName, JSON.stringify({ key: res.key }));\n}\n\nconst assignPro = function () {\n Object.assign(this, ...arguments);\n if (this._from_event_) return;\n publishData(this);\n};\n\nconst DataAlign = types.model({}).actions((self) => ({\n beforeDestroy() {\n self.$destroyChannels();\n },\n runInAction(fn) {\n fn.call(self);\n },\n // 注册通道\n $registeredChannels(name) {\n self.$destroyChannels();\n self.__dataalign_uid__ = WIN_RANDOM_STR + '-' + getRandomStr(); // 消息通道个体的唯一id\n self.__dataalign_key__ = name; // // 消息通道的名称\n self.__dataalign_handler__ = ({ key, payload, uid, targetUid, signature }) => {\n self.runInAction(function () {\n if (key === name && payload !== self) {\n if (\n (targetUid === self.__dataalign_uid__ && signature === self._once_signature_) ||\n (!targetUid && self.__dataalign_uid__ !== uid)\n ) {\n self.__dataalign_debug__ &&\n console.log('## from webview-align-event ##', key, payload, self.__dataalign_uid__, uid);\n self._once_signature_ = '';\n self._from_event_ = true;\n self.$assign(payload.toJSON ? payload.toJSON() : payload);\n self._from_event_ = false;\n }\n }\n });\n };\n self.__dataalign_request_handler__ = ({ key, payload, uid }) => {\n if (key === name && self.__dataalign_uid__ !== uid) {\n self.__dataalign_debug__ &&\n console.log('## from webview-align-request ##', key, payload, self.__dataalign_uid__, uid);\n\n publishData(self, {\n targetUid: uid,\n signature: payload,\n });\n }\n };\n\n if (buildOutSideEventObservable) {\n self.__dataalign_subscription__ = buildOutSideEventObservable().subscribe({\n next: self.__dataalign_handler__,\n });\n }\n\n // 监听数据变更\n emiiter.on('webview-align-event', self.__dataalign_handler__);\n\n // 监听数据同步请求\n emiiter.on('webview-align-request', self.__dataalign_request_handler__);\n },\n\n // 发起一次同步请求\n $tryDataAlign() {\n publishData(\n self,\n {\n payload: (self._once_signature_ = getRandomStr()),\n },\n 'webview-align-request'\n );\n },\n\n $destroyChannels() {\n if (!self.__dataalign_handler__) return;\n emiiter.off('webview-align-event', self.__dataalign_handler__);\n self.__dataalign_subscription__ && self.__dataalign_subscription__.unsubscribe();\n self.__dataalign_subscription__ = self.__dataalign_handler__ = null;\n },\n\n $assign() {\n assignPro.call(self, ...arguments);\n },\n}));\n\nDataAlign.debug = types.compose(\n DataAlign,\n types.model({}).actions((self) => ({\n afterCreate() {\n self.__dataalign_debug__ = true;\n },\n }))\n);\n\n/**\n * 设置非标准浏览器(一般指app)数据变更Observable的构建函数。即如何构建一个监听其它webview数据变更的Observable。\n * @param {Function} fn\n * @example\n * setOutSideEventObservableGenerator(function() {\n * return onH5Event('webview-align-event');\n * });\n */\nexport function setOutSideEventObservableGenerator(fn) {\n buildOutSideEventObservable = fn;\n}\n\n/**\n * 设置非标准浏览器(一般指app)对外副作用的方式。即实例数据发生变化时,如何同步到其它webview。\n * 要求fn被调用时,其它webview的setOutSideEventObservableGenerator的fn()返回值(Observable)会发射{ key, payload, uid, targetUid, signature }。\n * @param {Function} fn\n * @example\n * setOutSideEffect(function(res) {\n * publishH5Event('webview-align-event', res); // 同步到app的其他webview\n * });\n */\nexport function setOutSideEffect(fn) {\n outSideeffect = fn;\n}\n\nexport default DataAlign;\n","import { types } from 'mobx-state-tree';\nimport { getLocalStorage, modifyStorage } from '../../utils/storage';\nimport DataAlign from '../common/DataAlign';\n\n// Storage实体,自动保存到本地和从本地恢复。\nconst Storage = types.compose(\n DataAlign,\n types\n .model({\n key: 'root_storage',\n useSessionStorage: false,\n value: types.frozen(),\n })\n .actions((self) => ({\n afterCreate() {\n if (self.key) {\n self._sync();\n self.$registeredChannels && self.$registeredChannels('storage-' + self.key);\n }\n },\n\n get(key) {\n return typeof key === 'undefined' ? self.value : self.value[key];\n },\n\n _sync() {\n self.value = JSON.parse(getLocalStorage(self.key, false, self.useSessionStorage) || '{}');\n },\n _modify(doing) {\n modifyStorage(\n self.key,\n (json) => {\n doing(json);\n self.value = json;\n // self.$assign({\n // value: json,\n // });\n },\n self.useSessionStorage\n );\n },\n\n del(key) {\n self._modify(function (json) {\n delete json[key];\n });\n },\n\n // 单个字段操作\n set(key, value) {\n self.assign({\n ...self.value,\n [key]: value,\n });\n },\n\n // 合并操作\n assign(obj) {\n self._modify(function (json) {\n Object.assign(json, obj);\n });\n },\n }))\n);\n\nexport default Storage;\n","import { types } from 'mobx-state-tree';\nimport DataAlign from './common/DataAlign';\nimport { omit } from 'lodash';\n\nconst NO = {};\n\nconst SharedMemory = types.compose(\n DataAlign.debug,\n types\n .model({\n value: types.frozen(),\n })\n .actions((self) => ({\n afterCreate() {\n self.$registeredChannels && self.$registeredChannels('root-shared-memory');\n self.$tryDataAlign();\n },\n get(key) {\n return (self.value || NO)[key];\n },\n set(key, val) {\n // DataAlign只对$assign生效\n self.$assign({\n value: {\n ...self.value,\n [key]: val,\n },\n });\n },\n remove(key) {\n if (!self.value) return;\n self.$assign({\n value: omit(self.value, [key]),\n });\n },\n }))\n);\n\nexport default SharedMemory;\n","import { defineDomainEvent } from '@common/utils/describe-helper';\n\n// 用户登录成功时触发(通过auth.login())\nconst LoginSuccessEvent = defineDomainEvent('login.success');\nexport default LoginSuccessEvent;\n","import { types } from 'mobx-state-tree';\nimport network from '@common/libs/network';\nimport { Person } from '@common/models/FinanceApplication';\nimport Location from '@common/models/FinanceApplication/Location';\nimport { pick } from 'lodash';\nimport { tryDispatchDomainEvent } from '@common/utils/describe-helper';\nimport LoginSuccessEvent from './events/login-success.domain-event';\nimport { rootStore } from '..';\nimport { checkReplenish } from '@/controller/loginController';\n\nfunction reject(error) {\n return Promise.reject(error);\n}\n\nexport function putUserInfo(res, config) {\n res = pick(res, User.propertyNames);\n return network(`/newApi/user/${res.email}`, res, {\n method: 'post',\n ...config,\n });\n}\n\nexport function getUserInfo(email, config) {\n return network(`/newApi/user/${email}`, null, {\n headers: {\n EMAIL: email,\n },\n ...config,\n }).then((info) => {\n return { ...info, birth: (info && info.birth) || '' };\n });\n}\n\nexport function getCurrentUserInfo(config) {\n return network(`/newApi/user`, null, config);\n}\n\nexport function login(params) {\n return network('/newApi/auth/login', LoginParams.create(params).toJSON(), {\n method: 'post',\n });\n}\n\nexport function logout(token) {\n return network('/newApi/auth/logout', null, {\n // checkValidate: network.checkCodeEqual__200,\n method: 'post',\n headers: {\n token: token,\n },\n });\n}\n\nexport function register(params) {\n return network('/newApi/auth/register', RegisterParams.create(params).toJSON(), {\n method: 'post',\n });\n}\n\nfunction loginThenGetUser(info, loginSuccess) {\n return login({\n // accesstoken: info.accesstoken,\n email: info.email,\n password: info.password,\n type: info.type || 'local',\n }).then((res) => {\n loginSuccess && loginSuccess(res.auth);\n return res.user;\n // return getUserInfo(info.email);\n });\n}\n\nfunction registerThenLogin(params, loginSuccess) {\n return register(params).then(() => loginThenGetUser(params, loginSuccess));\n}\n\nfunction loginWithGoogle(access_token, loginSuccess) {\n return loginThenGetUser(\n {\n email: '',\n password: access_token, // 这个 password 是 google登录后返回的access_token\n type: 'google',\n },\n loginSuccess\n );\n}\n\nexport const RegisterParams = types\n .model({\n // accesstoken: '',\n email: '',\n password: '',\n type: 'local',\n role: 'client',\n address: '',\n firstname: '',\n lastname: '',\n imgurl: '',\n phone: '',\n })\n .actions((self) => ({\n fullWithGoogle(googleProfileObj) {\n // self.accesstoken = googleProfileObj.googleId;\n self.email = googleProfileObj.email;\n self.password = googleProfileObj.googleId;\n self.type = 'google';\n self.firstname = googleProfileObj.givenName;\n self.lastname = googleProfileObj.familyName;\n self.imgurl = googleProfileObj.imageUrl;\n\n return self;\n },\n }));\n\nexport const LoginParams = types.model({\n // accesstoken: types.string,\n email: types.string,\n password: types.string,\n type: '',\n});\n\nexport const User = types.compose(\n Person,\n Location,\n types\n .model({\n // accesstoken: '',\n imgurl: '',\n password: '',\n role: '',\n type: '',\n id: 0,\n code: '', // 邀请活动码\n })\n .views((self) => ({\n // 需要完善资料\n get needReplenish() {\n return !self.phone;\n },\n get firstCharacter() {\n return self.firstname[0] || self.lastname[0] || 'T';\n },\n }))\n);\n\nexport const Auth = types\n .model({\n token: '',\n tokenType: '',\n user: types.maybe(User),\n isHttpLoading: false,\n })\n .views((self) => ({\n get tokenStr() {\n return self.tokenType + ' ' + self.token;\n },\n get tokenConfig() {\n return {\n headers: { Authorization: self.tokenStr },\n };\n },\n get isLogin() {\n return !!(self.token && self.user && self.user.email && !self.user.needReplenish);\n },\n }))\n .actions((self) => ({\n _resetLoading() {\n self.isHttpLoading = false;\n },\n\n _doLoginAction(action) {\n self.isHttpLoading = true;\n return action.then(self.setUser, (err) => {\n self._resetLoading();\n return reject(err);\n });\n },\n\n _checkReplenish(res) {\n return checkReplenish().then(() => res);\n },\n\n _publishLoginEvent(res) {\n return tryDispatchDomainEvent(LoginSuccessEvent, null, rootStore).then(() => res);\n },\n\n setAuth(auth) {\n self.token = auth.access_token || '';\n self.tokenType = auth.token_type || '';\n rootStore.storage.set('gauth', pick(self, ['token', 'tokenType']));\n },\n\n setUser(user) {\n self.user = user || {};\n self._resetLoading();\n return user;\n },\n\n getCurrentUser(config) {\n return self._doLoginAction(getCurrentUserInfo(config));\n },\n\n getUser(config) {\n return self._doLoginAction(getUserInfo(self.user ? self.user.email : '', config));\n },\n\n putUser(res) {\n return self._doLoginAction(\n putUserInfo(res, {\n headers: { Authorization: self.tokenStr },\n }).then(() => self.getUser(self.tokenConfig))\n );\n },\n\n logout() {\n if (!self.token) return Promise.resolve();\n\n return self._doLoginAction(logout(self.token).then(() => self.setAuth({})));\n },\n\n login(res) {\n return self\n ._doLoginAction(loginThenGetUser(res, self.setAuth))\n .then(self._checkReplenish)\n .then(self._publishLoginEvent);\n },\n\n registerThenLogin(res) {\n return self\n ._doLoginAction(registerThenLogin(res, self.setAuth))\n .then(self._checkReplenish)\n .then(self._publishLoginEvent);\n },\n\n loginWithGoogle(access_token) {\n return self\n ._doLoginAction(loginWithGoogle(access_token, self.setAuth))\n .then(self._checkReplenish)\n .then(self._publishLoginEvent);\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { AjaxDescribe, AjaxDescribeHelper, createAjaxDescribeMixins } from '@common/utils/describe-helper';\n\nconst SystemSettingServer = createAjaxDescribeMixins(\n 'ajaxDescribe',\n AjaxDescribe,\n function () {\n this.createAjaxDescribe(\n 'ajaxDescribe',\n () => [`/newApi/system/configuration`, null, { useAuth: true }],\n (state) => this.updateFromAjaxJson(state.data)\n );\n },\n 'load'\n);\n\nconst UnknownArray = types.optional(types.array(types.frozen()), []);\nconst Deposit = types.model({\n money: 25000,\n reserveTime: 72,\n});\n\nfunction extendPhoneNumber(phoneNumber) {\n // eslint-disable-next-line no-new-wrappers\n phoneNumber = new String(phoneNumber);\n phoneNumber.connector = `${phoneNumber.slice(0, 3)}-${phoneNumber.slice(3, 6)}-${phoneNumber.slice(6)}`;\n phoneNumber.bracket = `(${phoneNumber.slice(0, 3)})-${phoneNumber.slice(3, 6)}-${phoneNumber.slice(6)}`;\n phoneNumber.tel = `tel:${phoneNumber.connector}`;\n return phoneNumber;\n}\n\nconst SystemSetting = types.compose(\n AjaxDescribeHelper,\n SystemSettingServer,\n types\n .model({\n phoneNumber: '6478121067', // 联系方式\n sellCustomPhoneNumber: '6478121067', // 用户要卖车时,联系公司的哪个电话\n\n interestrate: 5.99,\n deposit: types.optional(Deposit, {}),\n coverage: UnknownArray,\n gap: UnknownArray,\n protection: UnknownArray,\n })\n .views((self) => ({\n get PHONE_NUMBER() {\n return extendPhoneNumber(self.phoneNumber);\n },\n get SELL_CUSTOM_PHONE_NUMBER() {\n return extendPhoneNumber(self.sellCustomPhoneNumber);\n },\n }))\n .actions((self) => ({\n updateFromAjaxJson(json) {\n const data = { ...json };\n\n if (json) {\n ['protection', 'coverage', 'gap'].forEach((key) => {\n if (json[key]) {\n data[key] = json[key].slice(0).sort((a, b) => a.sort - b.sort);\n }\n });\n }\n\n Object.assign(self, {\n ...data,\n deposit: {\n ...self.deposit,\n ...data.deposit,\n },\n });\n },\n }))\n);\n\nexport default SystemSetting;\n","import { types } from 'mobx-state-tree';\nimport { generateDescribeModule } from '@common/utils/describe-helper';\nimport { createAjaxDescribe } from '@common/utils/createAjaxDescribe';\nimport Coupon from '../Coupon/Coupon';\nimport couponServer from '@/services/coupon';\n\nconst CouponRecord = types.model({\n code: '',\n coupon: Coupon,\n id: 0,\n inviter_name: '',\n});\n\nconst InvitationCouponListServer = generateDescribeModule('ajaxDescribe', [\n createAjaxDescribe,\n couponServer.fetchMyRewardsCoupon,\n {\n concurrent: true,\n onDataUpdate(data) {\n this.updateFromAjaxJson(data);\n },\n },\n]);\n\nconst InvitationCouponList = types.compose(\n InvitationCouponListServer,\n types\n .model({\n list: types.optional(types.array(CouponRecord), []),\n })\n .views((self) => ({\n get availableList() {\n return self.list.map((record) => record.coupon);\n },\n }))\n .actions((self) => ({\n updateFromAjaxJson(data) {\n self.list = data || [];\n },\n getMostFavorableCoupon() {\n return self.list[0]?.coupon;\n },\n getMostFavorableRecord() {\n return self.list[0];\n },\n }))\n);\n\nexport default InvitationCouponList;\n","import { defineDomainEvent } from '@common/utils/describe-helper';\n\n// 用户登入时触发(从缓存恢复登录)\nconst LoginSigninEvent = defineDomainEvent('login.signin');\nexport default LoginSigninEvent;\n","import { getEnv, types } from 'mobx-state-tree';\nimport { EventBus } from 'domain-events';\nimport URLParse from 'url-parse';\nimport UI from '@common/models/UI';\nimport Car from './Car';\nimport { createSingletonPattern } from '@common/utils';\nimport { safeAssign } from '@common/utils/assignment';\nimport Emiiter from '@common/libs/network/emiiter';\nimport Collection from '@common/models/Collection';\nimport Storage from '@common/models/Storage/Storage';\nimport SharedMemory from '@common/models/SharedMemory';\nimport { Auth } from './Auth';\nimport { FeeList } from './Fee/Fee';\nimport SystemSetting from './SystemSetting';\nimport { CarOrderList } from '@/models/CarOrder';\nimport InvitationCouponList from './Invitation/InvitationCouponList';\nimport LoginSuccessEvent from './Auth/events/login-success.domain-event';\nimport { tryDispatchDomainEvent } from '@common/utils/describe-helper';\nimport LoginSigninEvent from './Auth/events/login-signin.domain-event';\n// import { checkReplenish } from '@/controller/loginController';\n\nconst resolveModal = createSingletonPattern(() => import('@common/helper/modal').then((e) => e.default));\nconst loadInvitationController = createSingletonPattern(() =>\n import('@/controller/invitationController').then((e) => e.default)\n);\nconst loadChannelController = createSingletonPattern(() =>\n import('@/controller/channelController').then((e) => e.default)\n);\nconst loadLoginController = createSingletonPattern(() => import('@/controller/loginController').then((e) => e.default));\n\nEventBus.prototype.globalDispatch = function (event) {\n // publishH5Event;\n return this.dispatch(event);\n};\n\nconst defaultObject = {};\nconst RootStore = types.compose(\n types\n .model({\n ui: UI,\n car: Car,\n collection: Collection,\n auth: Auth,\n storage: types.optional(Storage, defaultObject),\n sessionStorage: types.optional(Storage, { useSessionStorage: true }),\n sharedMemory: types.optional(SharedMemory, defaultObject),\n entryQuery: types.frozen(),\n\n orderList: CarOrderList,\n invitationCouponList: InvitationCouponList,\n\n feeList: FeeList,\n systemSetting: types.optional(SystemSetting, defaultObject),\n })\n .actions((self) => ({\n async init() {\n self._initBusinessEventHub();\n self._initDomainEventHub();\n self.entryQuery = URLParse(window.location.href, true).query;\n\n // 恢复登录\n safeAssign(self.auth, self.storage.get('gauth') || {});\n if (self.auth.token) {\n try {\n await self.auth.getCurrentUser({\n ignore401: true,\n ...self.auth.tokenConfig,\n });\n\n if (self.auth.user.id) {\n tryDispatchDomainEvent(LoginSigninEvent, null, self);\n }\n } catch (e) {}\n }\n\n await Promise.all([self.feeList.load().toPromise(), self.systemSetting.load().toPromise()]);\n\n loadChannelController().then((channelController) => channelController.getTicket());\n\n loadInvitationController()\n .then((invitationController) => invitationController.fetchTicketInfo())\n .then(function (res) {\n if (res && res.id) {\n loadLoginController().then((loginController) => loginController.show({ autoJump: false }));\n }\n });\n },\n runInAction(fn) {\n fn.call(self);\n },\n _initBusinessEventHub() {\n self.businessEventHub = new Emiiter();\n },\n\n _initDomainEventHub() {\n const { eventBus } = getEnv(self);\n if (!eventBus) return;\n\n // 将一些业务关注的领域事件暴露出去\n (function () {\n [].forEach(function (DomainEvent) {\n const name = DomainEvent.eventName();\n eventBus.register(function (res) {\n self.businessEventHub.emit(name, res);\n }, name);\n });\n })();\n\n // 登录相关\n (function () {\n // 登入(恢复登录)成功时\n eventBus.register(function () {\n // 要求完成必填信息,先做成非阻塞\n // checkReplenish();\n }, LoginSigninEvent.eventName());\n\n // 通过表单登录成功时\n eventBus.register(function () {\n // 先做成非阻塞\n async function runIt() {\n // 绑定优惠券\n await loadInvitationController().then((invitationController) => invitationController.bindTicket());\n\n // 要求完成必填信息\n // await checkReplenish();\n\n // 查询优惠券\n self.invitationCouponList\n .load()\n .toPromise()\n .then(() => {\n const coupon = self.invitationCouponList.getMostFavorableCoupon(1);\n if (coupon) {\n return Promise.all([\n import('@/widgets/Coupon/CouponArrivalRemind').then((e) => e.default),\n resolveModal(),\n ]).then(([CouponArrivalRemind, modal]) =>\n modal.alert(\n function ({ onChange }) {\n return onChange(false)} />;\n },\n {\n floatHead: true,\n dialogClass: 'coupon-arrival-remind-dialog',\n }\n )\n );\n }\n });\n }\n\n runIt();\n }, LoginSuccessEvent.eventName());\n })();\n },\n }))\n);\n\nexport default RootStore;\n","import { createContext } from 'react';\nimport { EventBus } from 'domain-events';\nimport createUseMST from '@common/utils/create-use-mst';\nimport RootStore from './Root';\nimport Car from './Car';\nimport Collection from '@common/models/Collection';\nimport SharedMemory from '@common/models/SharedMemory';\nimport { Auth } from './Auth';\n// import { DEV_MODE, MOCK_MODE } from '@/env';\n\nconst rootStoreContext = createContext({});\nconst rootStore = RootStore.create(\n {\n ui: {},\n car: Car.create(),\n collection: Collection.create({ list: [] }),\n auth: Auth.create(),\n sharedMemory: SharedMemory.create(),\n feeList: {},\n orderList: { list: [] },\n invitationCouponList: { list: [] },\n },\n {\n eventBus: new EventBus(),\n }\n);\n\nexport function RootStoreProvider({ children }) {\n return {children};\n}\n\nexport async function initRootStore() {\n await rootStore.init();\n\n // if (MOCK_MODE) {\n // await rootStore.auth.login({\n // accesstoken: '',\n // email: 'zhiqinyigu@gmail.com',\n // password: DEV_MODE ? '103512599255808536233' : '103512599255808536233',\n // type: 'local',\n // });\n // }\n\n return rootStore;\n}\n\nconst useRootStore = createUseMST(() => rootStoreContext);\n\nexport { rootStore };\nexport default useRootStore;\n","import { useContext } from 'react';\nimport { parseExp } from './';\n\n/**\n * 是一个mobx-state-tree store全局化\n * @param {String|Function|Object} getContext 提取store的部分信息\n * @returns Object\n * @example\n * // src/store/index.js\n * const rootStoreContext = Reaact.createContext({});\n * const rootStore = store.create({});\n * const useRootStore = createUseMST(() => rootStoreContext);\n *\n * function RootStoreProvider({ children }) {\n * return {children};\n * }\n *\n * // src/index.js\n * \n * \n * \n *\n * // src/App.js\n * const rootStore = useRootStore();\n */\nexport default function createUseMST(getContext) {\n return function useMst(mapStateToProps) {\n const store = useContext(getContext());\n\n switch (typeof mapStateToProps) {\n case 'undefined':\n return store;\n\n case 'string': \n return parseExp(store, mapStateToProps);\n \n case 'function':\n return mapStateToProps(store);\n\n default:\n if (!Array.isArray(mapStateToProps)) {\n throw new Error('mapStateToProps 有效值是字符串、函数或数组之一');\n }\n\n return mapStateToProps.reduce((acc, key) => {\n acc[key] = parseExp(store, key);\n return acc;\n }, {})\n }\n }\n}","import { pick } from 'lodash';\nimport { types } from 'mobx-state-tree';\nimport { validate } from 'superstruct';\n\nexport const formInputValue = types.optional(types.maybeNull(types.union(types.number, types.string)), '');\n\nexport function createValidate(getSchema) {\n return types.model({}).views((self) => ({\n get validateResult() {\n const Schema = getSchema();\n return validate(pick(self, Object.keys(Schema.schema)), Schema);\n },\n get isValid() {\n return typeof self.validateResult[0] === 'undefined';\n },\n }));\n}\n","import { defrac } from '@common/utils';\nimport { types } from 'mobx-state-tree';\n\n// 费用类型,影响计算\n// less是EXTRA,税率2%。\n// const less = 600;\n// const a = 3000 - 600;\n// console.log(a + a*2/100) // 直接叠加,总价再计税\n\n// less是DEDUCTION,税率2%。\n// const less = 600;\n// const tLess = (less - less*2/100) // 自身先计税\n// const a = 3000 - tLess;\n// console.log(a + a*2/100) // 再叠加,再总价计税\nexport const FEE_TYPE = {\n EXTRA: 0, // 额外费用,正常叠加后再计税。\n DEDUCTION: 1, // 抵扣金额,在总价税前参与计算,且自身计税后,再参与叠加。\n PRE: 2, // 预付款。在总价税后参与计算。\n DISCOUNT: 3, // 优惠类型的抵扣金额,在总价税后参与计算。\n};\nconst FeeType = types.union(...Object.keys(FEE_TYPE).map((key) => types.literal(FEE_TYPE[key])));\n\nexport const preTaxTypeList = [FEE_TYPE.EXTRA, FEE_TYPE.DEDUCTION]; // 税前费用\nexport const originalCostTypeList = [FEE_TYPE.EXTRA, FEE_TYPE.DEDUCTION]; // 原始费用,加起来是一个订单的总价\n\nexport function isBeforeTax(type) {\n return preTaxTypeList.includes(type);\n}\n\nexport function isOriginalCost(type) {\n return originalCostTypeList.includes(type);\n}\n\n// 费用的备注分类\nexport const FEE_TAXTYPE = {\n DEFAULT: 0,\n TAXES: 1, // 税费。\n HST: 2,\n PST: 3,\n GST: 4,\n};\nconst TaxType = types.union(...Object.keys(FEE_TAXTYPE).map((key) => types.literal(FEE_TAXTYPE[key])));\n\n// 费用的计算类型\nexport const FEE_VALUETYPE = {\n VALUE: 0, // 固定值。\n RATIO: 1, // 费率。\n};\nconst Type = types.union(...Object.keys(FEE_VALUETYPE).map((key) => types.literal(FEE_VALUETYPE[key])));\n\n// 费用的归属\nexport const FEE_BELONGTYPE = {\n DEFAULT: 0, // 全局通用\n FINANCE: 1, // 贷款相关费用,选择贷款时才收。\n};\nconst FeeBelongType = types.union(...Object.keys(FEE_BELONGTYPE).map((key) => types.literal(FEE_BELONGTYPE[key])));\n\nexport const FEE_CATEGORYTYPE = {\n OTHER: 0,\n VEHICLE: 1,\n VEHICLE_EXTRA_SERVICE: 2,\n VEHICLE_TRADEIN: 3,\n};\nconst CategoryType = types.union(...Object.keys(FEE_CATEGORYTYPE).map((key) => types.literal(FEE_CATEGORYTYPE[key])));\n\nexport function getFeesValue(list, baseValue, reverse) {\n return list.reduce(function (acc, fee) {\n return acc + (reverse ? -1 : 1) * fee.val(baseValue);\n }, 0);\n}\n\n// 费用实体类\nconst Fee = types\n .model('Fee', {\n id: types.optional(types.number, 0),\n key: '',\n type: types.optional(Type, FEE_VALUETYPE.VALUE), // 固定值类型和费率类型\n feeType: types.optional(FeeType, FEE_TYPE.EXTRA), // 费用计算类型,抵扣、叠加或预付费\n belongType: types.optional(FeeBelongType, FEE_BELONGTYPE.DEFAULT), // 费用归属,通用费用或贷款额外费用\n taxType: types.optional(TaxType, FEE_TAXTYPE.DEFAULT), // 费用性质类型。通用费用或税费(后面可能重命名为税费类类型)\n categoryType: types.optional(CategoryType, FEE_CATEGORYTYPE.OTHER), // 费用类目。用于前端按类目划分展示\n applyTaxType: types.optional(TaxType, FEE_TAXTYPE.DEFAULT), // 该费用计什么税\n canFinance: 0, // 费用是否能贷款\n name: types.optional(types.string, ''), // 费用名称\n value: types.optional(types.number, 0), // 费用值\n ratio: types.optional(types.number, 0), // 费率\n desc: types.optional(types.string, ''), // 费用描述,前端用于tooltips。\n detail: types.optional(types.string, ''), // 费用详情,前端展示。\n })\n .views((self) => ({\n get isDeductionFee() {\n return [FEE_TYPE.DEDUCTION, FEE_TYPE.DISCOUNT].includes(self.feeType);\n },\n get isPreFee() {\n return self.feeType === FEE_TYPE.PRE;\n },\n get isTaxes() {\n return !!self.taxType;\n },\n // 费用是否能贷款\n get isCanFinance() {\n return self.canFinance || self.isTaxes || self.isDeductionFee;\n },\n val(val) {\n const vector = self.isDeductionFee || self.isPreFee ? -1 : 1;\n return (\n (self.type === FEE_VALUETYPE.VALUE ? self.value : defrac(parseFloat(self.ratio) / 100, 6) * val || 0) * vector\n );\n },\n valueStr(val) {\n return self.val(val) / 100;\n },\n }))\n .actions((self) => ({\n setValue(val) {\n self.value = val;\n },\n toValue(val) {\n return self.val(val);\n },\n toValueStr(val) {\n return self.valueStr(val);\n },\n updateFromAjaxJson(data) {\n if (data) {\n Object.assign(self, data);\n }\n },\n }));\n\nconst FeeList = types\n .model({\n list: types.optional(types.array(Fee), () => []),\n })\n .views((self) => ({\n get globalFees() {\n return self.list.filter((fee) => fee.feeType !== FEE_TYPE.PRE && fee.belongType === FEE_BELONGTYPE.DEFAULT);\n },\n get taxes() {\n return self.globalFees.filter((fee) => fee.isTaxes);\n },\n get commonFees() {\n return self.globalFees.filter((fee) => !fee.isTaxes);\n },\n }))\n .actions((self) => ({\n updateFromAjaxJson(data) {\n self.list = data || [];\n },\n }));\n\nexport { Fee, FeeList };\n","import { of, from } from 'rxjs';\nimport { getEnv, getParent, types } from 'mobx-state-tree';\nimport { DomainEvent } from 'domain-events';\nimport { isEqual } from 'lodash';\nimport mitt from 'mitt';\nimport { createStatusDataDescribeForMST } from './createStatusDataDescribe';\nimport { createAjaxDescribeForMST } from './createAjaxDescribe';\nimport { createAjaxPagingDescribe, createAjaxPagingDescribeForMST } from './createAjaxPagingDescribe';\nimport { packPromise } from '.';\n\nfunction hookFactory(hook, self) {\n return function (field, resolveParams, onUpdate, options, ...args) {\n if (typeof onUpdate === 'string') {\n const syncKey = onUpdate;\n onUpdate = (state) => (self[syncKey] = state.data);\n }\n\n const ajaxDescribe = hook(\n resolveParams,\n onUpdate,\n {\n runInAction: self.runInAction.bind(self),\n getProxy: () => self[field],\n ...options,\n },\n ...args\n );\n\n self[field] = ajaxDescribe;\n\n if (!self._observables_) {\n self._observables_ = [];\n }\n\n self._observables_.push(ajaxDescribe);\n };\n}\n\n// 基于mobx的方案\n// 这一块注释代码是原来的一种实现方式,保留仅仅用作思想启发,没有其他用途和影响。\n/* import { autorun, makeAutoObservable, runInAction, toJS } from 'mobx';\nfunction updateStateForMobx(state, changeState) {\n runInAction(() => Object.assign(state, changeState));\n}\n\nupdateStateForMobx.init = makeAutoObservable;\ncreateStatusStream.defaultSetState = updateStateForMobx;\n\nconst baseKey = ['data', 'loading', 'error'];\nexport const AjaxDescribe = types.custom({\n name: 'AjaxDescribe',\n fromSnapshot(value) {\n return JSON.parse(value);\n },\n toSnapshot(value) {\n return JSON.stringify(value);\n },\n isTargetType(value) {\n if (value) {\n for (let i = 0; i < baseKey.length; i++) {\n if (!(baseKey[i] in value)) return false;\n }\n\n return true;\n }\n\n return false;\n },\n getValidationMessage(value) {\n if (/^-?\\d+\\.\\d+$/.test(value)) return ''; // OK\n return `'${value}' doesn't look like a valid decimal number`;\n },\n});\n// createStatusStream内部\nonUpdate(state.data, state);\nautorun(() => onUpdate(toJS(state).data, state)); */\n\n// 基于mobx-state-tree的方案\nconst functionType = types.custom({\n name: 'functionType',\n fromSnapshot(val) {\n return val;\n },\n toSnapshot() {\n return undefined;\n },\n isTargetType(value) {\n return value instanceof Function;\n },\n getValidationMessage(value) {\n return value + ' not is functionType';\n },\n});\n\nexport const AjaxDescribe = types\n .model('AjaxDescribe', {\n data: types.frozen(),\n loading: types.boolean,\n error: types.frozen(),\n inited: types.boolean,\n initedAsync: types.boolean,\n timeStamp: types.number,\n next: types.maybe(functionType),\n unsubscribe: types.maybe(functionType),\n })\n .actions((self) => ({\n afterCreate() {\n // 一般不会关注它的json,因为要序列化,functionType不会被保存。如果导出的json意外用于其它地方的赋值,将因为缺少functionType相关内容而发生错误。\n self.$treenode.getSnapshot = function () {};\n },\n }));\n\nexport const StatusDescribe = AjaxDescribe;\n\nexport const AjaxPagingDescribe = types.compose(\n types.model('AjaxPagingDescribe', {\n pageNo: 0,\n maxPage: 0,\n reload: true,\n pager: types.maybe(functionType),\n nextPage: types.maybe(functionType),\n }),\n AjaxDescribe\n);\n\nexport const AjaxDescribeHelper = types.model({}).actions((self) => ({\n beforeDestroy() {\n if (self._observables_) {\n self._observables_.splice(0).forEach((desc) => desc.unsubscribe());\n }\n },\n\n runInAction(fn) {\n return fn();\n },\n\n createStatusDataDescribe: hookFactory(createStatusDataDescribeForMST, self),\n createAjaxDescribe: hookFactory(createAjaxDescribeForMST, self),\n createAjaxPagingDescribe: hookFactory(createAjaxPagingDescribeForMST, self),\n}));\n\nexport function createAjaxDescribeMixins(key, Type, createAjaxDescribe, actionKey, lazyActionKey) {\n let preArgs;\n return types\n .model({\n [key]: types.maybe(Type),\n })\n .actions((self) => ({\n afterCreate() {\n createAjaxDescribe.call(self);\n if (!self._describeEmitter) {\n self._describeEmitter = mitt();\n }\n },\n beforeDestroy() {\n self[key].unsubscribe();\n },\n ...(actionKey\n ? {\n [actionKey](res) {\n const stream = self[key].next(res);\n\n stream.subscribe(() => {\n self._describeEmitter.emit(key + '_loaded');\n self._describeEmitter.all.delete(key + '_loaded');\n });\n\n return stream;\n },\n }\n : {}),\n\n ...(lazyActionKey\n ? {\n [lazyActionKey](timeSpan, ...args) {\n const ajaxDescribe = self[key];\n\n if (typeof timeSpan === 'undefined') {\n timeSpan = 5000;\n }\n\n if (\n ajaxDescribe.inited &&\n !ajaxDescribe.error &&\n Date.now() - ajaxDescribe.timeStamp < timeSpan &&\n isEqual(args, preArgs)\n ) {\n return of(ajaxDescribe.data);\n }\n\n preArgs = args;\n return self[actionKey](...args);\n },\n }\n : {}),\n }));\n}\n\nexport function defineDomainEvent(name) {\n return class CustomDomainEvent extends DomainEvent {\n static eventName() {\n return name;\n }\n\n constructor(aEventPayload) {\n super(name, aEventPayload);\n }\n };\n}\n\nexport function tryDispatchDomainEvent(DomainEvent, res, store) {\n let val;\n\n try {\n // 发布领域事件\n const { eventBus } = getEnv(store);\n if (eventBus) {\n val = eventBus.globalDispatch(new DomainEvent(res));\n }\n } catch (e) {\n // console.error(e);\n }\n\n return packPromise(val);\n}\n\nfunction getLastUpdatedStream(key = 'ajaxDescribe') {\n const self = this;\n const { loading, inited } = self[key];\n\n if (!loading && inited) {\n return of(self);\n } else {\n return from(new Promise((cb) => self._describeEmitter.on(`${key}_loaded`, cb)));\n }\n}\n\nfunction noop() {}\nfunction _onUpdate() {\n if (this.error) {\n console.error(this.error);\n }\n}\nfunction getCreateAjaxDescribeMixinsMethods(actionKey, lazyActionKey, key) {\n let preArgs;\n const self = this;\n return {\n ...(actionKey\n ? {\n [actionKey](res) {\n const stream = self[key].next(res);\n stream.subscribe(() => {\n self._describeEmitter.emit(key + '_loaded');\n self._describeEmitter.all.delete(key + '_loaded');\n });\n\n return stream;\n },\n\n ...(lazyActionKey\n ? {\n [lazyActionKey](timeSpan, ...args) {\n const ajaxDescribe = self[key];\n\n if (typeof timeSpan === 'undefined') {\n timeSpan = 5000;\n }\n\n if (\n timeSpan &&\n ajaxDescribe.inited &&\n !ajaxDescribe.error &&\n Date.now() - ajaxDescribe.timeStamp < timeSpan &&\n isEqual(args, preArgs)\n ) {\n return of(ajaxDescribe.data);\n }\n\n preArgs = args;\n return self[actionKey](...args);\n },\n }\n : null),\n }\n : null),\n };\n}\n\n/**\n * 动态生成一个Describe的类型\n * @param {Function} createDescribe 生成Describe的工厂函数。已知有createAjaxDescribe,createAjaxPagingDescribe和createStatusDataDescribe。\n * @param {Function} subStreamFactory createDescribe的第1个参数。\n * @param {Function|Object} config 为object时代表createDescribe的第3个参数。\n * 为function时分2种情况:\n * subStreamFactory为function时,代表是config.onDataUpdate。如果不需要设置onDataUpdate以外的字段时方便使用。但更多是因为方便迁移历史包袱。\n * subStreamFactory为falsy值时,代表是构造createDescribe参数列表的函数。一般当createDescribe的多个参数需要用到this,或者公用一个闭包作用域时用到。\n * @param {Function|Object} config.needData 是否需要data字段。如果data内容会拷贝到parent,那么建议始终为false,这样toJSON时就减少不必要的数据冗余。\n * 默认是false。createDescribe是createAjaxPagingDescribe时,默认为true。在createAjaxPagingDescribe使用false的话,应该配合onEffect,或者自行实现concatData。\n * @param {Function|Object} pagingConfig createDescribe的第4个参数。为function时,用parent作为this求值。\n * @returns\n */\nconst EMPTY = {};\nexport function generateDescribeType(createDescribe, subStreamFactory, config, pagingConfig) {\n const isPagingDescribe = createAjaxPagingDescribe === createDescribe;\n return types.snapshotProcessor(\n types.optional(\n types\n .model({\n data: types.frozen(),\n error: types.frozen(),\n loading: false,\n inited: false, // 是否已经初始化过\n initedAsync: false, // 为了后面addListener的listener能读取到“正确/合适”的inited,创建一个延迟变更的状态\n // next: types.maybe(functionType),\n // unsubscribe: types.maybe(functionType),\n ...(isPagingDescribe\n ? {\n pageNo: 0,\n maxPage: 0,\n totalCount: 0,\n reload: true,\n // setParams: types.maybe(functionType),\n // nextPage: types.maybe(functionType),\n // getPagerParams: types.maybe(functionType),\n // pager: types.maybe(functionType),\n // load: types.maybe(functionType),\n // changePageSize: types.maybe(functionType),\n }\n : {}),\n })\n .actions((self) => ({\n afterAttach() {\n const parent = getParent(self);\n let _subStreamFactory = subStreamFactory;\n let _config = config;\n let _pagingConfig;\n\n // typeof _config === 'function'时,根据有无subStreamFactory而代表onDataUpdate或paramsGenerator\n if (typeof _config === 'function' && !_subStreamFactory) {\n [_subStreamFactory, _config, _pagingConfig] = _config.call(parent, self);\n }\n\n pagingConfig = _pagingConfig || pagingConfig;\n const configObj = Object.assign(\n { needData: isPagingDescribe },\n typeof _config === 'function' ? null : _config\n );\n const onDataUpdate = typeof _config === 'function' ? _config : (_config && _config.onDataUpdate) || noop;\n\n createDescribe(\n _subStreamFactory.bind(parent),\n null,\n {\n ...configObj,\n _status: self,\n setState(state, changState) {\n self.runInAction(function () {\n (configObj.setState || Object.assign)(state, changState);\n });\n },\n onDataUpdate(data) {\n if (!configObj || !configObj.needData) {\n self.runInAction(function () {\n self.data = Array.isArray(data) ? Array.from({ length: data.length }) : EMPTY; // 总是给个空对象,让能如期工作\n });\n }\n\n return onDataUpdate.call(parent, data);\n },\n },\n typeof pagingConfig === 'function' ? pagingConfig.call(parent) : pagingConfig\n );\n\n self._onUpdate = _onUpdate;\n },\n beforeDestroy() {\n self.unsubscribe();\n },\n // next: noop,\n // unsubscribe: noop,\n runInAction(fn) {\n return fn();\n },\n })),\n {}\n ),\n {\n // from instance to snapshot\n postProcessor() {\n // 一般不会关注它的json,因为要序列化,functionType不会被保存。如果导出的json意外用于其它地方的赋值,将因为缺少functionType相关内容而发生错误。\n },\n }\n );\n}\n\nexport function generateDescribeModule(key, describeTypeArgs, actionKey = 'load', lazyActionKey) {\n return types\n .model({\n [key]: generateDescribeType(...describeTypeArgs),\n })\n .actions((self) => {\n return {\n afterCreate() {\n if (!self._describeEmitter) {\n self._describeEmitter = mitt();\n self.getLastUpdatedStream = getLastUpdatedStream;\n }\n },\n beforeDestroy() {\n self[key].unsubscribe();\n },\n ...getCreateAjaxDescribeMixinsMethods.call(self, actionKey, lazyActionKey, key),\n };\n });\n}\n","import { each } from 'lodash';\nexport { parseExp } from './assignment';\n\nconst NO = {};\n\n/*\n * 类型判断\n */\nvar class2type = {},\n toString = class2type.toString;\n\n// Populate the class2type map\neach('Boolean Number String Function Array Date RegExp Object Error'.split(' '), function (name) {\n class2type['[object ' + name + ']'] = name.toLowerCase();\n});\n\n/**\n * 获取传递过来的参数的数据类型\n * @param {*} obj 需要检测的变量\n * @return {String}\n */\nexport function type(obj) {\n return obj == null ? String(obj) : class2type[toString.call(obj)] || 'object';\n}\n\n/**\n * 根据一个对象生成一个状态格式的class\n * @param {String} baseName class名\n * @param {Object} obj 状态信息\n * @param {String} connector 状态连接符\n * @returns String\n * @example\n * buildSuffixClassName('btn', {md: true, lg: true, xl: false});\n * // => 'btn--md btn--lg'\n */\nexport function buildSuffixClassName(baseName, obj, connector = '--') {\n const list = Object.keys(obj);\n return list.reduce((acc, key) => {\n if (obj[key]) return (acc += `${baseName}${connector}${key} `);\n\n return acc;\n }, '');\n}\n\nexport function defrac(input, n = 0) {\n const factor = Math.pow(10, n);\n return Math.round(input * factor) / factor;\n}\n\n/**\n * withFn\n * @memberof function\n * @param {function} fn\n * @returns {function}\n */\nexport function withFn(fn = function () {}) {\n if (typeof fn !== 'function') throw new Error(fn + ' not a function');\n const fnList = [];\n const result = function (...rest) {\n return fnList.reduce((next, _fn) => {\n return _fn.bind(this, next, ...rest);\n }, fn.bind(this, ...rest))();\n };\n result.registerFn = (...rest) => fnList.push(...rest);\n return result;\n}\n\n/**\n * 循环一个固定逻辑,取一个符合条件的值\n * @memberof object\n * @param ori 初始值\n * @category _lodash\n * @param {Function} next 获取下一个值\n * @param {Function} filter 过滤逻辑\n *\n * @example\n * loopWith($span, node => node.parentNode, node => node.className === 'App')\n */\n\nexport function loopWith(ori, next, filter) {\n while (!filter(ori)) {\n ori = next(ori);\n }\n\n return ori;\n}\n\nexport function mergeFn(fn1, fn2) {\n return function () {\n fn1 && fn1.apply(this, arguments);\n return fn2 && fn2.apply(this, arguments);\n };\n}\n\n/**\n * 缓存计算结果\n * @memberof function\n * @param {function} getVal\n * @returns {any}\n */\nexport function createSingletonPattern(getVal) {\n let value = NO;\n const fn = function () {\n if (value === NO) value = getVal.apply(null, arguments);\n return value;\n };\n fn.clear = function (val) {\n value = NO;\n return val;\n };\n fn.clear.reject = function (e) {\n fn.clear();\n return Promise.reject(e);\n };\n\n return fn;\n}\n\nexport function getErrorMessage(error) {\n return typeof error === 'string' ? error : error.message || error.msg;\n}\n\nexport function navigatorBack() {\n window.history.back();\n}\n\nexport function setRef(ref, val) {\n if (ref) {\n if (typeof ref === 'function') {\n ref(val);\n } else if ('current' in ref) {\n ref.current = val;\n }\n }\n}\n\nexport function packPromise(val) {\n return typeof val === 'object' && 'then' in val ? val : Promise.resolve(val);\n}\n\nexport function tryJsonParse(str) {\n try {\n return JSON.parse(str);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * 尝试执行一个函数,并返回其结果\n * @param {Function} fn\n * @param {Object} scope fn的this\n * @returns\n */\nexport function tryInvoke(fn, scope) {\n try {\n return fn.call(scope || null);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n}\n\nexport function waitTime(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n}\n","import { flattenDeep, get, groupBy } from 'lodash';\nimport { cloneElement } from 'react';\n\nfunction toArray(children) {\n if (!Array.isArray(children)) {\n return [children];\n }\n\n return children;\n}\n\nfunction flattenChildren(children) {\n if (\n children &&\n typeof children === 'object' &&\n children.type &&\n typeof children.type.toString !== 'undefined' &&\n children.type.toString().indexOf('react.fragment') !== -1\n ) {\n children = flattenChildren(children.props.children);\n }\n\n if (Array.isArray(children)) {\n return children.map(flattenChildren);\n }\n\n return children;\n}\n\nfunction renderItem(item, args) {\n if (typeof item === 'function') {\n return item.apply(null, args);\n } else {\n return item;\n }\n}\n\n/**\n * 有时候props.children可能是一个函数,这时候不能直接用toVueSlots,需要先将其渲染。\n * @param {Function|Array|Object} slot\n * @returns\n * @example\n * \n * {(props) => (<>\n *
默认内容
,\n *
标题
,\n *
脚部
\n * )}\n *
\n *\n * // Modal的渲染函数:\n * render({children}) {\n * const scope = {};\n * const $slots = toVueSlots(safeRender(children, scope));\n * }\n */\nexport function safeRender(slot) {\n const args = Array.prototype.slice.call(arguments, 1);\n\n if (Array.isArray(slot)) {\n return slot.map((item) => renderItem(item, args));\n } else {\n return renderItem(slot, args);\n }\n}\n\n/**\n * 将react组件的children转成vue slot的格式。\n * @param {Array|Object} children react渲染对象或包含react渲染对象的数组\n * @returns Object\n * @example\n * \n *
默认内容
\n *
标题
\n *
脚部
\n *
\n *\n * // Modal的渲染函数:\n * render({children}) {\n * const $slots = toVueSlots(children);\n *\n * return (\n *
\n *
\n * {$slots.title}\n *
\n *
\n * {$slots.default}\n *
\n *
\n * {$slots.footer}\n *
\n * get(item, 'props.slot') || 'default');\n\n for (var key in group) {\n const vaildChildren = group[key]\n .filter((c) => c !== null && typeof c !== 'undefined')\n .map((c) => {\n return c.props && c.props.slot ? cloneElement(c, { slot: undefined }) : c;\n });\n\n if (vaildChildren.length <= 1) {\n group[key] = vaildChildren[0];\n } else {\n group[key] = vaildChildren;\n }\n }\n\n return group;\n}\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport '../../style/base/_grids.less';\nimport './style.css';\n\nconst numReg = /^\\d+$/;\nconst singleNumReg = /-?\\d+(\\.?\\d+)?/;\nfunction arithmetic(cssVal, fn) {\n const val = parseFloat(cssVal);\n return (cssVal + '').replace(singleNumReg, fn(val));\n}\n\nfunction divided(cssVal, ratio) {\n return arithmetic(cssVal, (val) => val / ratio);\n}\n\nexport function Row(props) {\n const { tag, reverse, style } = props;\n const Wrapper = tag || 'div';\n const cProps = { space: divided(props.space, 2) };\n const space = divided(props.space, -2);\n\n return (\n \n {React.Children.map(props.children, (item) => (item ? React.cloneElement(item, cProps) : null))}\n \n );\n}\n\nRow.propTypes = {\n tag: PropTypes.string,\n middle: PropTypes.bool,\n reverse: PropTypes.bool,\n};\n\nexport function Col(props) {\n const { tag, space, omnibearingSpace, style } = props;\n const Wrapper = tag || 'div';\n const className = ['size', 'sm', 'md', 'lg', 'xl']\n .map((key) => {\n const val = props[key];\n return val ? `pure-u${key === 'size' ? '' : '-' + key}-${val}${numReg.test(val) ? '-24' : ''}` : '';\n })\n .filter(Boolean)\n .concat(['pure-u', props.className])\n .join(' ');\n\n return (\n \n {props.children}\n \n );\n}\n","import { define, optional, validate } from 'superstruct';\n\nfunction noop(val) {\n return val;\n}\n\nconst notEmptyReg = /\\S/;\n\nexport function isNotEmpty(value) {\n const type = typeof value;\n\n if (Array.isArray(value)) {\n return !!value.length;\n }\n\n if (type === 'number' || type === 'boolean') {\n value = isNaN(value) ? '' : value + '';\n }\n\n if (type === 'string') {\n return notEmptyReg.test(value);\n }\n\n return !!value;\n}\n\n/**\n * 基于现有的struct,前置一个验证逻辑,并返回一个新的struct。\n * 类似于官方的refine,但refine时后置一个验证逻辑。\n * @param {Struct} struct 原struct\n * @param {Function} check 验证逻辑\n * @param {Boolean} useAnd 用验证逻辑和原struct使用“且”的关系。\n * @param {Function} getValue 在验证之前,对value进行转换\n * @returns Struct 一个新的Struct\n */\nexport function preReload(struct, check, useAnd, getValue) {\n return define(struct.type, (value) => {\n let result = check(getValue ? getValue(value) : value);\n\n if (useAnd ? result === true : result !== true) {\n const res = validateStruct(value, struct);\n result = res === true || res.message;\n }\n\n return result;\n });\n}\n\nexport function required(struct, message, getValue) {\n return preReload(struct, (value) => isNotEmpty(value) || message || `${struct.type} is required`, true, getValue);\n}\n\nexport function allowEmpty(struct, getValue) {\n return preReload(struct, (value) => typeof value === 'string' && value.trim() === '', false, getValue);\n}\n\n/**\n * 定义一个表单验证类,同时加上optional,required的验证风格。\n * optional:该值为空时,视为有效值。\n * required:该值为空时,错误信息是emptyMsg。\n *\n * @param {String} name struct name。\n * @param {Strut|Funtion} structOrFn 定义验证逻辑,可以是Struct或者验证函数 (value) => boolean。\n * @param {string} invalidMsg 验证不通过时的错误信息\n * @param {string} emptyMsg struct.required验证风格用,值为空时的错误信息。\n * @param {Function} getValue 在验证之前,对value进行转换\n * @returns Struct\n * @returns Struct.optional\n * @returns Struct.required\n */\nexport function defineFormValidate(name, structOrFn, invalidMsg, emptyMsg, getValue) {\n getValue = getValue || noop;\n\n const struct = define(name, function (value) {\n let result;\n value = getValue(value);\n\n if (typeof structOrFn === 'function') {\n result = structOrFn(value);\n } else {\n const res = validateStruct(value, structOrFn);\n result = res === true || res.message;\n }\n\n return result === true || (typeof invalidMsg === 'function' ? invalidMsg(value) : invalidMsg);\n });\n\n struct.optional = allowEmpty(struct, getValue);\n struct.required = required(struct, emptyMsg, getValue);\n struct.maybe = optional(struct.optional);\n return struct;\n}\n\nexport function validateStruct(value, struct) {\n const error = validate(value, struct)[0];\n return error || true;\n}\n","import { forwardRef } from 'react';\nimport './style.less';\n\nconst Icon = forwardRef(function Icon({ className, name, style, onClick }, ref) {\n return (\n \n );\n});\n\nexport default Icon;\n","import { useState, useRef, useLayoutEffect, useEffect } from 'react'\nimport { useStaticRef } from './useStaticRef';\n\n/**\n * 类似于vue的watch API。\n * @param {Array} val 监听的依赖项数组。即一个包含多个state/prop的数组。\n * @param {Function} fn 值变化时的回调\n * @param {Object} optionsOrFn 配置对象,或返回一个返回配置对象的函数\n * @param {Boolean} optionsOrFn.immediate 回调是否在初始化时立即调用一次\n * @param {Boolean} optionsOrFn.useLayout 回调是否在useLayoutEffect下执行,默认在useEffect下执行。\n * @example\n * useWatch([index, props.show], function([index, show], [oldIndex, oldShow]) {\n * return {\n * index,\n * show,\n * oldIndex,\n * oldShow\n * }\n * })\n */\nexport default function useWatch(val, fn, optionsOrFn) {\n const [{ immediate, useLayout }] = useState(optionsOrFn || {});\n const firstRef = useRef();\n const fnRef = useStaticRef(fn);\n const prevRef = useRef([]);\n\n (useLayout ? useLayoutEffect : useEffect)(() => {\n if (immediate || firstRef.current) {\n fnRef.current(val, prevRef.current);\n }\n\n prevRef.current = val;\n firstRef.current = true;\n }, val);\n}\n","import { from } from 'rxjs';\nimport network from '../libs/network';\nimport { createStatusDataDescribe, createStatusDataDescribeForMST } from './createStatusDataDescribe';\n\nexport function omitErudaRequest(err) {\n delete err.config;\n delete err.request;\n return Promise.reject(err);\n}\n\nfunction packNetwork(pr) {\n // ajax error时有携带request,eruda编辑了XMLHttpRequest的原型链之类,给request带了个erudaRequest,\n // erudaRequest._xhr又是request本身,造成循环引用。这造成一些JSON.stringify的地方会报错,如vue-data-model的vue类型的$toValue。\n return pr.catch(omitErudaRequest);\n}\n\nfunction networkToObservable(params) {\n return typeof params.then === 'function' ? from(packNetwork(params)) : from(packNetwork(network(...params)));\n}\n\n/**\n * 术语:\n * MST:mobx-state-tree。\n * model: mobx-state-tree的实例。由types.model({...})创建\n *\n * 背景:\n * 在MST直接使用network编写业务逻辑会简单易懂,但随着功能或交互要变得更完善,我们可能对这个ajax请求的关注点会变得越来越多,需要创建的状态就会越来越多。\n * 例如是否在loading,请求的响应数据,请求的错误错误,甚至这是一个分页请求,我们还需要保存当前页码等等。\n * 再进一步,如果要继续编写控制逻辑,我们可能会继续用到rxjs,并肯定需要定义subject来控制调用network...\n *\n * 本工具函数就是致力于统筹一个请求的状态和行为(方法),让model层尽量的干净。\n * 由于MST的工作原理和机制,要实施起来有点麻烦,已经有个AjaxDescribeHelper的model来尽量减少模板代码。\n * 而本实现代码量不多,但是理解起来可能并不容易,文档看起来也可能比较晦涩。\n * 所以先看example和注释可能会比较容易理解。\n *\n * @param {Function} resolveParams network的参数工厂,函数签名是:(res) => [url, params?, config?]。\n * 内部实现:network(...resolveParams(res))。\n *\n * @example\n * const Carlist = types\n * .model({\n * ajaxDescribe: AjaxDescribe,\n * list: types.array(Car),\n * })\n * .actions((self) => {\n * return {\n * afterCreate() {\n * // 这里MST并没有进行直接赋值,而是将值frozen,内部在通过遍历之类初始化self.ajaxDescribe。\n * self.ajaxDescribe = createAjaxDescribeForMST(\n * (res) => ['/api/car/list', res], // 必要参数1:传给network的参数列表,\n * // onUpdate: 我们的list是一个复杂type,所以需要派生出来。\n * (state) => {\n * self.list = state.data;\n * },\n * null, // postConnect\n * null, // preConnect\n * null, // init\n * {\n * runInAction: self.runInAction.bind(self), // 必要参数2:我们内部需要更新self.ajaxDescribe,但是更新model state必须是在action进行\n * getProxy: () => self.ajaxDescribe, // 必要参数3:前面说到MST并没有进行直接赋值,所以我们必须取得原state,有更新时对其进行Object.assign(state, change);\n * }\n * );\n * },\n *\n * runInAction(fn) {\n * return fn();\n * },\n *\n * load() {\n * self.ajaxDescribe.next({id: 123}).toPromise().then(state => {//...dosomething})\n * }\n * };\n * });\n *\n * const carlist = Carlist.create();\n * carlist.load();\n */\n\n\n/**\n * 将state的error分离到reject\n * @param {Object} state createStatusDataDescribe的返回值\n * @example\n * state.next().toPromise().then(separateReject).then(onSuccess, toastNetworkError);\n */\nexport function separateReject(state) {\n if (state.error) return Promise.reject(state.error);\n return state;\n}\n\nexport function createAjaxDescribeForMST(resolveParams, ...other) {\n return createStatusDataDescribeForMST((res) => networkToObservable(resolveParams(res)), ...other);\n}\n\nexport function createAjaxDescribe(resolveParams, ...other) {\n return createStatusDataDescribe((res) => networkToObservable(resolveParams(res)), ...other);\n}\n","import { useRef } from 'react';\n\nexport function useStaticRef(val) {\n const ref = useRef(val);\n ref.current = val;\n return ref;\n}\n","import { forwardRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport useRootStore from '@/models';\nimport { safeRender, toVueSlots } from '@common/utils/slots';\nimport { useEventCallback } from '@common/hooks/official-hack';\nimport Spinner from '@common/components/Spinner';\nimport { calcEventRelativePos, Ripple } from '../Ripple';\nimport './style.less';\n\nconst defaultClass = 'fs20 text-bold';\nconst defaultClassForMobile = 'fs16 text-bold';\n\nconst Button = forwardRef(function Button(\n {\n className,\n baseClass,\n extraClassName,\n tag,\n border,\n loading,\n size,\n color,\n theme,\n readOnly,\n persistContentWhenLoading,\n onClick,\n onPrevent,\n children,\n ...attrs\n },\n ref\n) {\n const matchMedia = useRootStore('ui.matchMedia');\n const $slots = toVueSlots(safeRender(children));\n const Wrap = tag || 'button';\n const [spawnData, setSpawnData] = useState({});\n\n const clickHandler = useEventCallback(\n (e) => {\n if (!readOnly && !loading) {\n setSpawnData(calcEventRelativePos(e));\n onClick && onClick(e);\n } else {\n onPrevent && onPrevent(e);\n }\n },\n [readOnly, loading, onClick]\n );\n\n return (\n \n \n {loading ?
{$slots.loading || }
: null}\n {loading && persistContentWhenLoading ? (\n
{$slots.default}
\n ) : (\n $slots.default\n )}\n \n );\n});\n\nButton.propTypes = {\n border: PropTypes.bool, // 展示线条样式的按钮\n size: PropTypes.string,\n color: PropTypes.string,\n loading: PropTypes.bool,\n readOnly: PropTypes.bool,\n persistContentWhenLoading: PropTypes.bool, // laoding也展示原内容,避免展示Spinner时button布局塌陷。\n};\n\nButton.defaultProps = {\n persistContentWhenLoading: true,\n};\n\nexport default Button;\n","function isFlattenable(array) {\n return Array.isArray(array);\n}\n\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n if (array == null) {\n return result;\n }\n\n for (const value of array) {\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n result.push(...value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport function flattenDeep(array) {\n const length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, Infinity) : [];\n}\n\nexport function flatten(array) {\n const length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n","import { flattenDeep } from './flatten';\n\n/**\n * @example\n * toNamePath([undefined, null, 0], 'name'); // [0, 'name']\n */\nexport function toNamePath(formField, name) {\n return flattenDeep([formField, name]).filter((str) => str !== '' && typeof str !== 'undefined' && str !== null);\n}\n\n/**\n * 设置/计算上下文值。相当于lodash的set/get\n * @param {*} context 上下文对象。\n * @param {Array|String} exp 字段表达式,以'.'和'[\\d+]'分割成字段的访问堆栈\n * @param {*} [val] 要设置的值,不传时为get模式。\n *\n * @example\n * var data = {\n * asd: {qwe: 123}\n * };\n *\n * parseExp(data, 'asd.qwe', 789);\n */\nexport function parseExp(obj, exp, val) {\n let context = obj;\n let last_key;\n const isSet = arguments.length === 3;\n const chain = Array.isArray(exp)\n ? flattenDeep(exp)\n : exp\n .replace(/^\\[(\\d+)\\]/, '$1')\n .replace(/\\[(\\d+)\\]/g, '.$1')\n .split('.');\n\n if (isSet) {\n last_key = chain[chain.length - 1];\n }\n\n for (let i = 0; i < chain.length - (isSet ? 1 : 0); i++) {\n if (!context) return;\n context = context[chain[i]];\n }\n\n if (isSet) {\n if (context) {\n context[last_key] = val;\n }\n return obj;\n } else {\n return context;\n }\n}\n\n/**\n * 对一个深层次的路径进行赋值。\n * @param {Object} obj\n * @param {Array|String} name 赋值的路径\n * @param {*} value 要设置的值\n * @param {Boolean} iteration 是否使用Object.assign\n * @example\n * const obj = {a: {b: [{c: 123, d: 'abc'}]}};\n * deepAssign(obj, ['a', 'b', 0, 'c'], 456); // {a: {b: [{c: 456, d: 'abc'}]}}\n * deepAssign(obj, ['a', 'b', 0], { qwe: '-----' }, true); // {a: {b: [{c: 456, d: 'abc', qwe: '-----'}]}}\n * deepAssign(obj, ['a', 'b', 0], { qwe: '-----' }); // {a: {b: [{ qwe: '-----'}]}}\n */\nexport function deepAssign(obj, name, value, iteration, options) {\n let { get, set } = options || {};\n if (!get) {\n get = function (key) {\n return obj[key];\n };\n }\n\n if (!set) {\n set = function (val) {\n Object.assign(obj, val);\n };\n }\n\n const path = toNamePath(name);\n const key = path[0];\n const hasKey = !!path.length;\n const secondPath = path.slice(1);\n const firstObj = get(key);\n\n function isObj(obj) {\n return typeof obj === 'object' && !Array.isArray(obj);\n }\n\n if (secondPath.length) {\n const valueWrap = parseExp(\n firstObj,\n secondPath,\n iteration && isObj(parseExp(firstObj, secondPath)) ? { ...parseExp(firstObj, secondPath), ...value } : value\n );\n\n set(hasKey ? { [key]: valueWrap } : valueWrap);\n } else {\n value = iteration && isObj(firstObj) ? { ...firstObj, ...value } : value;\n set(\n hasKey\n ? {\n [key]: value,\n }\n : value\n );\n }\n}\n\n/**\n * 将data与obj的交集成员合并到obj中\n * @param {Object} obj\n * @param {Object} data\n * @returns { Object } obj\n */\nexport function safeAssign(obj, data) {\n Object.keys(data).forEach((key) => {\n if (key in obj) {\n obj[key] = data[key];\n }\n });\n\n return obj;\n}\n","import PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport './style.less';\n\nconst Container = ({ className, style, global, children }) => (\n
\n {children}\n
\n);\n\nfunction resolveCssVal(val) {\n return +val ? val + 'px' : 'px';\n}\n\nconst SContainer = styled(Container)`\n ${({ size, border }) =>\n size\n ? `\n width: ${resolveCssVal(size)};\n height: ${resolveCssVal(size)};\n .lds-ring__inner {\n width: 100%;\n height: 100%;\n margin: 0;\n border-width: ${resolveCssVal(border || 2)};\n }`\n : ''}\n`;\n\nexport default function Spinner(props) {\n return (\n \n
\n
\n
\n
\n
\n );\n}\n\nSpinner.propTypes = {\n global: PropTypes.bool, // 使用.lds-ring--global样式\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // 自定义Spinner大小\n border: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // 自定义Spinner边框大小\n};\n","import { useEffect, useRef } from 'react';\n\n/**\n * 返回一个ref,标识当前组件是否已经销毁。通常用于组件销毁后,阻止异步操作结束时进行setState。\n * @returns React.refObject\n */\nexport default function useDestroyRef() {\n const destroyRef = useRef(false);\n\n useEffect(() => {\n return () => {\n destroyRef.current = true;\n };\n }, []);\n\n return destroyRef;\n}\n","const isProduction = process.env.NODE_ENV === 'production';\n\nexport const IS_LOCALHOST = !!process.env.REACT_APP_PORT; // 本地开发环境\nexport const IS_TEST = process.env.REACT_APP_ENV === 'test'; // test环境\nexport const IS_UAT = process.env.REACT_APP_ENV === 'uat'; // uat环境\nexport const IS_DEV = process.env.REACT_APP_ENV === 'dev'; // dev环境\nexport const IS_PROD = !process.env.REACT_APP_ENV && isProduction; // 正式环境\nexport const DEV_MODE = !isProduction && true; // 开发环境\nexport const MOCK_MODE = DEV_MODE && true; // 开发环境mock模式\n","import { superstructResolver } from '@hookform/resolvers/superstruct';\nimport { object } from 'superstruct';\nimport {\n FirstName,\n LastName,\n Address,\n Province,\n PostalCode,\n DatePicker,\n CitySelect,\n Email,\n Password,\n Phone,\n} from '@common/utils/verification';\n\nconst now = new Date();\n\n/* 罗列业务表单控件定义,内容是FormItem的props */\nexport const presetControls = {\n firstname: {\n name: 'firstname',\n label: 'First Name',\n required: true,\n col: { lg: 12 },\n },\n\n lastname: {\n name: 'lastname',\n label: 'Last Name',\n required: true,\n col: { lg: 12 },\n },\n\n birth: {\n name: 'birth',\n controlType: 'date',\n valueFormat: 'YYYY-MM-DD',\n maximumDate: {\n year: now.getFullYear(),\n month: now.getMonth() + 1,\n day: now.getDate(),\n },\n label: 'Date of Birth (MM/DD/YYYY)',\n required: true,\n },\n\n address: {\n name: 'address',\n label: 'Stree Address',\n },\n\n city: {\n name: 'city',\n label: 'City',\n // controlType: 'select',\n // valueKey: 'value',\n // options: [\n // { value: 'New York', label: 'New York' },\n // { value: 'ShangHai', label: 'ShangHai' },\n // ],\n },\n\n province: {\n name: 'province',\n label: 'Province',\n col: { lg: 12 },\n },\n\n postal: {\n name: 'postal',\n label: 'Postal Code',\n col: { lg: 12 },\n },\n email: {\n name: 'email',\n label: 'E-Mail',\n required: true,\n },\n phone: {\n name: 'phone',\n label: 'Phone Number',\n },\n phoneRequired: {\n name: 'phone',\n label: 'Phone Number',\n required: true,\n },\n password: {\n name: 'password',\n type: 'password',\n label: 'Password',\n required: true,\n },\n confirmPassword: {\n name: 'confirmPassword',\n type: 'password',\n label: 'Confirm Password',\n required: true,\n col: { size: 12 },\n },\n};\n\n/* 定义预设主题,声明该主题需要的表单控件 */\nexport const presetTheme = {\n financing: {\n field: ['firstname', 'lastname', 'phone', 'email', 'birth', 'address', 'city', 'province', 'postal'],\n resolver: (options) =>\n superstructResolver(\n object({\n firstname: FirstName.required,\n lastname: LastName.required,\n phone: Phone.required,\n email: Email.required,\n birth: DatePicker.required,\n address: Address.optional,\n city: CitySelect.optional,\n province: Province.optional,\n postal: PostalCode.optional,\n ...options,\n })\n ),\n },\n login: {\n field: ['email', 'password'],\n resolver: (options) =>\n superstructResolver(\n object({\n email: Email.required,\n password: Password.required,\n ...options,\n })\n ),\n },\n register: {\n field: [\n mergeItem('firstname', { coverLabel: true, col: { size: 12 } }),\n mergeItem('lastname', { coverLabel: true, col: { size: 12 } }),\n presetControls['phoneRequired'],\n 'email',\n mergeItem('password', { coverLabel: true, col: { size: 12 } }),\n mergeItem('confirmPassword', { coverLabel: true }),\n ],\n resolver: (options) =>\n superstructResolver(\n object({\n firstname: FirstName.required,\n lastname: LastName.required,\n phone: Phone.required,\n email: Email.required,\n password: Password.required,\n ...options,\n })\n ),\n },\n\n paymentRegister: {\n field: [\n 'email',\n mergeItem('password', { coverLabel: true, col: { size: 12 } }),\n mergeItem('confirmPassword', { coverLabel: true }),\n mergeItem('firstname', { coverLabel: true, col: { size: 12 } }),\n mergeItem('lastname', { coverLabel: true, col: { size: 12 } }),\n ],\n resolver: (options) =>\n superstructResolver(\n object({\n firstname: FirstName.required,\n lastname: LastName.required,\n email: Email.required,\n password: Password.required,\n ...options,\n })\n ),\n },\n\n personal: {\n field: [\n mergeItem('firstname', { coverLabel: true, col: { md: 12 } }),\n mergeItem('lastname', { coverLabel: true, col: { md: 12 } }),\n mergeItem('birth', { coverLabel: true, col: { md: 12 } }),\n ],\n },\n\n contact: {\n field: [\n mergeItem('phoneRequired', { coverLabel: true, col: { md: 12 } }),\n mergeItem('email', { coverLabel: true, col: { md: 12 }, readOnly: true }),\n mergeItem('address', { coverLabel: true, col: { md: 12 } }),\n mergeItem('city', { coverLabel: true, col: { md: 12 } }),\n mergeItem('province', { coverLabel: true, col: { md: 12 } }),\n mergeItem('postal', { coverLabel: true, col: { md: 12 } }),\n ],\n },\n\n replenish: {\n field: [\n mergeItem('firstname', { coverLabel: true, col: { size: 12 } }),\n mergeItem('lastname', { coverLabel: true, col: { size: 12 } }),\n presetControls['phoneRequired'],\n ],\n resolver: (options) =>\n superstructResolver(\n object({\n firstname: FirstName.required,\n lastname: LastName.required,\n phone: Phone.required,\n ...options,\n })\n ),\n },\n};\n\npresetTheme['profile'] = {\n field: presetTheme['personal'].field.concat(presetTheme['contact'].field),\n resolver: (options) =>\n superstructResolver(\n object({\n firstname: FirstName.required,\n lastname: LastName.required,\n birth: DatePicker.optional,\n\n phone: Phone.required,\n email: Email.required,\n address: Address.optional,\n city: CitySelect.optional,\n province: Province.optional,\n postal: PostalCode.optional,\n ...options,\n })\n ),\n};\n\n// 基于已有的presetControls,合并配置生成一个新的\nexport function mergeItem(key, item) {\n return Object.assign({}, presetControls[key] || {}, item);\n}\n\nexport function mapToItem(list) {\n return list.map((item) => (typeof item === 'string' ? presetControls[item] : item));\n}\n","import { useRef, useCallback, useEffect } from 'react'\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nexport function useEventCallback(fn, dependencies) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n\n useEffect(() => {\n ref.current = fn;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fn, ...dependencies]);\n\n return useCallback(function() {\n const fn = ref.current;\n return fn.apply(this, arguments);\n }, [ref]);\n}\n","import { get } from 'lodash';\nimport { types, getParent, getEnv } from 'mobx-state-tree';\nimport Mdsp from './Mdsp';\nimport { getFeesValue } from './Fee/Fee';\n\nexport const carStatusOptions = [\n { value: 0, label: 'Initial' }, // 起始状态\n { value: 10, label: 'In stock' }, // 已入库\n { value: 20, label: 'Coming soon' }, // 待上架\n { value: 30, label: 'Selling' }, // 销售中\n { value: 40, label: 'Sold pending' }, // 已预定\n { value: 50, label: 'In process' }, // 手续中\n { value: 60, label: 'Sold' }, // 已售出\n];\n\nconst ReportImage = types.compose(types.model({ url: '' }));\n\nconst CarField = types\n .model({\n id: 0,\n uuid: '',\n name: '',\n bodytype: '',\n carfaxlink: '',\n conditions: '',\n description: '',\n discount: 0,\n doors: '',\n drivetrain: '',\n engine: '',\n exteriorcolours: '',\n fueltype: '',\n hightlightfeature: '',\n horsepower: '',\n imgurl: '',\n images_small: '',\n images_main: '',\n images_all: types.optional(types.array(types.string), []),\n inspectdate: '', // sellOut: inspectdate === 'true'\n inspector: '',\n interiorcolours: '',\n isbooked: false,\n issold: false,\n isOneOwner: 0, // 一手车\n noAccident: 0, // 无事故\n make: '',\n mdspprice: 0,\n mechanicreport: '',\n mileage: '',\n model: '',\n owner: '',\n printedkeys: '',\n powerType: 0,\n prodyear: types.optional(types.union(types.string, types.number), 0),\n saleprice: 0,\n specificationreport: '',\n status: 0,\n stocknumber: '',\n torque: '',\n transmission: '',\n trim: '',\n vrlink: '',\n warranty: '',\n pv: 0,\n like: 0,\n report_images: types.optional(types.array(ReportImage), []),\n exteriorColor: '',\n interiorColor: '',\n\n ev: types.optional(types.frozen(), {}),\n maintenance: types.optional(types.frozen(), {}),\n })\n .views((self) => ({\n get isEv() {\n return self.powerType === 1;\n },\n get trimTitle() {\n return self.name; // + (self.trim ? ' ' + self.trim : '');\n },\n get coverImageSmall() {\n return self.images_small; // `${network.CDNADDR}/${self.uuid}/small.png`;\n },\n get coverImage() {\n return self.images_main; // `${network.CDNADDR}/${self.uuid}/mainpic.png`;\n },\n get driveTrainValue() {\n return self.isEv ? get(self.ev, 'specifications.driveTrain') || '' : self.drivetrain;\n },\n get motorValue() {\n return (self.isEv && get(self.ev, 'specifications.motor')) || '';\n },\n get discountPriceStr() {\n return self.discountPrice / 100;\n },\n get discountPrice() {\n return self.saleprice - self.discount;\n },\n get originalPrice() {\n return self.saleprice;\n },\n get originalPriceStr() {\n return self.originalPrice / 100;\n },\n get isComingSoon() {\n return self.status < 30;\n },\n get isBooked() {\n return self.status >= 40 && self.status < 50;\n },\n get isSold() {\n return self.status >= 50;\n },\n\n get canBuy() {\n return !(self.status !== 30 || self.sellOut);\n // return !(self.issold || self.isbooked || self.inspectdate === 'true');\n },\n\n get mileageStr() {\n return self.mileage + 'km';\n },\n\n get INIT_JSON() {\n return INIT_JSON;\n },\n }))\n .actions((self) => ({\n toData() {\n const res = {\n ...self.toJSON(),\n };\n\n delete res.isAjaxLoading;\n delete res.ajaxError;\n return res;\n },\n }));\n\nconst Car = types.compose(\n CarField,\n types\n .model({\n // 附加model\n mdsp: types.optional(Mdsp, {}),\n })\n .views((self) => ({\n get omnibusFee() {\n let rootStore;\n try {\n rootStore = getParent(self);\n } catch (e) {\n rootStore = getEnv(self);\n }\n\n const { feeList } = rootStore;\n return self.discountPrice + getFeesValue(feeList ? feeList.globalFees : [], self.discountPrice);\n },\n get totalLienAmount() {\n let rootStore;\n try {\n rootStore = getParent(self);\n } catch (e) {\n rootStore = getEnv(self);\n }\n\n const { feeList } = rootStore;\n\n return (\n self.omnibusFee -\n (feeList\n ? getFeesValue(\n feeList.globalFees.filter((fee) => !fee.isCanFinance),\n self.discountPrice\n )\n : 0)\n );\n },\n }))\n .actions((self) => {\n return {\n $assign(res) {\n Object.keys(res).forEach((key) => {\n if (key in self.INIT_JSON) {\n self[key] = res[key];\n }\n });\n },\n\n updateFromAjaxJson(json) {\n Object.keys(self.INIT_JSON).forEach((key) => {\n if (key in json) {\n self[key] = json[key];\n } else {\n self[key] = self.INIT_JSON[key];\n }\n });\n },\n };\n })\n);\n\nexport const INIT_JSON = Car.create().toJSON();\n\nexport default Car;\n","import { types } from 'mobx-state-tree';\nimport { object } from 'superstruct';\nimport { createValidate, formInputValue } from './util';\nimport { Address, City, PostalCode, Province } from '../../utils/verification';\n\n// 地址信息\nconst Location = types.compose(\n types.model({\n address: formInputValue,\n city: formInputValue,\n province: formInputValue,\n postal: formInputValue,\n }),\n createValidate(() => Location.verification)\n);\n\nLocation.verification = object({\n address: Address.required,\n city: City.required,\n province: Province.required,\n postal: PostalCode.required,\n});\n\nexport default Location;\n","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { cloneElement, useState, useEffect, useLayoutEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport Icon from '@/widgets/Icon';\nimport { safeRender, toVueSlots } from '../../utils/slots';\nimport useWatch from '../../hooks/useWatch';\nimport './style.less';\n\nfunction createElement(style) {\n const div = document.createElement('div');\n Object.assign(div.style, style);\n document.body.appendChild(div);\n return div;\n}\n\nconst options = {\n strategy: 'fixed',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: ({ popper }) => {\n return [0, -popper.height / 2];\n },\n },\n },\n ],\n};\n\nfunction Toast({ children, elmRef, toastRef, noDefaultClassName, show, hide, theme, closeBtn }) {\n const [popperElement, setPopperElement] = useState(null);\n const [virtualReference, setVirtualReference] = useState(null);\n const [elm, setElm] = useState(null);\n const { styles, attributes, update } = usePopper(virtualReference, popperElement, options);\n const $slots = toVueSlots(safeRender(children, { show, hide }));\n\n useEffect(() => {\n if (!virtualReference) setVirtualReference(createElement({ position: 'fixed', top: '50%', left: '50%' }));\n return () => {\n virtualReference && virtualReference.parentNode === document.body && document.body.removeChild(virtualReference);\n };\n }, [virtualReference]);\n\n useWatch(\n [update, children],\n function ([update]) {\n update && update();\n },\n { useLayout: true }\n );\n\n useLayoutEffect(() => {\n elm && elm.classList.add('c-toast--show');\n }, [elm]);\n\n return $slots.default\n ? createPortal(\n {\n setPopperElement(el);\n elmRef && elmRef(el);\n }}\n className=\"c-toast-wrap\"\n style={styles.popper}\n {...attributes.popper}\n >\n {!!closeBtn && }\n\n {cloneElement($slots.default, {\n ref: (el) => {\n setElm(el);\n toastRef && toastRef(el);\n },\n className: classNames(\n !noDefaultClassName ? `c-toast ${theme ? 'c-toast--' + theme : ''}` : '',\n $slots.default.props.className\n ),\n })}\n
,\n document.body\n )\n : null;\n}\n\nToast.propTypes = {\n closeBtn: PropTypes.bool, // 展示右上角关闭按钮\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n elmref: PropTypes.object, // react.refobject\n toastref: PropTypes.object, // react.refobject\n noDefaultClassName: PropTypes.bool, // 声明根元素不添加默认className\n show: PropTypes.func, // 透传prop。本组件为纯展示性质,不具备show/hide交互,这些交互应该交由父组件实现并按需透传到children。\n hide: PropTypes.func, // 透传,同上。\n theme: PropTypes.string, // 主题。目前只有fade和default。可以翻阅style.less了解。\n};\n\nexport default Toast;\n","import React, { isValidElement } from 'react';\nimport { makeObservable, observable, computed, action } from 'mobx';\nimport { forceToArray } from '@/app/translator';\nimport { UIController } from '../../frontend-common/controller/UIController';\nimport Toast from '@common/components/Toast';\nimport Spinner from '@common/components/Spinner';\nimport Button from '@/components/Button';\nimport * as classNames from 'classnames';\n\nfunction checkIsInBody(el) {\n return el && document.body.contains(el);\n}\n\nlet uuid = 0;\n\nclass ToastController extends UIController {\n uuid = 0;\n\n constructor() {\n super();\n\n this.setElm = this.setElm.bind(this);\n\n makeObservable(this, {\n uuid: observable,\n children: computed,\n state: computed,\n show: action,\n hide: action,\n hideNow: action,\n });\n\n this.init();\n }\n\n get state() {\n return {\n children: this.children,\n theme: this.theme,\n closeBtn: this.closeBtn,\n key: this.uuid,\n hide: this.hide.bind(this),\n show: this.show.bind(this),\n };\n }\n\n get children() {\n // eslint-disable-next-line no-unused-expressions\n this.uuid;\n return this.$children;\n }\n\n /**\n * 弹出toast\n * @param {React.Children|Function|String} children 一个react渲染元素或者字符串。函数时为render props,必须返回一个react渲染元素。\n * @param {Object} config 配置\n * @param {Number} config.duration 持续时间,为0时不会自动关闭。默认3000ms。\n * @param {String} config.theme 主题。查阅Toast组件了解更多。\n * @param {Boolean} config.closeBtn 是否需要右上角的关闭按钮\n * @example\n * // 默认3s后关闭\n * toast.show('内容内容');\n *\n * // 自己手动控制关闭\n * toast.show(({ hide }) => (\n *
\n *

Your initialization

\n * \n *
\n * ), {duration: 0});\n */\n show(children, config = {}) {\n let { duration, theme, closeBtn } = config;\n\n clearTimeout(this._timer);\n clearTimeout(this._hideTimer);\n this.hideNow();\n\n this.uuid = ++uuid;\n this.theme = theme;\n this.closeBtn = closeBtn;\n this.$children =\n !children || typeof children === 'function' || isValidElement(children) ? children :
{children}
;\n\n duration = duration === 0 ? 0 : duration || 6000;\n\n if (duration) {\n this._hideTimer = setTimeout(() => this.hide(), duration);\n }\n }\n\n shortcut(options, config) {\n let { containerClassName, icon, title, content, button, renderButton } = options;\n content = typeof content === 'string' ? [content] : forceToArray(content);\n\n return this.show(\n ({ hide }) => (\n
\n {icon && \"\"}\n {title &&

{title}

}\n {content.map((txt, i) => (\n
\n {txt}\n
\n ))}\n {(button && (\n \n )) ||\n (renderButton && renderButton({ hide }))}\n
\n ),\n config\n );\n }\n\n hide() {\n const { $el } = this;\n\n if (checkIsInBody($el)) {\n $el.classList.add('c-toast--hide');\n this._timer = setTimeout(this.hideNow.bind(this), 300);\n }\n }\n\n hideNow() {\n if (checkIsInBody(this.$el)) {\n this.uuid = 0;\n this.setElm(null);\n }\n }\n\n setElm(el) {\n this.$el = el;\n }\n\n render() {\n return this.state.key ? : null;\n }\n}\n\nclass SpinnerController extends ToastController {\n show() {\n clearTimeout(this._timer);\n clearTimeout(this._hideTimer);\n this.hideNow();\n\n this.uuid = ++uuid;\n this.theme = 'fade';\n this.$children = (\n
\n \n
\n );\n }\n}\n\nconst toast = new ToastController();\nconst spinner = new SpinnerController();\n\nexport { ToastController, spinner, toast };\nexport default toast;\n","import { action, makeObservable, observable } from 'mobx';\n\nclass AsyncControll {\n loading = false;\n\n constructor(methods, loadController) {\n this.loadController = function () {\n const pr = loadController();\n let isDone = false;\n\n pr.catch(() => {}).then(() => {\n isDone = true;\n this.setLoading(false);\n });\n\n setTimeout(() => {\n if (!isDone) this.setLoading(true);\n });\n\n return pr;\n };\n\n makeObservable(this, {\n loading: observable,\n setLoading: action,\n });\n\n methods.forEach((key) => this.createHook(key));\n }\n\n setLoading(loading) {\n this.loading = loading;\n }\n\n createHook(name) {\n this[name] = function () {\n const args = arguments;\n return this.loadController().then((controller) => controller[name].apply(controller, args));\n };\n }\n}\n\nconst dialogMethods = ['show', 'hide'];\n\nexport const loginController = new AsyncControll(dialogMethods, () =>\n import('./loginController').then((e) => e.default)\n);\n\nexport const paymentController = new AsyncControll(['open'].concat(dialogMethods), () =>\n import('./paymentController').then((e) => e.default)\n);\n\nexport const collectionController = new AsyncControll(dialogMethods, () =>\n import('./collectionController').then((e) => e.default)\n);\n\nexport const tradeController = new AsyncControll(dialogMethods, () =>\n import('./tradeController').then((e) => e.default)\n);\n","import dayjs from 'dayjs';\nimport { get, find, isEqual } from 'lodash';\n\nexport function getOption(options, value, valueKey = 'value', useEqual) {\n return find(options || [], useEqual ? (val) => isEqual(val[valueKey], value) : { [valueKey]: value }) || '';\n}\n\nexport function getValue(option, valueKey = 'value') {\n return get(option, valueKey);\n}\n\nexport function formatDate(obj) {\n if (!obj || typeof obj !== 'string') return '';\n\n const date = typeof obj === 'string' ? obj : new Date(obj.year, obj.month - 1, obj.day);\n\n return dayjs(date).format('YYYY-MM-DD');\n}\n\nexport function getFieldLabel(options, value, labelKey, valueKey, useEqual) {\n return get(getOption(options, value, valueKey, useEqual), labelKey || 'label') || '';\n}\n","import { useCallback, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport * as classNames from 'classnames';\nimport { lock, unlock } from 'tua-body-scroll-lock';\nimport { safeRender, toVueSlots } from '@common/utils/slots';\nimport useWatch from '@common/hooks/useWatch';\nimport Icon from '@/widgets/Icon';\nimport './style.less';\n\nconst isMobile = /Android|webOS|iPhone|iPad|BlackBerry/i.test(navigator.userAgent);\n\nfunction useScrollLock(need) {\n const needRef = useRef(need);\n const ref = useRef(0);\n const lockScroll = useCallback(function () {\n if (needRef.current && !ref.current) {\n ref.current = 1;\n lock();\n }\n }, []);\n\n const unLockScroll = useCallback(function () {\n if (ref.current) {\n ref.current = 0;\n unlock();\n }\n }, []);\n\n return { lock: lockScroll, unlock: unLockScroll };\n}\n\nexport default function Modal(props) {\n const {\n className,\n bgClass,\n titleClass,\n containerClass,\n dialogClass,\n dialogStyle,\n style,\n value,\n independence,\n noClose,\n closeIcon,\n detachedCloseBtn,\n backdropClose,\n title,\n floatHead,\n mobileLock,\n startAnimation,\n onChange,\n onClose,\n } = props;\n\n const elRef = useRef();\n const [delayValue, setDelayValue] = useState(value);\n const [show, setShow] = useState(startAnimation ? false : value);\n const close = useCallback(() => onChange(false), [onChange]);\n const bgHandler = useCallback(\n function (e) {\n if (e.target.classList.contains('dialog-bg') && backdropClose) {\n close();\n }\n },\n [close, backdropClose]\n );\n\n const { lock, unlock } = useScrollLock(!isMobile || mobileLock);\n const timerRef = useRef();\n const setVisible = useCallback(\n function (value) {\n timerRef.current && clearTimeout(timerRef.current);\n\n if (value) {\n lock();\n setDelayValue(value);\n /* eslint no-unused-expressions: \"off\" */\n } else {\n timerRef.current = setTimeout(() => {\n unlock();\n setDelayValue(false);\n setShow(false);\n onClose && onClose();\n }, 350);\n }\n\n return unlock;\n },\n [lock, unlock, onClose]\n );\n\n useWatch([value], function ([value]) {\n setVisible(value);\n });\n\n useWatch(\n [delayValue],\n function ([delayValue]) {\n if (delayValue) {\n elRef.current.clientWidth;\n setShow(true);\n }\n },\n {\n immediate: startAnimation,\n }\n );\n\n const baseClass = [\n className || '',\n !value || !show ? 'dialog--close' : '',\n noClose ? 'dialog--no-close' : '',\n noClose && !title ? 'dialog--no-head' : '',\n ];\n const classList = classNames(['dialog', dialogClass, independence && 'dialog-independence', ...baseClass]);\n\n const scope = { close };\n const $slots = toVueSlots(safeRender(props.children, scope));\n const footerContent = safeRender($slots.footer, scope);\n\n const dialog = (\n
\n
\n
\n
\n {typeof title === 'undefined' || title === null ? '' : title}\n
\n
\n
\n {closeIcon ? : }\n
\n
\n
\n
\n {safeRender($slots.default, scope)}\n
\n {footerContent &&
{footerContent}
}\n {detachedCloseBtn ? : null}\n
\n
\n );\n\n const body = independence ? (\n dialog\n ) : (\n \n {safeRender($slots.before, scope)}\n {dialog}\n {safeRender($slots.after, scope)}\n \n );\n\n return createPortal(body, document.body);\n}\n\nModal.propTypes = {\n startAnimation: PropTypes.bool, // modal初始化时是否应用起始动画。仅初始化value是true时有效。因为从false到true必定应用过渡动画。\n backdropClose: PropTypes.bool, // 点击背景是否可以关闭模态框。\n className: PropTypes.string, // className。同时加在.dialog-bg和.dialog。\n bgClass: PropTypes.string, // className。加在.dialog-bg。\n style: PropTypes.object, // style。加在.dialog-bg。\n dialogClass: PropTypes.string, // className。加在.dialog。\n dialogStyle: PropTypes.object, // style。加在.dialog。\n titleClass: PropTypes.string, // className。加在模态框标题。\n containerClass: PropTypes.string, // className。加在.dialog__body。\n value: PropTypes.bool, // 控制模态框是否展示。\n mobileLock: PropTypes.bool,\n independence: PropTypes.bool, // 为true时,没有.dialog-bg包裹。\n onChange: PropTypes.func,\n noClose: PropTypes.bool, // 不使用header的关闭按钮\n closeIcon: PropTypes.string, // header的关闭按钮的className\n detachedCloseBtn: PropTypes.string, // className,传该参数时,生成一个跟.dialog__body同级的关闭按钮,用于辅助实现某些布局。\n floatHead: PropTypes.bool, // 为true时,header增加.dialog__head--float className,样式上将脱离文档流。\n title: PropTypes.node, // 模态框title\n};\n","import { observer } from 'mobx-react-lite';\nimport { makeObservable, observable, computed, action, makeAutoObservable } from 'mobx';\nimport { findIndex } from 'lodash';\n\nlet gid = 0;\nconst dynamicComponents = makeAutoObservable({\n list: [],\n\n add(key, render) {\n this.list.push({ key, render });\n },\n\n remove(key) {\n const index = findIndex(this.list, { key });\n if (index !== -1) {\n this.list.splice(index, 1);\n }\n },\n});\n\nexport const DynamicComponentArea = observer(function DynamicComponentArea() {\n return (\n
\n {dynamicComponents.list.map((item) => (\n
{item.render()}
\n ))}\n
\n );\n});\n\nexport class UIController {\n _subscribes = [];\n\n init() {\n const _gid = gid++;\n if (this._isInited) return this;\n\n dynamicComponents.add(_gid, () => this.render());\n this._subscribes.push(() => dynamicComponents.remove(_gid));\n this._isInited = true;\n return this;\n }\n\n render() {}\n\n destroy() {\n this._subscribes.forEach((fn) => fn());\n }\n}\n\nexport class DialogUIController extends UIController {\n value;\n\n constructor(value) {\n super();\n this.value = value;\n\n makeObservable(this, {\n value: observable,\n state: computed,\n onChange: action,\n show: action,\n hide: action,\n });\n }\n\n get state() {\n return {\n ...this._params_,\n value: this.value,\n onChange: this.onChange.bind(this),\n };\n }\n\n onChange(val) {\n this.value = val;\n }\n\n show(params) {\n this._params_ = params;\n this.onChange(true);\n }\n\n hide() {\n this._params_ = null;\n this.onChange(false);\n }\n}\n","import is from './is';\n\n/**\n * 匹配特定选择器且离当前元素最近的祖先元素(也可以是当前元素本身)\n * @param {HTMLElement} node dom node\n * @param {String|Array} rule 选择器或选择器列表。为列表时,匹配到任意一个选择器结果即返回。\n * @returns HTMLElement 匹配到的节点,如果参数rule是数组,则返回一个包含匹配节点和命中的选择器的数组。[node, select]。\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/closest\n * @see https://api.jquery.com/closest/\n * @example\n * closest(e.target, '.close-btn');\n */\nexport default function closest(node, rule) {\n var is_str = typeof rule == 'string',\n result = false,\n val;\n\n if (node) {\n if (is_str) {\n rule = [rule];\n }\n\n do {\n for (var i = 0; i < rule.length; i++) {\n val = rule[i];\n\n if (is(node, val)) {\n result = is_str ? node : [node, val];\n break;\n }\n }\n } while (!result && node && (node = node.parentNode));\n }\n\n return result;\n}","/**\n * behavior定义popper的交互行为,有效值: 'hover', 'click'。\n * content可以作为prop传,也可以作为children slot。\n * children支持function,这样可以访问api自行定义交互。\n *\n * @example\n * \n * {({ setShow, show }) => <>\n *
setShow(!show)}>88888888
\n *
哈啊哈哈时间哈开始打的
\n * }\n *
\n *\n * \n *
88888888
\n *
\n */\nimport * as classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { cloneElement, useEffect, useState, useCallback, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { setRef } from '../../utils';\nimport useWatch from '../../hooks/useWatch';\nimport { safeRender, toVueSlots } from '../../utils/slots';\nimport closest from '../../utils/dom/closest';\nimport './style.less';\n\nlet uuid = 0;\nconst instanceMap = {};\n\nfunction flushGlobalInstance(id, hideFn, outSideWhiteList) {\n if (typeof hideFn === 'undefined') {\n delete instanceMap[id];\n } else {\n instanceMap[id] = [hideFn, outSideWhiteList];\n }\n}\n\ndocument.documentElement.addEventListener('click', function ({ target }) {\n if (!closest(target, '[data-c-popper=true]') && !closest(target, '.c-popper-content')) {\n Object.keys(instanceMap).forEach((key) => {\n const active = instanceMap[key];\n if (active) {\n let [hideFn, outSideWhiteList] = active;\n outSideWhiteList = outSideWhiteList || [];\n\n for (let i = 0; i < outSideWhiteList.length; i++) {\n if (closest(target, outSideWhiteList[i])) return;\n }\n\n hideFn();\n }\n });\n }\n});\n\nfunction useApi(setShow, show, update) {\n const timerRef = useRef(0);\n\n const open = useCallback(() => {\n clearTimeout(timerRef.current);\n setShow(true);\n update && update();\n }, [setShow, update]);\n\n const close = useCallback(() => {\n setShow(false);\n }, [setShow]);\n\n return {\n open,\n close,\n toggle: show ? close : open,\n asyncToggle: useCallback(() => {\n setShow((show) => !show);\n }, [setShow]),\n delayClose: useCallback(\n (timeout) => {\n timerRef.current = setTimeout(close, timeout);\n },\n [close]\n ),\n };\n}\n\nexport default function Popper({\n updatePulse,\n contentClassName,\n value,\n disabled,\n onChange,\n children,\n behavior,\n content,\n options,\n extraOptions,\n delayClose,\n outSideWhiteList,\n keepOpenAtContentHover,\n offset,\n popperStyle,\n ...passthrough\n}) {\n const [id] = useState(() => uuid++);\n const [show, setShow] = useState(!!value);\n\n // 注册全局callback,用于页面点击时关闭popper。\n useWatch(\n [setShow, id, outSideWhiteList],\n function ([setShow, id, outSideWhiteList]) {\n flushGlobalInstance(\n id,\n function () {\n setShow(false);\n },\n outSideWhiteList\n );\n },\n { immediate: true }\n );\n\n // 组件销毁时,解绑callback\n useEffect(() => {\n return () => {\n flushGlobalInstance(id);\n };\n }, [id]);\n\n // 实现受控、非受控功能。\n useWatch([value, show], function ([value, show], [oldValue, oldShow]) {\n if (value !== oldValue) {\n if (value !== show) setShow(value);\n } else if (show !== oldShow) {\n onChange && onChange(show);\n }\n });\n\n const [referenceElement, setReferenceElement] = useState(null);\n const [popperElement, setPopperElement] = useState(null);\n const [arrowElement, setArrowElement] = useState(null);\n\n const modifiers = [{ name: 'arrow', options: { element: arrowElement } }];\n if (offset) {\n modifiers.push({\n name: 'offset',\n options: {\n offset,\n },\n });\n }\n\n const { styles, attributes, update, destroy } = usePopper(\n referenceElement,\n popperElement,\n options || {\n modifiers,\n ...extraOptions,\n }\n );\n\n const api = useApi(setShow, show, update);\n const presetEffect = {\n delayHover: {\n onMouseEnter: api.open,\n onMouseLeave: api.delayClose.bind(api, delayClose),\n },\n hover: {\n onMouseEnter: api.open,\n onMouseLeave: api.close,\n },\n click: {\n onClick: api.toggle,\n },\n focus: {\n onFocus: api.open,\n },\n };\n\n // 手动控制updatePulse,来控制update position。\n // 这在界面变化导致popper停留在原来的位置是很有用。\n useEffect(() => {\n update && update();\n\n return () => {\n destroy && destroy();\n };\n }, [updatePulse, update, destroy]);\n\n const slotScope = {\n setShow,\n show,\n update,\n ...api,\n ...presetEffect,\n $attrs: passthrough,\n };\n const $slots = toVueSlots(safeRender(children, slotScope));\n const preset = presetEffect[behavior] || {};\n const contentPreset =\n behavior === 'hover' || behavior === 'delayHover'\n ? preset\n : keepOpenAtContentHover\n ? {\n onMouseEnter: presetEffect['hover'].onMouseEnter,\n }\n : {};\n\n return (\n <>\n {cloneElement($slots.default, {\n className: classNames($slots.default.props.className, show && !disabled ? 'c-popper c-popper--open' : ''),\n 'data-c-popper': 'true',\n ref(el) {\n setReferenceElement(el);\n setRef($slots.default.ref, el);\n },\n ...preset,\n })}\n {show &&\n !disabled &&\n ReactDOM.createPortal(\n \n {content || $slots.content}\n \n ,\n document.body\n )}\n {$slots.otherPortal && ReactDOM.createPortal($slots.otherPortal, document.body)}\n \n );\n}\n\nPopper.propTypes = {\n updatePulse: PropTypes.any, // 此值变化时,进行一次popper.update()\n contentClassName: PropTypes.string,\n outSideWhiteList: PropTypes.arrayOf(PropTypes.string), // 默认点击popper外部会关闭,这里提供白名单,点击了哪些外部的选择器时,保留popper打开状态\n value: PropTypes.bool,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n behavior: PropTypes.string,\n content: PropTypes.node,\n options: PropTypes.object,\n offset: PropTypes.arrayOf(PropTypes.number),\n delayClose: PropTypes.number, // 延时关闭的时间\n keepOpenAtContentHover: PropTypes.bool,\n};\n\nPopper.defaultProps = {\n delayClose: 50,\n};\n","import PropTypes from 'prop-types';\nimport { useEventCallback } from '@common/hooks/official-hack';\nimport classNames from 'classnames';\nimport Icon from '@/widgets/Icon';\nimport './style.less';\n\nconst Checkbox = function ({\n className,\n trueLabel,\n falseLabel,\n value,\n normalClass,\n activeClass,\n children,\n onChange,\n onClick,\n inputRef,\n}) {\n const isChecked = value === trueLabel;\n const updateVal = useEventCallback(\n function () {\n onChange && onChange(value === trueLabel ? falseLabel : trueLabel, { trueLabel, falseLabel });\n onClick && onClick();\n },\n [onChange, value, trueLabel, falseLabel]\n );\n\n return (\n \n
\n \n
\n {children}\n \n \n );\n};\n\nCheckbox.propTypes = {\n trueLabel: PropTypes.any,\n falseLabel: PropTypes.any,\n value: PropTypes.any,\n normalClass: PropTypes.string,\n activeClass: PropTypes.string,\n};\n\nCheckbox.defaultProps = {\n trueLabel: true,\n falseLabel: false,\n};\n\nexport default Checkbox;\n","import { cloneElement, forwardRef, useCallback } from 'react';\nimport { safeRender, toVueSlots } from '@common/utils/slots';\nimport Checkbox from '.';\n\nconst falseLabel = {};\n\nfunction newValuesAfterChange(values, val, oriVal) {\n if (val !== falseLabel) {\n return values.concat(val);\n }\n\n return values.filter((value) => value !== oriVal);\n}\n\nconst CheckboxGroup = forwardRef(function CheckboxGroup({ children, value, inputRef, onChange }, ref) {\n const _ref = inputRef || ref;\n const changeHandler = useCallback(\n (val, e) => {\n onChange && onChange(newValuesAfterChange(value, val, e.trueLabel));\n },\n [onChange, value]\n );\n const buildChildProps = useCallback(\n (trueLabel, index) => ({\n key: trueLabel,\n ref: index === 0 ? _ref : null,\n trueLabel,\n falseLabel,\n value: value.indexOf(trueLabel) !== -1 ? trueLabel : falseLabel,\n onChange: changeHandler,\n }),\n [_ref, changeHandler, value]\n );\n\n const child = toVueSlots(safeRender(children, { buildChildProps })).default;\n const childs = child && !Array.isArray(child) ? [child] : child || [];\n\n return childs.map((child, i) =>\n child.type === Checkbox ? cloneElement(child, buildChildProps(child.props.trueLabel, i)) : child\n );\n});\n\nexport default CheckboxGroup;\n","import Checkbox from './Checkbox';\nimport CheckboxGroup from './CheckboxGroup';\nexport default Checkbox;\nexport { Checkbox, CheckboxGroup };\n","import { types } from 'mobx-state-tree';\nimport CarBase from '@common/models/Car';\nimport { generateDescribeModule } from '@common/utils/describe-helper';\nimport { fetchVehicle } from '@/services/vehicle';\nimport { rootStore } from '.';\nimport { createAjaxDescribe } from '@common/utils/createAjaxDescribe';\n\nconst carServers = [\n generateDescribeModule(\n 'ajaxDescribe',\n [\n createAjaxDescribe,\n function (uuid) {\n return fetchVehicle(uuid || this.uuid).then((data) => {\n data.mdsp = {\n interestrate: rootStore.systemSetting.interestrate,\n };\n return data;\n });\n },\n\n function (data) {\n this.updateFromAjaxJson(data);\n },\n ],\n '_load'\n ),\n];\n\nexport default types.compose(\n ...carServers,\n // AjaxDescribeHelper,\n CarBase,\n types\n .model({})\n .views((self) => ({\n get isAjaxLoading() {\n return self.ajaxDescribe.loading;\n },\n get ajaxError() {\n return self.ajaxDescribe.error;\n },\n }))\n .actions((self) => ({\n load(uuid) {\n return self._load(uuid || self.uuid).toPromise();\n },\n }))\n);\n","const { useEffect } = require('react');\nconst { useStaticRef } = require('./useStaticRef');\n\nconst MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\nconst defaultConfig = {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n};\n\nexport function createMutationObserver(el, cb, config) {\n let observer;\n if (MutationObserver) {\n observer = new MutationObserver(cb);\n observer.observe(el, { ...defaultConfig, ...config });\n }\n\n return () => {\n observer && observer.disconnect();\n };\n}\n\nexport default function useMutationObserver($el, cb, config) {\n const ref = useStaticRef({\n el: $el,\n config,\n cb,\n });\n\n useEffect(() => {\n const { el, config, cb } = ref;\n return createMutationObserver(el, cb, config);\n }, [ref]);\n}\n","import { Subject } from 'rxjs';\nimport { useState } from 'react';\nimport { forEach, mapValues } from 'lodash';\nimport useWatch from '@common/hooks/useWatch';\n\nfunction createSubject() {\n return new Subject();\n}\n\nexport function useWatchObservable(dep) {\n const [subject] = useState(createSubject);\n useWatch(dep, (...rest) => subject.next(rest));\n return subject;\n}\n\nexport function useVueCycle(props, mixins, refMap) {\n // 处理state\n const stateMap = mixins.reduce((acc, comp) => Object.assign(acc, (comp.useData && comp.useData(props)) || null), {});\n const stateValue = mapValues(stateMap, '0');\n const stateSetter = mapValues(stateMap, '1');\n const state = {\n state: stateValue,\n stateSetter,\n };\n\n // 处理computed\n const computedValueMap = {};\n const computedMap = mixins.reduce(\n (acc, comp) =>\n Object.assign(acc, (comp.computed && comp.computed(props, stateValue, computedValueMap, acc)) || null),\n {}\n );\n\n forEach(computedMap, function (value, key) {\n Object.defineProperty(computedValueMap, key, {\n get: function () {\n return value();\n },\n });\n });\n\n // 处理useRender\n const renderState = {};\n mixins.reduce(\n (acc, comp) =>\n Object.assign(\n acc,\n (comp.useRenderBefore && comp.useRenderBefore(props, state, computedValueMap, acc, refMap)) || null\n ),\n renderState\n );\n mixins.reduce(\n (acc, comp) =>\n Object.assign(acc, (comp.useRender && comp.useRender(props, state, computedValueMap, acc, refMap)) || null),\n renderState\n );\n\n return {\n state,\n computed: computedValueMap,\n renderState,\n };\n}\n","import { NEVER, of, Subject } from 'rxjs';\nimport { filter, map, mergeAll, startWith, switchMap, throttleTime, withLatestFrom } from 'rxjs/operators';\nimport { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport * as classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useStaticRef } from '@common/hooks/useStaticRef';\nimport useWatch from '@common/hooks/useWatch';\nimport { createMutationObserver } from '@common/hooks/useMutationObserver';\nimport { loopWith, withFn } from '@common/utils';\nimport is from '@common/utils/dom/is';\nimport { useVueCycle, useWatchObservable } from '@common/utils/vue-style';\nimport { useShareRef } from '@common/hooks/useShareRef';\nimport './style.less';\n\nconst PinBoxContext = createContext({});\nconst fixClassName = 'pin-box-elm--fix';\nlet _uid = 1;\n\nfunction toRem() {}\nfunction createSubject() {\n return new Subject();\n}\nfunction createConstant(val) {\n return () => val;\n}\n\nfunction resolveDomSelector(get, onlyParent) {\n if (get && typeof get === 'string') {\n if (onlyParent) {\n return loopWith(\n onlyParent,\n (node) => node.parentNode,\n (node) => is(node, get)\n );\n } else {\n return document.querySelector(get);\n }\n }\n\n return get ? get() : null;\n}\n\nconst scroll$$ = createSubject();\nwindow.addEventListener('scroll', () => scroll$$.next && scroll$$.next(1));\n\nconst IntersectionObserver = window.IntersectionObserver;\nconst instanceMap = new Set();\n\nconst baseMixins = {\n useData() {\n const uid = useState(() => _uid++);\n\n return { uid };\n },\n computed(props, state, computed) {\n const { disabled, useRemUnit } = props;\n return {\n isUseable: createConstant(!disabled),\n calSpace: withFn(createConstant(0)),\n calSpaceValue: withFn(() => (useRemUnit ? toRem(computed.calSpace) : (computed.calSpace || 0) + 'px')),\n };\n },\n useRender(props, stateApi, computed, renderState, refMap) {\n const { renderSign } = props;\n const { isUseable } = computed;\n const propsRef = useStaticRef(props);\n\n // 暴露一个主动更新接口\n const [depChange$$] = useState(createSubject);\n const [forceUpdate$$] = useState(createSubject);\n const forceUpdate = useCallback(\n function (force) {\n force ? forceUpdate$$.next(1) : depChange$$.next(1);\n },\n [depChange$$, forceUpdate$$]\n );\n\n useWatch([isUseable, renderSign], function () {\n forceUpdate(true);\n });\n\n useEffect(\n function () {\n let disconnect, subscription;\n const $el = refMap.elmRef.current;\n\n // 利用MutationObserver进行自动更新。默认关闭,如果一个页面很多pinbox,可能有问题。\n if (propsRef.current.useMutation) {\n const mutationUpdate$$ = createSubject();\n subscription = mutationUpdate$$.pipe(throttleTime(300)).subscribe(() => forceUpdate());\n disconnect = createMutationObserver($el, () => {\n mutationUpdate$$.next(1);\n });\n }\n\n return () => {\n subscription && subscription.unsubscribe();\n disconnect && disconnect();\n };\n },\n [forceUpdate, refMap.elmRef, propsRef]\n );\n\n return {\n depChange$$,\n forceUpdate$$,\n forceUpdate,\n };\n },\n};\n\nconst adsorptionTopMixins = {\n useData(props) {\n const { useOptimize, inverse } = props;\n const isArrive = useState(false); // 是否到达吸顶位置\n const isOverflow = useState(false);\n const topForLimit = useState(0);\n const isSleep = useState(useOptimize && !inverse); // 是否处于休眠状态(位于视口外)\n\n return { isArrive, isOverflow, topForLimit, isSleep };\n },\n computed(props, state, computed, computedDefind) {\n const { useRemUnit, absoluteTop, baseTop } = props;\n const { topForLimit } = state;\n\n computedDefind.calSpace.registerFn(function (next) {\n return computed.hasAbsoluteTop ? absoluteTop : next() + baseTop;\n });\n\n return {\n hasAbsoluteTop: withFn(() => absoluteTop || ('absoluteTop' in props && !isNaN(Number(absoluteTop)))),\n topForLimitValue: withFn(() => (useRemUnit ? toRem(topForLimit) : (topForLimit || 0) + 'px')),\n };\n },\n useRender(props, { state, stateSetter }, computed, renderState, refMap) {\n const placeholderRef = {};\n const { pin, useOptimize, inverse, baseTop, absoluteTop, limitSpace, getLimitBox } = props;\n const { depChange$$, forceUpdate$$, forceUpdate } = renderState;\n const { isUseable } = computed;\n const propsRef = useStaticRef(props);\n const stateRef = useStaticRef(state);\n const computedRef = useStaticRef(computed);\n const { isSleep } = state;\n const {\n isArrive: setArrive,\n isOverflow: setOverflow,\n topForLimit: setTopForLimit,\n isSleep: setSleep,\n } = stateSetter;\n\n // 优化:使用IntersectionObserver为屏幕外时添加标记,避免计算\n const observerMapRef = useShareRef(() => ({\n placeholderObserver: null,\n limitBoxObserver: null,\n canSeeEl: !isSleep,\n canSeeLimitBox: !isSleep,\n }));\n\n const pin$$ = useWatchObservable([pin]);\n\n const delayUseOptimizeTimer = useRef(0);\n const delayUseOptimize = useStaticRef(props.delayUseOptimize);\n\n useWatch([baseTop, absoluteTop, limitSpace, getLimitBox, isSleep], () => forceUpdate());\n useWatch([inverse], () => forceUpdate(true));\n useWatch(\n [isUseable, useOptimize, getLimitBox],\n function ([isUseable, useOptimize, getLimitBox], oldVal) {\n if (delayUseOptimize.current) {\n setSleep(false);\n if (useOptimize && !oldVal) {\n delayUseOptimizeTimer.current = setTimeout(() => {\n setSleep(true);\n }, delayUseOptimize.current);\n }\n }\n\n [\n {\n el: isUseable && placeholderRef.current,\n field: 'canSeeEl',\n observer: 'placeholderObserver',\n },\n {\n el: isUseable && resolveDomSelector(getLimitBox),\n field: 'canSeeLimitBox',\n observer: 'limitBoxObserver',\n },\n ].forEach(function ({ el, field, observer }) {\n const observerMap = observerMapRef.current;\n if (useOptimize && el && IntersectionObserver) {\n if (!observerMap[observer]) {\n observerMap[observer] = new IntersectionObserver(([change]) => {\n observerMap[field] = change.isIntersecting || change.intersectionRatio > 0;\n const isSleep = !observerMap.canSeeEl && !observerMap.canSeeLimitBox;\n setSleep(isSleep);\n if (!isSleep) {\n clearTimeout(delayUseOptimizeTimer.current);\n }\n });\n\n observerMap[observer].observe(el);\n }\n } else {\n setSleep(false);\n clearTimeout(delayUseOptimizeTimer.current);\n observerMap[field] = true;\n observerMap[observer] && observerMap[observer].disconnect();\n observerMap[observer] = null;\n }\n });\n },\n { immediate: true }\n );\n\n useEffect(\n function () {\n return function () {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const observerMap = observerMapRef.current;\n clearTimeout(delayUseOptimizeTimer.current);\n observerMap.placeholderObserver && observerMap.placeholderObserver.disconnect();\n observerMap.limitBoxObserver && observerMap.limitBoxObserver.disconnect();\n };\n },\n [observerMapRef]\n );\n\n useEffect(\n function () {\n const env$ = of(window.innerHeight).pipe(map((height) => ({ windowHeight: height })));\n let arriveSubscription, overflowSubscription;\n\n function createMonitor() {\n return of(\n of(scroll$$, depChange$$).pipe(\n mergeAll(),\n filter(() => !stateRef.current.isSleep && !propsRef.current.pin)\n ),\n forceUpdate$$,\n pin$$,\n propsRef.current.pin || propsRef.current.updateOnInit || propsRef.current.inverse ? of(0) : NEVER\n ).pipe(mergeAll());\n }\n\n // 吸顶计算\n arriveSubscription = createMonitor()\n .pipe(\n withLatestFrom(env$),\n map(([, env]) => {\n if (propsRef.current.pin) return true;\n const res = refMap.elmRef.current.getBoundingClientRect();\n return propsRef.current.inverse\n ? res.bottom > env.windowHeight - computedRef.current.calSpace\n : res.top < computedRef.current.calSpace;\n })\n )\n .subscribe((val) => {\n if (stateRef.current.isArrive !== val) {\n setArrive(val);\n // vm.$emit('change', val); // @todo\n }\n });\n\n // limitBox相关计算\n const limitBox$ = of(1).pipe(map(() => resolveDomSelector(propsRef.current.getLimitBox)));\n overflowSubscription = createMonitor()\n .pipe(\n switchMap(() => limitBox$),\n map(($tab) => ($tab ? $tab.getBoundingClientRect() : null)),\n withLatestFrom(env$),\n map(([res, env]) => {\n const space = propsRef.current.limitSpace;\n return {\n res,\n env,\n isOverflow: res\n ? propsRef.current.inverse\n ? res.top > env.windowHeight - space - stateRef.current.height - computedRef.current.calSpace\n : res.bottom < space + computedRef.current.calSpace + stateRef.current.height\n : false,\n };\n })\n )\n .subscribe(function ({ res, isOverflow }) {\n if (stateRef.current.isOverflow !== isOverflow) {\n setOverflow(isOverflow);\n setTopForLimit(\n isOverflow\n ? propsRef.current.inverse\n ? refMap.elmRef.current.getBoundingClientRect().top - res.top\n : res.bottom - refMap.elmRef.current.getBoundingClientRect().bottom\n : 0\n );\n // vm.$emit('change-overflow', isOverflow); // @todo\n }\n });\n\n return () => {\n arriveSubscription.unsubscribe();\n overflowSubscription.unsubscribe();\n };\n },\n [\n computedRef,\n depChange$$,\n forceUpdate$$,\n pin$$,\n propsRef,\n refMap.elmRef,\n setArrive,\n setOverflow,\n setTopForLimit,\n stateRef,\n ]\n );\n },\n};\n\n// 处理 autoHeight, 部分置顶内容高度根据交互变化\nconst autoHeightMixins = {\n useData() {\n const height = useState(0);\n return { height };\n },\n\n useRender(props, { state, stateSetter }, computed, renderState, refMap) {\n const stateRef = useStaticRef(state);\n const setHeight = stateSetter.height;\n const { depChange$$, forceUpdate$$ } = renderState;\n\n const _setHeight = useCallback(() => {\n let hasChange = true;\n const offsetHeight = refMap.realBodyRef.current.offsetHeight;\n\n if (stateRef.current.height === offsetHeight) hasChange = false;\n\n if (hasChange) {\n setHeight(offsetHeight);\n }\n\n // if (hasChange) {\n // this.$emit('change-height', this.height); // @todo\n // }\n }, [refMap.realBodyRef, setHeight, stateRef]);\n\n useEffect(\n function () {\n // 吸顶状态变更,重设高度\n const subscription = of(depChange$$, forceUpdate$$).pipe(mergeAll(), startWith(0)).subscribe(_setHeight);\n const $el = refMap.elmRef.current;\n\n // 监听元素变化,自动重设高度\n const disconnect = createMutationObserver($el, _setHeight);\n\n return () => {\n subscription.unsubscribe();\n disconnect();\n };\n },\n [depChange$$, forceUpdate$$, refMap.elmRef, _setHeight]\n );\n },\n};\n\nconst globalState = { setPinboxKeyMap: null };\nconst updateGroupOrderMap = {};\nconst EMPTY_ARRAY = [];\n\nconst cbQueue = [];\n// 更新某分组的队列排序,并将队列赋值给队列每个实例。\nfunction _updateGroupOrder(groupKey, vm, cb) {\n function fn(inverse) {\n // console.log(`_updateGroupOrder(${JSON.stringify(groupKey)})`);\n const list = [];\n const pinboxKeyMap = {};\n list.splice(0);\n\n instanceMap.forEach(function (item) {\n const props = item.propsRef.current;\n\n if (props.groupKey === groupKey && props.inverse === inverse) {\n list.push(item);\n }\n\n if (props.pinboxKey) {\n if (!pinboxKeyMap[props.pinboxKey]) {\n pinboxKeyMap[props.pinboxKey] = [item];\n } else {\n pinboxKeyMap[props.pinboxKey].push(item);\n }\n }\n });\n globalState.setPinboxKeyMap && globalState.setPinboxKeyMap(pinboxKeyMap);\n\n list.sort(function (a, b) {\n return inverse\n ? b.propsRef.current.groupOrder - a.propsRef.current.groupOrder ||\n b.stateRef.current.uid - a.stateRef.current.uid\n : a.propsRef.current.groupOrder - b.propsRef.current.groupOrder ||\n a.stateRef.current.uid - b.stateRef.current.uid;\n });\n\n list.forEach((item) => {\n item.setGroupQueue(list);\n });\n\n cbQueue.splice(0).forEach((fn) => fn());\n }\n\n typeof cb === 'function' && cbQueue.push(cb);\n if (vm) {\n // 同分组面前有实例注册过了,不重复注册。\n if (updateGroupOrderMap[groupKey]) return;\n\n updateGroupOrderMap[groupKey] = fn;\n vm.$nextTick(function () {\n fn(true);\n fn(false);\n delete updateGroupOrderMap[groupKey];\n });\n } else {\n fn(true);\n fn(false);\n }\n}\n\n// pin元素分组。\nconst groupMixins = {\n useData() {\n const groupQueue = useState([]);\n const { pinboxKeyMap } = useContext(PinBoxContext);\n return { groupQueue, pinboxKeyMap: [pinboxKeyMap] };\n },\n computed(props, state, computed, computedDefind) {\n const { absoluteTop, baseTop } = props;\n const { groupQueue, uid, pinboxKeyMap } = state;\n\n computedDefind.calSpace.registerFn(function (next) {\n return computed.hasAbsoluteTop\n ? absoluteTop\n : Math.max(next() - baseTop + computed.groupQueueBaseTop + computed.groupQueueTop, computed.behindTop);\n });\n\n return {\n groupQueueTopInfo() {\n let top = 0;\n let _baseTop = 0;\n\n for (let index = 0; index < groupQueue.length; index++) {\n const element = groupQueue[index];\n const state = element.stateRef.current;\n const computed = element.computedRef.current;\n\n if (state.uid !== uid) {\n if (!state.isOverflow && computed.isUseable) {\n // 前面的元素处理休眠时,叫醒它。\n if (state.isSleep) {\n element.setSleep(false);\n }\n top += state.height;\n _baseTop = Math.max(baseTop, computed.groupQueueBaseTop);\n }\n } else {\n break;\n }\n }\n\n return { top, baseTop: _baseTop };\n },\n groupQueueTop() {\n return computed.groupQueueTopInfo.top;\n },\n groupQueueBaseTop() {\n return computed.groupQueueTopInfo.baseTop;\n },\n behindTop() {\n let { behind } = props;\n\n if (!behind) return 0;\n if (!(behind instanceof Array)) {\n behind = [behind];\n }\n\n return Math.max(\n ...behind.map(function (key) {\n return Math.max(\n ...(pinboxKeyMap[key] || EMPTY_ARRAY).map(\n (vm) => vm.computedRef.current.calSpace + vm.stateRef.current.height\n )\n );\n })\n );\n },\n };\n },\n\n // 这里没用Component.mounted.registerFn,因为calSpace依赖于groupQueueTop,所以尽早注册。\n // 否则vm.depChange$$的vm.$nextTick后,groupQueue还不是最新的。\n useRenderBefore(props) {\n const propsRef = useStaticRef(props);\n const updateGroupOrder = useCallback(\n // (cb) => _updateGroupOrder(propsRef.current.groupKey + '', null, /* this, */ cb), // @todo\n (cb) => {\n _updateGroupOrder(propsRef.current.groupKey + '', null, /* this, */ cb);\n },\n [propsRef]\n );\n const { groupKey, groupOrder, inverse } = props;\n\n useWatch(\n [groupKey, groupOrder, inverse],\n function () {\n updateGroupOrder();\n },\n {\n immediate: true,\n }\n );\n\n return {\n updateGroupOrder,\n };\n },\n\n useRender(props, { state }, computed, renderState) {\n const { depChange$$, forceUpdate$$, updateGroupOrder } = renderState;\n const { setPinboxKeyMap } = useContext(PinBoxContext);\n\n useWatch([computed.calSpace, state.height], function () {\n setPinboxKeyMap((state) => ({ ...state }));\n });\n\n useEffect(\n function () {\n of(depChange$$, forceUpdate$$)\n .pipe(mergeAll())\n .subscribe(function () {\n updateGroupOrder();\n });\n\n return updateGroupOrder;\n },\n [depChange$$, forceUpdate$$, updateGroupOrder]\n );\n },\n};\n\nconst connectMixins = {\n useRenderBefore(props, { state, stateSetter }, computed, renderState) {\n const { isSleep: setSleep, groupQueue: setGroupQueue } = stateSetter;\n const { forceUpdate } = renderState;\n const propsRef = useStaticRef(props);\n const stateRef = useStaticRef(state);\n const computedRef = useStaticRef(computed);\n const vm = useMemo(\n function () {\n return {\n forceUpdate,\n setSleep,\n setGroupQueue,\n\n propsRef,\n stateRef,\n computedRef,\n };\n },\n [forceUpdate, setSleep, setGroupQueue, propsRef, stateRef, computedRef]\n );\n\n useEffect(\n function () {\n instanceMap.add(vm);\n return () => instanceMap.delete(vm);\n },\n [vm]\n );\n },\n};\n\nexport function forceUpdate(force) {\n instanceMap.forEach((vm) => vm.forceUpdate(force));\n}\n\nexport function PinBoxProvider(props) {\n const [pinboxKeyMap, setPinboxKeyMap] = useState({});\n globalState.setPinboxKeyMap = setPinboxKeyMap;\n\n return {props.children};\n}\n\nexport default function PinBox(props) {\n const elmRef = useRef();\n const placeholderRef = useRef();\n const realBodyRef = useRef();\n const refMap = useMemo(\n function () {\n return {\n elmRef,\n placeholderRef,\n realBodyRef,\n };\n },\n [elmRef, placeholderRef, realBodyRef]\n );\n\n const {\n state: { state },\n computed,\n } = useVueCycle(props, [baseMixins, adsorptionTopMixins, autoHeightMixins, groupMixins, connectMixins], refMap);\n const { inverse, fixDocumentFlow, placeholderClass, autoHeight, realBodyClass, realBodyStyle } = props;\n const { isUseable, hasAbsoluteTop, calSpaceValue, topForLimitValue } = computed;\n const { height, isOverflow, isArrive } = state;\n\n return (\n \n {isUseable && fixDocumentFlow ? (\n \n ) : null}\n \n {props.children}\n \n \n );\n}\n\nPinBox.propTypes = {\n /* baseMixins */\n // 渲染标记。组件初始化很多关于dom查询的逻辑,如果此时处于display:none时将很bug。\n // 对外暴露改标记,该值变化时,重启相关dom查询。\n renderSign: PropTypes.any,\n realBodyClass: PropTypes.string,\n placeholderClass: PropTypes.string,\n realBodyStyle: PropTypes.object,\n disabled: PropTypes.bool, // 有时候需要按条件应用pin-box,业务上又不能重新渲染时使用。 (例如在