dfish-widget 0.1.503 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/style.css +1 -1
- package/lib/index.esm.js +138 -227
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://dfish/webpack/universalModuleDefinition","webpack://dfish/webpack/bootstrap","webpack://dfish/./src/widgets/AlignParent.vue","webpack://dfish/./src/widgets/AlignParent.vue?f746","webpack://dfish/./src/widgets/Leaf.vue?d317","webpack://dfish/./src/widgets/FormBase.vue?f8ed","webpack://dfish/./src/widgets/Video.vue?99e5","webpack://dfish/./src/widgets/Jigsaw.vue?cafd","webpack://dfish/./src/template/TemplateAlert.vue","webpack://dfish/./src/template/TemplateAlert.vue?b656","webpack://dfish/./src/widgets/Option.vue?0834","webpack://dfish/./src/widgets/Menu.vue","webpack://dfish/./src/widgets/Menu.vue?61b6","webpack://dfish/./src/widgets/TabButton.vue","webpack://dfish/./src/widgets/TabButton.vue?e0b1","webpack://dfish/./src/widgets/PageBar.vue","webpack://dfish/./src/widgets/PageBar.vue?15df","webpack://dfish/./src/widgets/Hidden.vue","webpack://dfish/./src/widgets/Hidden.vue?f5d8","webpack://dfish/./src/widgets/FormBase.vue","webpack://dfish/./src/widgets/FormBase.vue?9859","webpack://dfish/./src/widgets/MenuButton.vue?7ceb","webpack://dfish/./src/widgets/LinkBox.vue","webpack://dfish/./src/widgets/LinkBox.vue?8d22","webpack://dfish/./src/widgets/MediaUploadItem.vue?b462","webpack://dfish/./src/widgets/Option.vue","webpack://dfish/./src/widgets/Option.vue?2ad8","webpack://dfish/./src/widgets/TabButton.vue?b2df","webpack://dfish/./src/util/str.js","webpack://dfish/./src/widgets/View.vue","webpack://dfish/./src/widgets/View.vue?86cf","webpack://dfish/./src/widgets/Swiper.vue?b91b","webpack://dfish/./src/util/number.js","webpack://dfish/./src/widgets/MenuButton.vue","webpack://dfish/./src/widgets/MenuButton.vue?9b54","webpack://dfish/./src/widgets/ComboBox.vue","webpack://dfish/./src/widgets/ComboBox.vue?2036","webpack://dfish/./src/widgets/ButtonBar.vue","webpack://dfish/./src/widgets/ButtonBar.vue?b9d7","webpack://dfish/./src/util/json.js","webpack://dfish/./src/widgets/Toggle.vue?a46f","webpack://dfish/./src/widgets/ViewAbs.vue","webpack://dfish/./src/widgets/ViewAbs.vue?7b03","webpack://dfish/./src/widgets/Scroll.vue?3087","webpack://dfish/./src/widgets/FileUpload.vue","webpack://dfish/./src/widgets/FileUpload.vue?e312","webpack://dfish/./src/widgets/ImageUpload.vue","webpack://dfish/./src/widgets/ImageUpload.vue?f89f","webpack://dfish/./src/widgets/DocView.vue","webpack://dfish/./src/widgets/DocView.vue?ba0c","webpack://dfish/./src/widgets/TableTBody.vue","webpack://dfish/./src/widgets/TableTBody.vue?abdf","webpack://dfish/./src/util/snap.js","webpack://dfish/./src/directive/label-width.js","webpack://dfish/./src/util/uid.js","webpack://dfish/./src/widgets/Button.vue","webpack://dfish/./src/widgets/Button.vue?fbcc","webpack://dfish/./src/widgets/FileUpload.vue?88fc","webpack://dfish/./src/widgets/TableColumns.vue","webpack://dfish/./src/widgets/TableColumns.vue?3525","webpack://dfish/./src/widgets/CheckBox.vue","webpack://dfish/./src/widgets/CheckBox.vue?54ae","webpack://dfish/./src/widgets/Calendar.vue?b801","webpack://dfish/./src/widgets/Tip.vue?e935","webpack://dfish/./src/widgets/DialogMove.vue?15d2","webpack://dfish/./src/widgets/Timeline.vue?0f85","webpack://dfish/./src/template/TemplateDateSheet.vue?280e","webpack://dfish/./src/widgets/SrcParent.vue","webpack://dfish/./src/widgets/SrcParent.vue?93a3","webpack://dfish/./src/template/TemplateLoading.vue","webpack://dfish/./src/template/TemplateLoading.vue?982e","webpack://dfish/./src/widgets/Label.vue","webpack://dfish/./src/widgets/Label.vue?969b","webpack://dfish/./src/assets/SVGIcon.vue","webpack://dfish/./src/assets/SVGIcon.vue?69f7","webpack://dfish/./src/widgets/SubmitButton.vue","webpack://dfish/./src/widgets/SubmitButton.vue?3fa5","webpack://dfish/./src/widgets/SlidePicker.vue?ed76","webpack://dfish/./src/widgets/Timeline.vue","webpack://dfish/./src/widgets/Timeline.vue?6722","webpack://dfish/./src/widgets/Split.vue?d855","webpack://dfish/./src/widgets/Grid.vue?ff6f","webpack://dfish/./src/widgets/Tree.vue","webpack://dfish/./src/widgets/Tree.vue?42d7","webpack://dfish/./src/widgets/Password.vue","webpack://dfish/./src/widgets/Password.vue?6cda","webpack://dfish/./src/widgets/Html.vue","webpack://dfish/./src/widgets/Html.vue?092f","webpack://dfish/./src/widgets/TimelineItem.vue","webpack://dfish/./src/widgets/TimelineItem.vue?4eaa","webpack://dfish/./src/widgets/TableTH.vue","webpack://dfish/./src/widgets/TableTH.vue?1b2e","webpack://dfish/./src/widgets/DialogMove.vue","webpack://dfish/./src/widgets/DialogMove.vue?5066","webpack://dfish/./src/widgets/Form.vue","webpack://dfish/./src/widgets/Form.vue?b8f9","webpack://dfish/./src/util/range.js","webpack://dfish/./src/widgets/PickBox.vue","webpack://dfish/./src/widgets/PickBox.vue?62f5","webpack://dfish/./src/template/TemplateTip.vue","webpack://dfish/./src/template/TemplateTip.vue?9a7a","webpack://dfish/./src/directive/dialog-move.js","webpack://dfish/./src/widgets/PubParent.vue","webpack://dfish/./src/widgets/PubParent.vue?cedb","webpack://dfish/./src/widgets/TableTD.vue","webpack://dfish/./src/widgets/TableTD.vue?b65e","webpack://dfish/./src/directive/index.js","webpack://dfish/./src/util/loc/zh-CN.js","webpack://dfish/./src/widgets/Horizontal.vue","webpack://dfish/./src/widgets/Horizontal.vue?3f14","webpack://dfish/./src/util/date.js","webpack://dfish/./src lazy ^\\.\\/.*$ namespace object","webpack://dfish/./src/widgets/Tip.vue","webpack://dfish/./src/widgets/Tip.vue?9916","webpack://dfish/./src/widgets/DatePicker.vue","webpack://dfish/./src/widgets/DatePicker.vue?304a","webpack://dfish/./src/widgets/Textarea.vue","webpack://dfish/./src/widgets/Textarea.vue?e32b","webpack://dfish/./src/widgets/Rate.vue?b442","webpack://dfish/./src/widgets/Scroll.vue","webpack://dfish/./src/widgets/Scroll.vue?2cbe","webpack://dfish/./src/widgets/LinkBox.vue?1856","webpack://dfish/./src/widgets/Range.vue?f220","webpack://dfish/./src/util/mime.js","webpack://dfish/./src/widgets/Loading.vue?b3a7","webpack://dfish/./src/widgets/Video.vue","webpack://dfish/./src/widgets/Video.vue?eba0","webpack://dfish/./src/widgets/Split.vue","webpack://dfish/./src/widgets/Split.vue?04cd","webpack://dfish/./src/widgets/Rate.vue","webpack://dfish/./src/widgets/Rate.vue?d642","webpack://dfish/./src/widgets/Pop.vue","webpack://dfish/./src/widgets/Pop.vue?0f20","webpack://dfish/./src/widgets/TableColumn.vue","webpack://dfish/./src/widgets/TableColumn.vue?2711","webpack://dfish/./src/util/css.js","webpack://dfish/./src/widgets/Swiper.vue","webpack://dfish/./src/widgets/Swiper.vue?78b8","webpack://dfish/./src/widgets/Progress.vue?98e9","webpack://dfish/./src/assets/SVGIcon.vue?6823","webpack://dfish/./src/widgets/TableTHead.vue","webpack://dfish/./src/widgets/TableTHead.vue?ceef","webpack://dfish/./src/widgets/Range.vue","webpack://dfish/./src/widgets/Range.vue?477c","webpack://dfish/./src/util/browser.js","webpack://dfish/./src/widgets/Alert.vue","webpack://dfish/./src/widgets/Alert.vue?3137","webpack://dfish/./src/util/event.js","webpack://dfish/./src/widgets/Confirm.vue","webpack://dfish/./src/widgets/Confirm.vue?d56c","webpack://dfish/./src/widgets/Tabs.vue","webpack://dfish/./src/widgets/Tabs.vue?6c52","webpack://dfish/./src/widgets/Album.vue","webpack://dfish/./src/widgets/Album.vue?74b6","webpack://dfish/./src/widgets/Img.vue?4aaa","webpack://dfish/./src/template/TemplateJigsaw.vue","webpack://dfish/./src/template/TemplateJigsaw.vue?4b4b","webpack://dfish/./src/widgets/MediaUploadItem.vue","webpack://dfish/./src/widgets/MediaUploadItem.vue?907a","webpack://dfish/./src/widgets/index.js","webpack://dfish/./src/widgets/SlidePicker.vue","webpack://dfish/./src/widgets/SlidePicker.vue?f95b","webpack://dfish/./src/widgets/MediaUpload.vue?0142","webpack://dfish/./src/widgets/Leaf.vue","webpack://dfish/./src/widgets/Leaf.vue?6aec","webpack://dfish/./src/widgets/Calendar.vue","webpack://dfish/./src/widgets/Calendar.vue?083c","webpack://dfish/./src/widgets/Tab.vue","webpack://dfish/./src/widgets/Tab.vue?a801","webpack://dfish/./src/widgets/Dialog.vue","webpack://dfish/./src/widgets/Dialog.vue?3792","webpack://dfish/./src/widgets/Toggle.vue","webpack://dfish/./src/widgets/Toggle.vue?3b65","webpack://dfish/./src/template/TemplateConfirm.vue","webpack://dfish/./src/template/TemplateConfirm.vue?3095","webpack://dfish/./src/template/TemplateDateSheet.vue","webpack://dfish/./src/template/TemplateDateSheet.vue?c94f","webpack://dfish/./src/widgets/WidgetAbs.vue","webpack://dfish/./src/widgets/WidgetAbs.vue?ba8a","webpack://dfish/./src/widgets/TableTR.vue","webpack://dfish/./src/widgets/TableTR.vue?ee1d","webpack://dfish/./src/widgets/Dialog.vue?7a7e","webpack://dfish/./src/widgets/PageBar.vue?868d","webpack://dfish/./src/dfish.js","webpack://dfish/./src/widgets/ViewAbs.vue?6ab4","webpack://dfish/./src/widgets/ComboBox.vue?4b31","webpack://dfish/./src/widgets/Jigsaw.vue","webpack://dfish/./src/widgets/Jigsaw.vue?9364","webpack://dfish/./src/widgets/RadioGroup.vue","webpack://dfish/./src/widgets/RadioGroup.vue?e09b","webpack://dfish/./src/widgets/Vertical.vue","webpack://dfish/./src/widgets/Vertical.vue?590a","webpack://dfish/./src/widgets/PickBox.vue?d830","webpack://dfish/./src/util/elem.js","webpack://dfish/./src/widgets/SwiperItem.vue","webpack://dfish/./src/widgets/SwiperItem.vue?dfa1","webpack://dfish/./src/widgets/WidgetBase.vue","webpack://dfish/./src/widgets/WidgetBase.vue?b91b","webpack://dfish/./src/widgets/Switch.vue?5261","webpack://dfish/./src/widgets/Progress.vue","webpack://dfish/./src/widgets/Progress.vue?8139","webpack://dfish/./src/widgets/Switch.vue","webpack://dfish/./src/widgets/Switch.vue?e783","webpack://dfish/./src/widgets/Table.vue?5ff4","webpack://dfish/./src/widgets/Spinner.vue?decf","webpack://dfish/./src/widgets/Tree.vue?5f4e","webpack://dfish/./src/widgets/Img.vue","webpack://dfish/./src/widgets/Img.vue?496d","webpack://dfish/./src/widgets/Grid.vue","webpack://dfish/./src/widgets/Grid.vue?3b0e","webpack://dfish/./src/widgets/MediaUpload.vue","webpack://dfish/./src/widgets/MediaUpload.vue?2ed7","webpack://dfish/./src/widgets/Menu.vue?2820","webpack://dfish/./src/widgets/Loading.vue","webpack://dfish/./src/widgets/Loading.vue?ce77","webpack://dfish/./src/widgets/CheckBoxGroup.vue","webpack://dfish/./src/widgets/CheckBoxGroup.vue?6c17","webpack://dfish/./src/widgets/Spinner.vue","webpack://dfish/./src/widgets/Spinner.vue?fa77","webpack://dfish/./src/widgets/TripleBox.vue","webpack://dfish/./src/widgets/TripleBox.vue?8717","webpack://dfish/./src/widgets/Radio.vue","webpack://dfish/./src/widgets/Radio.vue?f1bf","webpack://dfish/./src/widgets/Html.vue?e48a","webpack://dfish/./src/widgets/Text.vue","webpack://dfish/./src/widgets/Text.vue?367a","webpack://dfish/./src/directive/form-ignore.js","webpack://dfish/./src/widgets/Tabs.vue?b517","webpack://dfish/./src/template/TemplatePreviewMedia.vue","webpack://dfish/./src/template/TemplatePreviewMedia.vue?3261","webpack://dfish/./src/template/TemplateJigsaw.vue?165a","webpack://dfish/./src/widgets/DropBox.vue","webpack://dfish/./src/widgets/DropBox.vue?9370","webpack://dfish/./src/widgets/Table.vue","webpack://dfish/./src/widgets/Table.vue?8309"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","oldJsonpFunction","slice","props","computed","dir","html_align_class","this","x","align","vertical","valign","class","w-width","title","close","typeIcon","text","showButton","dfish","br","compat","gap","face","save","ownproperty","icons","info","warning","success","question","defaultIconType","methods","dialog","cueYes","icon","render","inst","mixins","Dialog","x_default","autoHide","independent","hasBubble","a","b","contains","closest","parentMenu","rootCommander","arrow","$refs","bbr","el","bcr","scrollTop","height","mousewheel","wheelDelta","getRoot","getCommander","$options","checkOutScreen","_pos","mag_l","mag_r","bottom","top","setMaxHeight","fixSnapStyle","html_buttons","slots_children","map","MenuButton","children","html_slots","maxHeight","onclick","Vertical","ref","onwheel","default","html_class","animateClass","snapClass","dropClass","isDeactivated","fullScreen","commander","provideView","isView","mounted","context","Button","ButtonBar","emits","isJumpFocus","showDrop","limit","size","offset","buttonCount","inCurrent","currentPage","clickItem","runType","trigger","clickDrop","onJumpClick","v","Math","max","number","jumpInput","html_button","ic","ds","disabled","html_face_button","html_face_simple","html_face_normal","loc","page_text","prev","sumPage","next","html_drop","sp","onClick","Menu","snap","drop","position","indent","onClose","concat","cp","f","ceil","min","noFirstLast","labelFirst","iconFirst","labelPrev","iconPrev","labelNext","iconNext","labelLast","iconLast","jump","to","onfocus","onblur","onkeydown","keyCode","page","html_face_mini","first","last","FormBase","isModified","html","id","uid","modelValue","WidgetBase","AlignParent","mv","isFormWidget","isFocus","hasBorder","isPlural","warnClass","labelVertical","modifiedValue","defaultValue","placeholder_type","val","arguments","ov","changed","JSON","stringify","warn","isUsableVal","$emit","formVal","input_value","defaultRuleValue","rules","Array","isArray","valid","getValidError","showErrorTip","ques","validTriggers","validQueues","isNormal","isReadonly","readonlyValidate","groupFormVal","join","trim","hs","validHooks","q","rv","rule","formErr","que","arg","label","getLabelText","ps","form","wid","w","_tip","scrollIntoView","ease","exec","errorTipTarget","focus","formText","pubParent","oninput","baseFocus","baseBlur","isFocusTarget","relatedTarget","$","isUnmounted","time","Date","getTime","snapElem","isWidget","original","dv","saveModified","lodash","clone","reset","empty","html_label","$slots","Label","html_input","input_tag","input_type","input_name","readonly","isDisabled","placeholder","input_placeholder","autocomplete","input_prop","html_input_hidden","html_form","slot","html_main","fh","inputHeight","unitSize","style","input_title","main_prop","pubValidHooks","required","pattern","eval","test","validateHandler","k","includes","forEach","item","keys","autoPlaceholder","html_on","html_props","fw","inputWidth","created","$watch","initOptions","sugger","showSuggest","sug_timer","_KC","imeMode","paste_rng","currOpt","store","strict","array","addStore","inp","innerHTML","html_options","addVal","multiple","unionBy","complete","u","rngElement","separator","tagName","nextSibling","after","querySelector","append","rng_text","classAdd","forbid","rngCursor","eq","addBack","remove","closeDrop","suggest","input","innerText","replace","createEvent","fixStyle","g","parentElement","firstChild","nodeType","extractContents","createTextNode","insertNode","previousSibling","nodeValue","indexOf","replaceWith","rngCursorOffset","split","strTrim","param","classAny","classRemove","removeAttribute","rngSelection","selectNodeContents","clickPicker","stopPropagation","picker","cmd","clickDropper","dropper","filter","find","each","preventDefault","onkeyup","ondblclick","getSelection","removeAllRanges","html_var","contentEditable","width","dropWidth","scrollY","validateDefault","getOn","addEventListener","provideOptionParent","isMul","click","inject","clickOption","idsAny","String","string","strQuot","strFrom","lastIndexOf","substr","strTo","strLen","cnBytes","charCodeAt","strPad","strFormat","$0","$1","encodeURIComponent","strEscape","strHighlight","RegExp","strSplitword","$2","$3","_s_regexp","ViewAbs","html_self","html_pops","html_scroll_class","parseFloat","isNaN","isNumber","numRange","numAdd","args","pow","round","numFormat","charAt","numDecimal","parseInt","closeSub","subMenu","isMore","onmouseenter","currentTarget","classList","add","clickClose","font","startsWith","closable","Img","dropIcon","ownerView","isCurrent","onmouseleave","sensor_text","sensor_width","clear","$nextTick","selectionStart","selectionEnd","dispatchEvent","Event","findIndex","sensor","offsetWidth","observe","Horizontal","PubParent","html_scroll_slots","jsonArray","jsonChain","SrcParent","provide","pops","beforeCreate","popCommanders","reload","querySelectorAll","fv","fAll","getFormList","dom","not","getPostData","range","checked","indeterminate","selectedIndex","_err_ns","vueMap","resetForm","showLoading","cover","local","hide","cmdDialog","orientUid","removeDialog","hidden","getDialogOptions","Pop","suffixHooks","xls","doc","ppt","htm","zip","fla","fon","iso","vid","aud","img","suffix","url","toLowerCase","unit","toUpperCase","fileTypeHooks","video","audio","image","list","emiting","immediate","getFileTypes","fileTypes","getAccept","mime","isImage","file","isVideo","isAudio","fileSelected","uploadLimit","files","alert","upload_limit","xfs_names","nfs_names","ft_names","xfs","maxFileSize","nfs","minFileSize","ft","sfx","upload_maxfilesize","upload_minfilesize","upload_invalid_file_type","nextUpload","upload","uploadSrc","loading","urlFormat","fd","FormData","source","http","CancelToken","post","onUploadProgress","progress","floor","loaded","total","cancelToken","token","res","upload_invalid_data","upload_no_data","catch","response","status","downloadSrc","download","urlServer","cancel","chooseFile","html_list","itemWidth","upload_error","html_input_form","accept","onchange","html_input_button","button","html_input_list","no_files","canUpload","uploadbbr","html_style","MediaUpload","thumbnailWidth","thumbnailHeight","WidgetAbs","providePubParent","provideBoxParent","provideRangeParent","docView","getElementById","getKey","previewVideo","template","TemplatePreviewMedia","previewImage","imgs","options","dateSheet","dateOptions","dialogOptions","TemplateDateSheet","on","SVGIcon","debug","Scroll","_provideThead","provideInBody","_provideTBody","_provideTable","scrollX","fixed","viewCurrent","expandToView","onScroll","hd","slotHooks","thead","scrollLeft","onScrollPosition","onScrollAttributeChange","attributeName","hasAttribute","html_tbody","inBody","T","N","cvs","documentElement","_arr_comma","_snaptype","h","left","right","tl","tr","rt","rb","bl","lb","lt","_snapMag","pix","mag","inner","canvasOffset","clientWidth","clientHeight","offsetHeight","offsetTop","offsetLeft","offsetParent","clientLeft","clientTop","getBoundingClientRect","originalEvent","clientX","clientY","ew","eh","ot","or","ob","ol","y","pix_r","pix_b","mag_b","mag_t","snapTo","css","labelWidth","setProperty","updated","_uidCnt","_uidKey","_guid","toString","pubParentName","mouses","dropHover","onmousedown","onmouseup","watch","removeClass","showDropIcon","ajaxLock","clickTab","html_icon","focusIcon","isCombo","minWidth","dropPosition","modifiedChecked","defaultChecked","boxProxy","isChecked","getVal","setVal","checkValue","rdo","idsAdd","idsRemove","siblings","sb","check","relate","onbasechange","input_icon","html_target","minSize","maxSize","partialSubmit","$el","getSrc","$props","fn","ex","$parent","focusable","aria-hidden","viewBox","transform","cx","cy","opacity","values","begin","dur","repeatCount","p-id","len","wrap","vt","prevWidth","nextWidth","prevBcr","nextBcr","marginTop","marginLeft","prevItems","firstBcr","lastBcr","wrapBcr","line","prevSlots","nextSlots","set","provideLevel","provideParentLeaf","provideParentTR","getCurrent","leaf","chd","level","getCompareError","tv","compare","index","sortType","sortOrder","sortable","clickSort","order","sortUID","orders","sortOrders","col","colgroup","vnode","dfishColIndex","td_props","movable","sl","sr","st","moveup","appendTo","body","setPosition","moved","nextElementSibling","unmounted","removeEventListener","Range","movePoint","__defineGetter__","__defineSetter__","deleteContents","startContainer","setStart","setEnd","select","addRange","rangeCount","getRangeAt","createRange","collapseToEnd","startOffset","createTextRange","setEndPoint","rngText","DropBox","clickClear","input_text","current","isCurrentChild","ci","colspan","rowspan","Vue","directive","formIgnore","dialogMove","yes","no","none","confirm","search","query","choose","edit","finish","refresh","operfail","opertip","nodata","more","field","restore","rotate_left","rotate_right","dialog_max","dialog_min","detect_zoom","no_tip_anymore","wait","submiting","uploading","click_preview","toomuch_wait","toomuch_wait_countdown","preview_orginal_image","auth_success","auth_fail","choose_image","tree_movefail1","tree_movefail2","internet_error","server_error","preload_error","print_preview","placeholder_input","placeholder_select","pulldown_refresh","release_refresh","pullup_refresh","pullup_nomore","download_start","download_complete","download_cannotopen","download_fail","tab_close","tab_close_others","tab_close_all","sort_asc","sort_desc","sort_cancel","column_choose","connection_not_wifi","sorry","view_more","no_command","no_combo","error_template_type","error_type","tmpl_method_undefined","onlyone","maxLength","reach_maxLength","over_maxLength","minLength","maxValue","minValue","password_weak","password_middle","password_strong","number_invalid","number_integer","number_decimal_digit","step_max_value","step_min_value","time_exceed","time_format","period_invalid","beforeNow","afterNow","invalid_option","need_valid_option","choose_atleastone","complete_required","jigsaw_drag_right","jigsaw_required","jigsaw_errorimg","upload_loading","upload_invalid_file","year","month","day","sky","hour","minute","second","calendar","now","today","weeknow","monthnow","yearnow","day_title","day_title_1","monthname","backdate","picktime","H","from_to","end","provideLayout","html_scroll_cont_style","_date_D","_date_sf","dateFormat","dateParse","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","dateWeek","M","dateAdd","setFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","weekPoint","weekStart","getDay","dateWeekFirst","dateWeekLast","dateValid","dateDiff","_dateDiff","z","webpackAsyncContext","req","ids","tipCache","prong","defaultSnapTargetElem","defaultSnapPosition","Text","currentDate","focusValue","format","autoFix","enableHour","arrayNumber","em","enableMinute","es","enableSecond","onclose","doAutoFix","re","mobile","getPeriod","calendarCallback","forms","td","timeCols","onlyTime","Calendar","pad","defaultHour","defaultMinute","defaultSecond","getRangeError","wScrollPercentX","scrollXPosition","wScrollSizeX","wScrollBarThumbX","wScrollPercentY","scrollYPosition","wScrollSizeY","wScrollBarThumbY","dnEv","dnX","dnY","scrLeft","scrTop","wScrollOverflow","mvEv","upEv","scrollTo","ovf","wScrollCont","scrollToY","scrollToX","onscroll","initScroll","scrollState","flow","cont","percent","state","thbX","thbY","scroll_observe","sx","sy","scrollFlex","scrollView","MutationObserver","attributes","deactivated","activated","mimes","playing","getMimeType","filePath","fileName","mimeType","poster","onplay","onpause","controls","vd","paused","play","pause","expanded","toggle","exp","minorElem","toNext","previousElementSibling","toggleClass","dragstart","prevElem","nextElem","pos","help","vert","inVertical","downX","eventX","downY","eventY","posName","sizeName","clientName","downPos","minPos","maxPos","movRect","pick","expandedIcon","collapsedIcon","hoverWrap","hoverIndex","sum","count","hoverItem","cancelable","html_star","onMouseenter","half","allowHalf","step","stars","onMouseleave","templateHooks","Alert","TemplateAlert","Confirm","TemplateConfirm","Tip","TemplateTip","Loading","TemplateLoading","rs","rj","com","omit","loader","templateDir","endsWith","errorComponent","_css_camelize","_set_style","getComputedStyle","_number","focusIndex","setFocus","clickArrow","clickIndicator","indicatorDots","duration","childList","provideLeafLevel","rows","isExpanded","slot_rows","row","vr","vi","cg","mw","cellpadding","cellspacing","isEscape","escape","navigator","userAgent","chrome","match","firefox","agent","safari","ie","appName","documentMode","app","location","protocol","wechat","version","android","isBadAndroid","appVersion","iphone","ios","ipad","addEvent","cue","cueNo","isCmd","_EventUser","_event_remove","pull","_event_name","_event_space","sort","_event_handlers","EventListener","ctx","one","ori","removeEvent","targetTouches","moveCB","upCB","downEv","moveHdl","upHdl","evX","evY","prevent","userSelect","abs","passive","html_prop_class","tab","buttons","pages","TabButton","SwiperItem","lazy","Swiper","bigSrc","smallSrc","smallWidth","smallLeft","mousedown","handler","big","small","canPlay","data-url","dataURL","img-width","img-height","tip","showFileName","provideUpload","createImageThumbnail","FileReader","readAsDataURL","createVideoThumbnail","getContext","videoWidth","videoHeight","drawImage","toDataURL","URL","createObjectURL","muted","setProgress","beginPath","translate","moveTo","arc","PI","closePath","fillStyle","fill","strokeStyle","stroke","thumbnail","thumbnailSrc","WIDGET","DocView","View","DialogMove","Grid","Table","TableColumns","TableColumn","TableTBody","TableTHead","TableTR","TableTD","TableTH","Tabs","Tab","Album","SubmitButton","Html","Tree","Leaf","PageBar","Split","Toggle","Video","Progress","Timeline","TimelineItem","SlidePicker","Hidden","Textarea","CheckBoxGroup","CheckBox","RadioGroup","Radio","TripleBox","Switch","FileUpload","ImageUpload","Option","Spinner","DatePicker","PickBox","Password","ComboBox","LinkBox","Jigsaw","Form","Rate","install","component","use","html_binds","setup","startY","endY","minY","maxY","optY","optH","self","moveY","lastY","lastTime","speed","lastSpeed","transition","nowY","nowTime","timeStamp","minSpeed","yuH","update","sc","nv","xv","bcrRoot","bcrOpt","ni","xi","asc","optionHeight","keepIndex","getIndex","transEnd","ret","ontouchstart","emit","hover","getInitLoaded","hasChild","childrenList","setExpanded","isFolder","boxSync","triple","checkstate","tripleAll","ico","html_attrs","$attrs","box","html_cont","tree","display","prop","clickStep","clickPopYear","headYear","headPopYear","popYear","auto-hide","clickPopYearStep","mousewheelPopYear","dt","clickPopYearItem","clickPopMonth","headMonth","headPopMonth","popMonth","clickPopMonthItem","bodyList","$event","hasTime","focusHour","scroll-y","scroll-view","bodyListHour","isHourDisabled","clickHour","focusMinute","bodyListMinute","isMinuteDisabled","clickMinute","focusSecond","bodyListSecond","isSecondDisabled","clickSecond","clickNow","clickConfirm","value2date","ny","oy","formatter","bd","ed","setDefaultTime","weekday","dh","dm","fixDate","beginDate","endDate","from","date","callback","focusDate","fm","minHour","maxHour","minMinute","maxMinute","minSecond","maxSecond","bodyListYear","bodyListMonth","bodyListWeek","bodyListDate","cell","O","F","_dialogSnapHooks","_dialogSnap","axis","isDialog","keepHover","hoverTimer","hoverMove","closed","animating","snapStyle","feat","getOptions","_dft_pos","getLocalElem","snapTargetElem","snapCls","layBottom","layTop","_fitpos","lp","lc","closeRelease","listenHide","setListenHide","hoverOver","evs","plus","hvOver","hvMove","extend","addClass","nextUntil","clickCancel","clickOK","hasYear","focusYear","min-value","minYear","max-value","maxYear","keep-index","yearList","hasMonth","focusMonth","minMonth","maxMonth","monthList","hasDate","minDate","maxDate","dateList","hasHour","hourList","hasMinute","minuteList","hasSecond","secondList","hasWeek","focusWeek","minWeek","maxWeek","weekList","nd","xd","weekFirst","weekLast","startYear","endYear","monthDays","minTime","maxTime","weekText","startDate","bindCache","runtimeX","events","dftX","getDefaultProp","cuid","config_uid","watchs","Proxy","obj","newval","delete","dftopt","defaultOptions","dfclsCache","idsAll","mergeDeep","extendDeep","vm","commands","ncm","merge","cmdHooks","ev","fireEvent","once","sel","CustomEvent","opt","divide","slotsChildren","cls","isDisplay","ri","rowIndex","isElement","has","assign","Map","jquery","prepend","before","constructor","cloneDeep","str","Function","allowMinus","className","$strTrim","urlEncode","urlDecode","decodeURIComponent","urlParam","A","substring","urlComplete","wifiConfirm","dtask","downloader","createDownload","nativeUI","showWaiting","task","toast","runtime","openFile","filename","closeWaiting","start","link","downloadTarget","networkinfo","getCurrentType","closePopup","slots","getChildren","ms","cr","d1","it","setInterval","d2","cos","clearInterval","print","ownerDocument","outerHTML","input2text","printf","frames","wPrintFrame","open","write","queryEncode","config","contentType","Qs","arrayFormat","ajax","lock","responseType","disposition","headers","decodeURI","blob","Blob","Submit","submit","rsv","validate","group","Ajax","defaults","interceptors","_dfopt","catchReject","reason","init_text","locked","isSuccess","isError","setThumbLeft","timer","thumb","thumbWidth","mainWidth","hf","track","mouseenter","TemplateJigsaw","hoverDrop","main","ondrop","_adjacent_where","_adjacent_query","_div","frag","createDocumentFragment","insertAdjacentHTML","insertBefore","lastElementChild","lastChild","firstElementChild","checkedValue","uncheckedValue","checkedText","uncheckedText","dataUrl","svg","imgWidth","imgHeight","square","columns","cols","dc","defaultColspan","MediaUploadItem","doFormat","buttonPosition","rightward","activeElement","stepBy","endValue","beginValue","tip_uid","btns","decimal","isPartial","getRelates","c0","c1","c2","w_name","indicator-dots","rot","rotate","swiper","maxWidth","cv","sticky","initFixedCells","requestAnimationFrame","fixedCells","reverse","colIndex","cellIndex","tbody","hiddens"],"mappings":"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,CACjC,OACA,EACA,kBAED,6BAA8B,CAC7B,OACA,EACA,kBAED,iCAAkC,CACjC,OACA,EACA,kBAED,8BAA+B,CAC9B,OACA,EACA,kBAED,kCAAmC,CAClC,OACA,EACA,kBAED,6BAA8B,CAC7B,OACA,EACA,kBAED,iCAAkC,CACjC,OACA,EACA,kBAED,mCAAoC,CACnC,OACA,EACA,kBAED,uCAAwC,CACvC,OACA,EACA,kBAED,iCAAkC,CACjC,OACA,EACA,kBAED,qCAAsC,CACrC,OACA,EACA,kBAED,gCAAiC,CAChC,OACA,EACA,kBAED,oCAAqC,CACpC,OACA,EACA,kBAED,6BAA8B,CAC7B,OACA,EACA,kBAED,iCAAkC,CACjC,OACA,EACA,kBAED,8BAA+B,CAC9B,OACA,EACA,kBAED,kCAAmC,CAClC,OACA,EACA,kBAED,+BAAgC,CAC/B,OACA,EACA,kBAED,mCAAoC,CACnC,OACA,EACA,kBAED,6BAA8B,CAC7B,OACA,EACA,kBAED,iCAAkC,CACjC,OACA,EACA,kBAED,mCAAoC,CACnC,OACA,EACA,kBAED,uCAAwC,CACvC,OACA,EACA,kBAED,gCAAiC,CAChC,OACA,EACA,kBAED,oCAAqC,CACpC,OACA,EACA,kBAED,6BAA8B,CAC7B,OACA,EACA,kBAED,iCAAkC,CACjC,OACA,EACA,kBAED,gCAAiC,CAChC,OACA,EACA,kBAED,oCAAqC,CACpC,OACA,EACA,kBAED,gCAAiC,CAChC,OACA,EACA,kBAED,oCAAqC,CACpC,OACA,EACA,kBAED,2BAA4B,CAC3B,OACA,EACA,kBAED,+BAAgC,CAC/B,OACA,EACA,kBAED,8BAA+B,CAC9B,OACA,EACA,kBAED,kCAAmC,CAClC,OACA,EACA,kBAED,UAAW,CACV,OACA,GAED,aAAc,CACb,OACA,GAED,cAAe,CACd,OACA,GAED,eAAgB,CACf,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,oBAAqB,CACpB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,SAAU,CACT,OACA,EACA,iBACA,iBACA,iBACA,kBAED,YAAa,CACZ,OACA,EACA,iBACA,iBACA,iBACA,kBAED,sBAAuB,CACtB,OACA,EACA,kBAED,0BAA2B,CAC1B,OACA,EACA,kBAED,yBAA0B,CACzB,OACA,EACA,kBAED,6BAA8B,CAC7B,OACA,EACA,kBAED,2BAA4B,CAC3B,OACA,EACA,kBAED,+BAAgC,CAC/B,OACA,EACA,kBAED,0BAA2B,CAC1B,OACA,EACA,kBAED,8BAA+B,CAC9B,OACA,EACA,kBAED,wBAAyB,CACxB,OACA,EACA,kBAED,4BAA6B,CAC5B,OACA,EACA,kBAED,mBAAoB,CACnB,OACA,EACA,kBAED,uBAAwB,CACvB,OACA,EACA,kBAED,2BAA4B,CAC3B,OACA,GAED,+BAAgC,CAC/B,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,iCAAkC,CACjC,OACA,GAED,+BAAgC,CAC/B,OACA,GAED,mCAAoC,CACnC,OACA,GAED,4BAA6B,CAC5B,OACA,GAED,gCAAiC,CAChC,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,iCAAkC,CACjC,OACA,GAED,kCAAmC,CAClC,OACA,GAED,sCAAuC,CACtC,OACA,GAED,yBAA0B,CACzB,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,iBAAkB,CACjB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,aAAc,CACb,OACA,GAED,gBAAiB,CAChB,OACA,GAED,cAAe,CACd,OACA,GAED,iBAAkB,CACjB,OACA,GAED,cAAe,CACd,OACA,GAED,iBAAkB,CACjB,OACA,GAED,eAAgB,CACf,OACA,GAED,kBAAmB,CAClB,OACA,GAED,cAAe,CACd,OACA,GAED,iBAAkB,CACjB,OACA,GAED,mBAAoB,CACnB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,cAAe,CACd,OACA,GAED,iBAAkB,CACjB,OACA,GAED,gBAAiB,CAChB,OACA,GAED,mBAAoB,CACnB,OACA,GAED,eAAgB,CACf,OACA,GAED,kBAAmB,CAClB,OACA,GAED,cAAe,CACd,OACA,GAED,iBAAkB,CACjB,OACA,GAED,aAAc,CACb,OACA,GAED,gBAAiB,CAChB,OACA,GAED,aAAc,CACb,OACA,GAED,gBAAiB,CAChB,OACA,GAED,qBAAsB,CACrB,OACA,EACA,kBAED,wBAAyB,CACxB,OACA,EACA,kBAED,YAAa,CACZ,OACA,GAED,aAAc,CACb,OACA,GAED,kBAAmB,CAClB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,kBAAmB,CAClB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,4BAA6B,CAC5B,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,8BAA+B,CAC9B,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,4BAA6B,CAC5B,OACA,GAED,gBAAiB,CAChB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,kBAAmB,CAClB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,4BAA6B,CAC5B,OACA,GAED,4BAA6B,CAC5B,OACA,GAED,gCAAiC,CAChC,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,gBAAiB,CAChB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,kBAAmB,CAClB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,kBAAmB,CAClB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,qBAAsB,CACrB,OACA,EACA,kBAED,yBAA0B,CACzB,OACA,EACA,kBAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,4BAA6B,CAC5B,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,kBAAmB,CAClB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,yBAA0B,CACzB,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,gBAAiB,CAChB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,0BAA2B,CAC1B,OACA,GAED,kBAAmB,CAClB,OACA,GAED,sBAAuB,CACtB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,4BAA6B,CAC5B,OACA,GAED,yBAA0B,CACzB,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,2BAA4B,CAC3B,OACA,GAED,oBAAqB,CACpB,OACA,GAED,wBAAyB,CACxB,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,iBAAkB,CACjB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,qBAAsB,CACrB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,yBAA0B,CACzB,OACA,GAED,6BAA8B,CAC7B,OACA,GAED,gBAAiB,CAChB,OACA,GAED,oBAAqB,CACpB,OACA,GAED,mBAAoB,CACnB,OACA,GAED,uBAAwB,CACvB,OACA,GAED,iBAAkB,CACjB,OACA,GAED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","file":"publish/lib/index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"dfish\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dfish\"] = factory();\n\telse\n\t\troot[\"dfish\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"main\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"main\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0113803f\":\"d77b21dd\",\"chunk-02baca6a\":\"9815366c\",\"chunk-0afcc52e\":\"7484dcc9\",\"chunk-1da003f6\":\"81e550e0\",\"chunk-280378c6\":\"70b61444\",\"chunk-2d0a3376\":\"6a65ba64\",\"chunk-2d0a448b\":\"1817e2f9\",\"chunk-2d0aad2b\":\"a5bab1c6\",\"chunk-2d0abff0\":\"722db78f\",\"chunk-2d0af116\":\"9f7b804d\",\"chunk-2d0b8aa2\":\"f569f187\",\"chunk-2d0ba936\":\"01595884\",\"chunk-2d0bac21\":\"4d196e97\",\"chunk-2d0bdd0a\":\"6f5f5456\",\"chunk-2d0bdf2c\":\"4b839de8\",\"chunk-2d0c0fe2\":\"e534545d\",\"chunk-2d0c8d69\":\"a33870c1\",\"chunk-2d0ccf93\":\"05dc5835\",\"chunk-2d0d660f\":\"e479c58b\",\"chunk-2d0dd4a8\":\"7f91b165\",\"chunk-2d0df0d6\":\"33f24f0f\",\"chunk-2d0e53b4\":\"298c7f72\",\"chunk-2d210667\":\"84a39c13\",\"chunk-2d21d0ff\":\"fc02690b\",\"chunk-2d228891\":\"47688c48\",\"chunk-2d22d7b5\":\"845a0c3a\",\"chunk-2f7f0670\":\"1eded247\",\"chunk-3c4da96a\":\"bde18e88\",\"chunk-77ff8882\":\"4a84e56b\",\"chunk-8de76d78\":\"497da84b\",\"chunk-48d23b5a\":\"6d771606\",\"chunk-2d0c8faa\":\"a54886b2\",\"chunk-3d7d76fb\":\"522adf0b\",\"chunk-4bd43f40\":\"150b1b6d\",\"chunk-5f709e3a\":\"2d5a5ba6\",\"chunk-6c284fc1\":\"72db6ea9\",\"chunk-7b95e342\":\"bfa9c0a1\",\"chunk-c7c01ff4\":\"75574bb3\",\"chunk-f191aa40\":\"cd190158\",\"chunk-2d230454\":\"b153727a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0113803f\":1,\"chunk-02baca6a\":1,\"chunk-1da003f6\":1,\"chunk-280378c6\":1,\"chunk-2f7f0670\":1,\"chunk-3c4da96a\":1,\"chunk-77ff8882\":1,\"chunk-8de76d78\":1,\"chunk-48d23b5a\":1,\"chunk-4bd43f40\":1,\"chunk-6c284fc1\":1,\"chunk-7b95e342\":1,\"chunk-f191aa40\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpdfish\"] = window[\"webpackJsonpdfish\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"bb84\",\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['align', 'valign', 'gap'],\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n html_align_class() {\r\n return [\r\n this.x.align && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-align-' + this.x.align,\r\n this.x.valign && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-valign-' + this.x.valign\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./AlignParent.vue?vue&type=script&lang=js\"\nexport * from \"./AlignParent.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Leaf.vue?vue&type=style&index=0&id=1baf3a86&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FormBase.vue?vue&type=style&index=0&id=ee1fc5c0&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Video.vue?vue&type=style&index=0&id=7ee48295&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Jigsaw.vue?vue&type=style&index=0&id=5f202dd8&lang=css\"","<template>\r\n <w-alert>\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-dialog-move>\r\n <div class=\"w-alert-move\" w-width=\"*\">\r\n <div class=\"w-alert-title\" v-if=\"title\">{{title}}</div>\r\n </div>\r\n </w-dialog-move>\r\n <i class=\"w-alert-close f-i f-i-close\" @click=\"close\"></i>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot>\r\n <div w-width=\"*\" class=\"w-alert-text\" v-html=\"text\"></div>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar v-if=\"showButton!==false\" :class=\"['w-alert-buttonbar', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\" :ownproperty=\"true\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-alert>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n const icons = {\r\n info: '.f-i .f-i-alert-info',\r\n warning: '.f-i .f-i-alert-warning',\r\n success: '.f-i .f-i-alert-success',\r\n question: '.f-i .f-i-alert-question',\r\n error: '.f-i .f-i-alert-error'\r\n }\r\n\r\n export default {\r\n props: ['text', 'title', 'icon', 'showButton'],\r\n data() {\r\n return {\r\n defaultIconType: 'info'\r\n }\r\n },\r\n methods: {\r\n save(e) {\r\n $.dialog(e).cueYes()\r\n },\r\n close(e) {\r\n $.close(e)\r\n }\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n typeIcon() {\r\n return icons[this.icon] || this.icon || icons[this.defaultIconType]\r\n }\r\n },\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import { render } from \"./TemplateAlert.vue?vue&type=template&id=291bdc3e\"\nimport script from \"./TemplateAlert.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateAlert.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Option.vue?vue&type=style&index=0&id=9b750ac0&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Dialog from './Dialog.vue'\r\n import MenuButton from './MenuButton.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n let inst = null\r\n\r\n export default {\r\n name: 'w-menu',\r\n mixins: [Dialog],\r\n methods: {\r\n x_default() {\r\n return {\r\n autoHide: true,\r\n independent: true,\r\n }\r\n },\r\n hasBubble(a, b) {\r\n if (this.contains(a, b)) return true\r\n let p = $(a).closest('w-menu,w-menubutton')\r\n if (p && (p = p.parentMenu) && p.rootCommander == this.rootCommander) return true\r\n },\r\n arrow(a) {\r\n let b = this.$refs.bbr.el()\r\n let c = $.bcr(b)\r\n b.scrollTop += c.height * a\r\n },\r\n mousewheel(e) {\r\n this.arrow(e.wheelDelta < 0 ? 1 : -1)\r\n },\r\n getRoot() {\r\n let c = this\r\n while (c.getCommander().$options.name === 'w-menubutton') c = c.getCommander().parentMenu\r\n return c\r\n },\r\n // implement\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.mag_l || c.mag_r) {\r\n if (c.bottom < 0) {\r\n c.top += c.bottom\r\n if (c.top < 0) {\r\n this.setMaxHeight(c.height + c.top)\r\n c.top = 0\r\n }\r\n this.fixSnapStyle()\r\n } else if (c.top < 0) {\r\n c.bottom += c.top\r\n if (c.bottom < 0) {\r\n this.setMaxHeight(c.height + c.bottom)\r\n c.bottom = 0\r\n }\r\n this.fixSnapStyle()\r\n }\r\n } else {\r\n if (c.bottom < 0) {\r\n this.setMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.setMaxHeight(c.height + c.top)\r\n }\r\n }\r\n },\r\n html_buttons() {\r\n return this.slots_children().map(s => {\r\n let n = s.type.name\r\n return n === 'w-button' || n === 'w-submitbutton' ? h(MenuButton, s.props, s.children) : s\r\n })\r\n },\r\n html_slots() {\r\n return [\r\n this.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-up'\r\n })),\r\n h(Vertical, {\r\n class: 'w-menu-bbr',\r\n height: '*',\r\n ref: 'bbr',\r\n onwheel: this.mousewheel\r\n }, {\r\n default: () => this.html_buttons()\r\n }),\r\n this.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-down'\r\n })),\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-dialog w-vertical', this.animateClass, this.snapClass, this.x.dropClass, {\r\n 'z-hide': this.isDeactivated,\r\n 'z-full': this.x.fullScreen,\r\n 'z-max-height': this.maxHeight,\r\n }]\r\n },\r\n root() {\r\n return this.getRoot()\r\n },\r\n rootCommander() {\r\n return this.root.commander\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n },\r\n mounted() {\r\n if (this.context && this.context.$options.name !== 'w-menubutton') {\r\n if (inst) {\r\n $.close(inst)\r\n }\r\n inst = this\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menu {\r\n box-shadow: none;\r\n border: 1px solid #ccc;\r\n background: #fff;\r\n }\r\n\r\n .w-menu .w-split {\r\n height: 1px;\r\n background: #ddd;\r\n margin: 2px 0;\r\n }\r\n\r\n .w-menu-arr {\r\n height: 18px;\r\n line-height: 1;\r\n text-align: center;\r\n cursor: pointer;\r\n }\r\n\r\n .w-menu-arr:hover {\r\n background: #f5f5f5;\r\n }\r\n</style>\n","import script from \"./Menu.vue?vue&type=script&lang=js\"\nexport * from \"./Menu.vue?vue&type=script&lang=js\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=0cc8b3b0&lang=css\"\n\nexport default script","<script>\r\n import Button from './Button.vue'\r\n export default {\r\n mixins: [Button],\r\n computed: {\r\n html_class() {\r\n return 'w-tab'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-tab {\r\n background: #f8f8f8;\r\n }\r\n .w-tab.z-on {\r\n background: #fff;\r\n }\r\n</style>\r\n","import script from \"./TabButton.vue?vue&type=script&lang=js\"\nexport * from \"./TabButton.vue?vue&type=script&lang=js\"\n\nimport \"./TabButton.vue?vue&type=style&index=0&id=db7c48b8&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n\r\n export default {\r\n name: 'w-pagebar',\r\n mixins: [ButtonBar],\r\n emits: ['click:item'],\r\n props: ['limit', 'size', 'offset', 'buttonCount', 'noFirstLast', 'face', 'jump'],\r\n data() {\r\n return {\r\n isJumpFocus: false,\r\n showDrop: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n limit: 1,\r\n size: 0,\r\n offset: 0,\r\n buttonCount: 5,\r\n face: 'normal',\r\n gap: 0,\r\n valign: 'middle',\r\n }\r\n },\r\n inCurrent(a) {\r\n return this.currentPage == a.text\r\n },\r\n clickItem(e, i) {\r\n let b = (i - 1) * this.x.limit\r\n if (b != this.x.offset) {\r\n e.runType = 'click:item'\r\n e.value = b\r\n this.trigger(e, b)\r\n }\r\n },\r\n clickDrop(e) {\r\n this.showDrop = true\r\n },\r\n onJumpClick(e) {\r\n let v = Math.max(0, $.number(this.$refs.jumpInput.value))\r\n this.clickItem(e, v)\r\n },\r\n html_button(i, t, ic, ds) {\r\n return h('button', {\r\n class: ['w-pagebar-button w-pagebar-num', {'z-on': !t && !ic && i == this.currentPage, 'z-ds': ds, [ic]: ic}],\r\n disabled: ds,\r\n onclick: e => this.clickItem(e, i)\r\n }, t || (ic ? '' : i))\r\n },\r\n html_slots() {\r\n return this.x.face === 'button' ? this.html_face_button() :\r\n this.x.face === 'simple' ? this.html_face_simple() : \r\n this.html_face_normal()\r\n },\r\n html_buttons() {\r\n return [h(Button, {\r\n class: 'w-pagebar-button w-pagebar-prev',\r\n icon: '.f-i .f-i-angle-left',\r\n disabled: this.currentPage == 1,\r\n title: $.loc.page_text.prev,\r\n onclick: e => this.clickItem(e, this.currentPage - 1)\r\n }), h(Button, {\r\n class: 'w-pagebar-button w-pagebar-next',\r\n icon: '.f-i .f-i-angle-right',\r\n disabled: this.currentPage == this.sumPage,\r\n title: $.loc.page_text.next,\r\n onclick: e => this.clickItem(e, this.currentPage + 1)\r\n })]\r\n },\r\n html_drop() {\r\n let s = []\r\n if (this.x.buttonCount) {\r\n s.push(h(Button, {\r\n class: 'w-pagebar-button w-pagebar-button-count w-pagebar-prev',\r\n ref: 'drop',\r\n text: this.currentPage + '/' + this.sumPage,\r\n onclick: e => this.clickDrop(e)\r\n }))\r\n }\r\n if (this.showDrop) {\r\n let b = []\r\n for (let i = 1, sp = this.sumPage; i <= sp; i ++) b.push(h(Button, {text: i, onClick: e => this.clickItem(e, i)}))\r\n s.push(h(Menu, {snap: {target: () => this.$refs.drop, position: 'v', indent: 1}, onClose: () => this.showDrop = false}, {default: () => b}))\r\n }\r\n return s\r\n },\r\n html_face_simple() {\r\n return this.html_drop().concat(this.html_buttons())\r\n },\r\n html_face_button() {\r\n let b = this.html_buttons()\r\n b.splice(1, 0, ...this.html_drop())\r\n return b\r\n },\r\n html_face_normal() {\r\n const s = []\r\n let sp = this.sumPage\r\n let cp = this.currentPage\r\n let n = $.number(this.x.buttonCount)\r\n let f = Math.max(1, cp - Math.ceil(n / 2) + 1)\r\n let l = Math.min(sp + 1, f + n)\r\n let d = l - f < n ? Math.max(1, l - n) : f\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(1, this.labelFirst, this.iconFirst, cp == 1))\r\n }\r\n s.push(this.html_button(cp - 1, this.labelPrev, this.iconPrev, cp == 1))\r\n for (let i = d; i < l; i++) {\r\n s.push(this.html_button(i))\r\n }\r\n s.push(this.html_button(cp + 1, this.labelNext, this.iconNext, cp >= this.sumPage))\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(sp, this.labelLast, this.iconLast, cp >= this.sumPage))\r\n }\r\n if (this.x.jump) {\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-to'\r\n }, $.loc.to))\r\n s.push(h('input', {\r\n class: 'w-pagebar-jump-input',\r\n ref: 'jumpInput',\r\n onfocus: e => this.isJumpFocus = true,\r\n onblur: e => this.isJumpFocus = false,\r\n onkeydown: e => e.keyCode == 13 && this.onJumpClick(e)\r\n }))\r\n s.push(h('button', {\r\n class: 'w-pagebar-button w-pagebar-jump-button',\r\n onclick: this.onJumpClick\r\n }, 'GO'))\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-page'\r\n }, $.loc.page))\r\n }\r\n return s\r\n },\r\n html_face_mini() {\r\n return this.html_face_normal()\r\n },\r\n },\r\n computed: {\r\n currentPage() {\r\n return (Math.ceil(this.x.offset / this.x.limit) || 0) + 1\r\n },\r\n sumPage() {\r\n return Math.ceil(this.x.size / this.x.limit) || 1\r\n },\r\n labelFirst() {\r\n return this.x.face === 'normal' ? $.loc.page_text.first : ''\r\n },\r\n labelLast() {\r\n return this.x.face === 'normal' ? $.loc.page_text.last : ''\r\n },\r\n labelNext() {\r\n return this.x.face === 'normal' ? $.loc.page_text.next : ''\r\n },\r\n labelPrev() {\r\n return this.x.face === 'normal' ? $.loc.page_text.prev : ''\r\n },\r\n iconFirst() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-first' : ''\r\n },\r\n iconLast() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-last' : ''\r\n },\r\n iconNext() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-right' : ''\r\n },\r\n iconPrev() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-left' : ''\r\n },\r\n html_class() {\r\n return [\r\n 'w-buttonbar w-horizontal',\r\n 'z-face-' + this.x.face,\r\n this.html_align_class,\r\n this.isJumpFocus && 'z-jump-on',\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-pagebar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-num {\r\n display: flex;\r\n position: relative;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n border: 1px solid #ddd;\r\n background: #fff;\r\n cursor: pointer;\r\n }\r\n\r\n .w-pagebar-num .w-button-text {\r\n padding: 0\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num {\r\n min-width: 30px;\r\n padding: 0 10px;\r\n height: 32px;\r\n flex-shrink: 0;\r\n margin-right: -1px;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num:last-child,\r\n .w-pagebar.z-face-mini .w-pagebar-num:last-child{\r\n margin-right: 0;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on {\r\n font-weight: 700;\r\n background: var(--w--focus-color);\r\n border-color: var(--w--focus-color);\r\n color: #fff;\r\n z-index: 1;\r\n cursor: default;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-hv {\r\n color: #3e89fa;\r\n border-color: var(--w--focus-color);\r\n z-index: 1;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on.z-hv {\r\n color: #fff;\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num {\r\n min-width: 23px;\r\n padding: 0 3px;\r\n height: 23px;\r\n flex-shrink: 0;\r\n margin-right: 3px;\r\n }\r\n \r\n .w-pagebar.z-face-mini .f-i {\r\n color: #999;\r\n font-size: 14px;\r\n }\r\n\r\n .w-pagebar.z-face-mini .f-i.z-ds,\r\n .w-pagebar.z-face-mini .f-i.z-ds:hover {\r\n color: #ccc;\r\n background: #f9f9f9;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-pagebar.z-face-mini .w-pagebar-num:hover {\r\n border-color: var(--w--focus-color);\r\n color: var(--w--focus-color);\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num.z-on {\r\n background: var(--w--focus-color);\r\n border-color: var(--w--focus-color);\r\n color: #fff;\r\n cursor: default;\r\n }\r\n \r\n \r\n .w-pagebar.z-face-button .w-button {\r\n margin-right: -1px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button:last-child {\r\n margin-right: 0;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button-main {\r\n padding: 0 6px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-pagebar-button-count {\r\n padding: 0 8px;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button.z-ds {\r\n background: transparent;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button-main {\r\n border: 0;\r\n padding: 3px;\r\n }\r\n\r\n .w-pagebar.z-face-simple .w-button .w-button-icon {\r\n color: #555;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button.z-ds .w-button-icon {\r\n color: #bbb;\r\n }\r\n \r\n \r\n .w-pagebar-num.z-ds {\r\n color: #999;\r\n cursor: default;\r\n background-color: #fff;\r\n }\r\n\r\n .w-pagebar-jump-to {\r\n padding: 0 5px 0 10px;\r\n }\r\n\r\n .w-pagebar-jump-input {\r\n width: 30px;\r\n height: 32px;\r\n border: 1px solid #ddd;\r\n background-color: #fff;\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-pagebar-jump-button {\r\n width: 30px;\r\n height: 30px;\r\n padding: 0;\r\n border: 1px solid #ddd;\r\n background-color: #fafafa;\r\n margin-left: -1px;\r\n color: #888;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-jump-page {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-input {\r\n border-color: var(--w--focus-color);\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-button {\r\n border-color: var(--w--focus-color);;\r\n background-color: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n</style>\r\n","import script from \"./PageBar.vue?vue&type=script&lang=js\"\nexport * from \"./PageBar.vue?vue&type=script&lang=js\"\n\nimport \"./PageBar.vue?vue&type=style&index=0&id=a0cae56c&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-hidden',\r\n mixins: [FormBase],\r\n methods: {\r\n isModified() {\r\n return false\r\n },\r\n html() {\r\n return h('input', {\r\n type: 'hidden',\r\n id: this.uid,\r\n class: 'w-hidden',\r\n name: this.x.name,\r\n value: this.x.modelValue,\r\n ref: 'v'\r\n })\r\n }\r\n },\r\n \r\n }\r\n</script>\r\n","import script from \"./Hidden.vue?vue&type=script&lang=js\"\nexport * from \"./Hidden.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Label from './Label.vue'\r\n import {tipCache} from './Tip.vue'\r\n\r\n const _validate_dft_value = {\r\n required: true,\r\n beforeNow: true,\r\n afterNow: true\r\n }\r\n\r\n\r\n export default {\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['name', 'value', 'modelValue', 'placeholder', 'label', 'readonly', 'readonlyValidate', 'disabled', 'required',\r\n 'validateDefault', 'validateHandler', 'inputWidth', 'inputHeight' ],\r\n emits: ['update:modelValue', 'change', 'blur', 'focus'],\r\n data() {\r\n let mv = this.modelValue\r\n return {\r\n isFormWidget: true,\r\n isFocus: false,\r\n hasBorder: false,\r\n isPlural: false,\r\n warnClass: '',\r\n labelVertical: false,\r\n modifiedValue: mv,\r\n defaultValue: mv,\r\n placeholder_type: '',\r\n }\r\n },\r\n methods: {\r\n val(v) {\r\n if (arguments.length == 0)\r\n return this.x.modelValue\r\n let ov = this.x.modelValue\r\n this.x.modelValue = v\r\n let changed = ov !== v\r\n if (typeof ov === 'object') {\r\n changed = JSON.stringify(ov) != JSON.stringify(v)\r\n }\r\n if (changed) {\r\n this.warnClass && this.warn(false)\r\n if (this.isUsableVal(v)) {\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n }\r\n }\r\n return v\r\n },\r\n formVal() {\r\n return this.input_value\r\n },\r\n isUsableVal(v) { //implement\r\n return true \r\n },\r\n defaultRuleValue(name) {\r\n let r = this.rules[name]\r\n if (r != null) {\r\n if (Array.isArray(r)) {\r\n r = r[0]\r\n }\r\n return r && r.value ? r.value : r\r\n }\r\n },\r\n valid(trigger) {\r\n let e = this.getValidError(trigger)\r\n if (e) {\r\n this.warn()\r\n this.showErrorTip(e.text)\r\n }\r\n return !e\r\n },\r\n getValidError(trigger, val) {\r\n let ques = trigger ? this.validTriggers[trigger] : this.validQueues\r\n if (ques && (this.isNormal || (this.isReadonly && this.x.readonlyValidate))) {\r\n let v = val !== undefined ? val : this.isPlural ? this.groupFormVal() : this.formVal()\r\n if (typeof v !== 'string')\r\n v = Array.isArray(v) ? v.join(',') : v == null ? '' : ('' + v);\r\n v = v.trim()\r\n let hs = this.validHooks\r\n for (let q of ques) {\r\n let rv = typeof q.rule !== 'object' ? q.rule : q.rule.value !== undefined ? q.rule.value : q.rule\r\n let e = hs[q.type](v, rv, q)\r\n if (e) return e\r\n }\r\n }\r\n },\r\n formErr(que, arg) {\r\n let label = this.getLabelText()\r\n let type = que.type\r\n let text = que.rule && que.rule.text\r\n if (!text) {\r\n text = $.loc.ps.apply(null, [$.loc.form[type], label || ''].concat(arg != null && arg !== '' ? arg : [])) || ''\r\n }\r\n return {\r\n wid: this.uid,\r\n name: this.x.name,\r\n type,\r\n label,\r\n text,\r\n }\r\n },\r\n warn(a) {\r\n let w = typeof a === 'string' ? a : a !== false ? 'z-err' : ''\r\n this.warnClass = w\r\n if (!w && this._tip) {\r\n $.close(this._tip)\r\n this._tip = null\r\n }\r\n },\r\n showErrorTip(text) {\r\n this.scrollIntoView({\r\n ease: 200,\r\n success: () => {\r\n this._tip = this.exec({\r\n type: 'Tip',\r\n text,\r\n face: 'warn',\r\n independent: true,\r\n snap: {\r\n target: this.errorTipTarget\r\n }\r\n })\r\n }\r\n })\r\n },\r\n focus() {\r\n this.$refs.v.focus()\r\n return this\r\n },\r\n formText() {\r\n let t = this.val()\r\n return t == null ? '' : t\r\n },\r\n getLabelText() {\r\n let t = this.x.label || (this.pubParent && this.pubParent.x.label)\r\n return t ? (t.text || t) : ''\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n },\r\n baseFocus(e) {\r\n this.isFocus = true\r\n this.warn(false)\r\n this.trigger(e)\r\n },\r\n baseBlur(e) {\r\n if (!this.isFocusTarget(e.relatedTarget)) this.isFocus = false\r\n this.trigger(e)\r\n setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) {\r\n let time = new Date().getTime()\r\n if (time - tipCache.time > 100) this.valid('blur')\r\n }\r\n }, 100)\r\n },\r\n snapElem() {\r\n return this.el('main')\r\n },\r\n hasBubble(a) {\r\n return this.snapElem().contains(a.isWidget ? a.el() : a)\r\n },\r\n isFocusTarget(el) {\r\n // implement\r\n },\r\n // @original: 检测表单是否有修改,对照参考的值为初始值\r\n isModified(original) {\r\n let dv = original ? this.defaultValue : this.modifiedValue\r\n let mv = this.x.modelValue\r\n if (dv == null) dv = ''\r\n if (mv == null) mv = ''\r\n if (dv == mv)\r\n return false\r\n return JSON.stringify(dv) != JSON.stringify(mv)\r\n },\r\n // @original: 设置为true,修改初始值\r\n saveModified(original) {\r\n this.modifiedValue = $.lodash.clone(this.x.modelValue)\r\n if (original) {\r\n this.defaultValue = this.modifiedValue\r\n }\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n this.val(empty || this.defaultValue == null ? '' : this.defaultValue)\r\n },\r\n html_label() {\r\n return this.$slots.label ? this.$slots.label() : (this.x.label && typeof this.x.label === 'object' && h(Label,\r\n this.x.label))\r\n },\r\n html_input() {\r\n return h(this.input_tag, {\r\n class: 'w-input-value',\r\n ref: 'v',\r\n id: this.uid + 'v',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n readonly: this.isReadonly,\r\n disabled: this.isDisabled,\r\n placeholder: this.input_placeholder,\r\n autocomplete: 'off', //off, nope, new-password\r\n //list: 'autocompleteOff',\r\n //role: 'presentation',\r\n oninput: this.oninput,\r\n onfocus: this.baseFocus,\r\n onblur: this.baseBlur,\r\n ...this.input_prop,\r\n })\r\n },\r\n html_input_hidden() {\r\n return this.x.name ? h('input', {\r\n type: 'hidden',\r\n ref: 'v',\r\n name: this.input_name,\r\n value: this.input_value,\r\n disabled: this.x.disabled,\r\n }) : []\r\n },\r\n html_button() {\r\n return []\r\n },\r\n html_form() {\r\n return [\r\n this.slot('prepend'),\r\n this.html_input(),\r\n this.html_button(),\r\n this.slot('append'),\r\n ]\r\n },\r\n html_main() {\r\n let fh = this.x.inputHeight && $.unitSize(this.x.inputHeight)\r\n return h('div', mergeProps({\r\n ref: 'main',\r\n id: this.uid + 'main',\r\n class: ['w-input', {\r\n 'w-input-border': this.hasBorder,\r\n [`f-${this.dir}-gap`]: $.br.compat.gap,\r\n }],\r\n style: {\r\n 'height': fh\r\n },\r\n title: this.input_title\r\n }, this.main_prop), this.html_form())\r\n },\r\n html_slots() {\r\n return [this.html_label(), this.html_main(), this.slot('after'), this.slot('dialog')]\r\n }\r\n },\r\n computed: {\r\n rules() {\r\n return this.x\r\n },\r\n pubValidHooks() {\r\n return {\r\n required: (v, rule, que) => {\r\n if (rule && !v) return this.formErr(que)\r\n },\r\n pattern: (v, rule, que) => {\r\n if (v && (typeof rule === 'string' ? !$.eval(`${rule}.test(v)`, {rule, v}) : !rule.test(v)))\r\n return this.formErr(que)\r\n },\r\n validateHandler: (v, rule) => {\r\n let text = rule && rule(v)\r\n if (text) {\r\n return this.formErr({type: 'validateHandler', rule: {text}})\r\n }\r\n }\r\n }\r\n },\r\n validHooks() {\r\n return this.pubValidHooks\r\n },\r\n validQueues() {\r\n let r = []\r\n let type = 'validateDefault'\r\n if (this.validHooks[type]) r.push({type})\r\n for(let k in this.validHooks) {\r\n if (!r.includes(k)) {\r\n let rule = this.rules[k]\r\n if (rule != null) {\r\n if (Array.isArray(rule)) {\r\n rule.forEach(item => r.push({type: k, rule: item}))\r\n } else {\r\n r.push({type: k, rule})\r\n }\r\n }\r\n }\r\n }\r\n return r\r\n },\r\n validTriggers() {\r\n let r = {}\r\n Object.keys(this.validHooks).forEach(k => {\r\n let d = this.rules[k]\r\n if (d) {\r\n if (Array.isArray(d)) {\r\n for (let e of d) {\r\n if (e.trigger) {\r\n (r[e.trigger] || (r[e.trigger] = [])).push({type: k, rule: e})\r\n }\r\n }\r\n } else if (d.trigger) {\r\n (r[d.trigger] || (r[d.trigger] = [])).push({type: k, rule: d})\r\n }\r\n }\r\n })\r\n return r\r\n },\r\n input_value() {\r\n return this.x.modelValue\r\n },\r\n input_name() {\r\n return this.x.name\r\n },\r\n input_tag() {\r\n return 'input'\r\n },\r\n input_type() {\r\n return 'text'\r\n },\r\n input_title() {\r\n // implement\r\n },\r\n input_prop() {\r\n // implement\r\n },\r\n input_placeholder() {\r\n if (!this.isNormal) return;\r\n let s = this.x.placeholder\r\n if (s == null && $.x.autoPlaceholder && this.x.label) {\r\n s = $.loc.ps($.loc[this.placeholder_type || 'placeholder_input'], (this.x.label.text || this.x.label))\r\n }\r\n return s\r\n },\r\n main_prop() {\r\n // implement\r\n },\r\n isNormal() {\r\n return !this.isReadonly && !this.isDisabled\r\n },\r\n isDisabled() {\r\n return this.x.disabled\r\n },\r\n isReadonly() {\r\n return this.x.readonly\r\n },\r\n errorTipTarget() {\r\n return this\r\n },\r\n html_on() {\r\n // implement\r\n },\r\n html_props() {\r\n let fw = this.x.inputWidth && $.unitSize(this.x.inputWidth)\r\n return {\r\n class: ['w-formbase', this.warnClass, this.html_align_class, {\r\n 'z-on': this.isFocus,\r\n 'z-ds': !this.isNormal,\r\n 'z-req': this.rules.required,\r\n 'z-label-vertical': this.labelVertical,\r\n 'z-fixed': !!fw,\r\n 'z-full': this.x.inputWidth === '*'\r\n }],\r\n style: fw && {\r\n '--w-input-width': fw\r\n },\r\n //'w-input-width': this.x.inputWidth,\r\n ...this.html_on\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-label {\r\n display: flex;\r\n align-items: center;\r\n padding-right: 10px;\r\n flex-shrink: 0;\r\n justify-content: flex-end;\r\n box-sizing: border-box;\r\n width: var(--v-label-width, var(--label-width));\r\n }\r\n\r\n .w-label.z-vertical {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-label-text {\r\n text-align: right;\r\n }\r\n\r\n .w-formbase {\r\n display: flex;\r\n box-sizing: border-box;\r\n align-items: center;\r\n }\r\n\r\n .w-input {\r\n display: flex;\r\n box-sizing: border-box;\r\n min-height: 32px;\r\n overflow: hidden;\r\n align-items: center;\r\n flex: 1;\r\n flex-shrink: 1;\r\n flex-basis: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-label-vertical {\r\n display: block;\r\n }\r\n\r\n .w-formbase.z-label-vertical>.w-input {\r\n max-width: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-fixed>.w-input {\r\n flex-grow: 0;\r\n }\r\n\r\n .w-input-border {\r\n border: 1px solid #ddd;\r\n box-sizing: border-box;\r\n background: #fff;\r\n }\r\n\r\n .w-input-bbr {\r\n display: flex;\r\n flex-shrink: 0;\r\n width: 26px;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 16px;\r\n cursor: pointer;\r\n }\r\n\r\n .w-input-bbr.f-i-caret-down {\r\n font-size: 18px;\r\n }\r\n\r\n .w-input-bbr button {\r\n width: 100%;\r\n }\r\n\r\n .w-input-main button:hover {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-input-bbr,\r\n .w-input-bbr button,\r\n .w-input-main button:disabled {\r\n color: #a3a3a3;\r\n }\r\n\r\n .w-formbase.z-on>.w-input-border,\r\n .w-input-border.z-drop {\r\n border-color: var(--w--focus-color);\r\n }\r\n\r\n .w-input-value {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-input-border>.w-input-value {\r\n width: 100%;\r\n border: 0;\r\n padding: 1px 0 1px 10px;\r\n background: transparent;\r\n }\r\n\r\n input::placeholder,\r\n textarea::placeholder,\r\n .w-input-placeholder {\r\n color: #a6a6a6;\r\n }\r\n\r\n .w-dropbox-text {\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding-left: 10px;\r\n text-align: left;\r\n }\r\n \r\n .w-dropbox-dialog.z-mob {\r\n max-width: calc(100% - 40px);\r\n max-height: calc(100% - 100px);\r\n }\r\n\r\n .w-textarea .w-input-border>.w-input-value {\r\n height: 100%;\r\n padding: 5px 10px;\r\n box-sizing: border-box;\r\n font-family: inherit;\r\n }\r\n\r\n .w-textarea .w-input-border {\r\n height: 100%;\r\n }\r\n\r\n .w-checkbox,\r\n .w-triplebox,\r\n .w-radio {\r\n margin: 0\r\n }\r\n\r\n .w-triplebox {\r\n display: inline-flex;\r\n justify-content: center;\r\n }\r\n\r\n .w-checkboxgroup>.w-input,\r\n .w-radiogroup>.w-input {\r\n flex-wrap: wrap;\r\n padding-top: 3px;\r\n padding-bottom: 3px;\r\n gap: var(--w-boxgroup-gap, 10px);\r\n --w-compat-gap: var(--w-boxgroup-gap, 10px);\r\n }\r\n\r\n .w-boxgroup-grid {\r\n flex: 1;\r\n display: grid;\r\n grid-template-columns: auto 1fr;\r\n align-items: center;\r\n grid-gap: var(--w-boxgroup-gap);\r\n }\r\n\r\n .w-checkbox-target>*,\r\n .w-radio-target>* {\r\n width: 100%;\r\n }\r\n\r\n .w-checkboxgroup>.w-input>.w-checkbox>.w-input,\r\n .w-radiogroup>.w-input>.w-radio>.w-input {\r\n min-height: auto;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-checkbox-text,\r\n .w-radio-text,\r\n .w-triplebox-text {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-checkbox-appear,\r\n .w-radio-appear,\r\n .w-triplebox-appear {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n border: 1px solid #ccc;\r\n box-sizing: border-box;\r\n line-height: 0;\r\n color: var(--w--focus-color);\r\n background-color: #fff;\r\n box-shadow: 0 1px 2px rgb(0 0 0 / 5%), inset 0px -15px 10px -12px rgb(0 0 0 / 5%);\r\n }\r\n\r\n .w-radio-appear {\r\n border-radius: 20px;\r\n }\r\n\r\n .w-checkbox .w-input-value,\r\n .w-radio .w-input-value,\r\n .w-triplebox .w-input-value {\r\n display: none;\r\n }\r\n\r\n .w-checkbox-appear .f-i,\r\n .w-radio-appear .f-i,\r\n .w-triplebox-appear .f-i {\r\n visibility: hidden;\r\n font-size: 14px;\r\n }\r\n\r\n .w-radio-appear .f-i {\r\n width: 10px;\r\n height: 10px;\r\n background: var(--w--focus-color);\r\n border-radius: 20px;\r\n }\r\n\r\n .w-radio-text,\r\n .w-checkbox-text,\r\n .w-triplebox-text {\r\n word-break: keep-all;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear,\r\n .w-input-value:checked+.w-triplebox-appear,\r\n .w-input-value:checked+.w-radio-appear {\r\n border-color: var(--w--focus-color);\r\n box-shadow: none;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear .f-i,\r\n .w-input-value:checked+.w-triplebox-appear .f-i,\r\n .w-input-value:checked+.w-radio-appear .f-i {\r\n visibility: visible;\r\n }\r\n\r\n .w-triplebox.z-half .w-triplebox-appear:before {\r\n content: '';\r\n position: absolute;\r\n background: var(--w--focus-color);\r\n flex-shrink: 0;\r\n width: 10px;\r\n height: 3px;\r\n }\r\n\r\n .w-formbase.z-ds .w-input-border,\r\n .w-formbase.z-ds .w-checkbox-appear,\r\n .w-formbase.z-ds .w-triplebox-appear,\r\n .w-formbase.z-ds .w-radio-appear {\r\n border-color: #ccc;\r\n background-color: #e6e6e6;\r\n }\r\n\r\n .w-formbase.z-err .w-input-border,\r\n .w-formbase.z-err .w-radio-appear,\r\n .w-formbase.z-err .w-triplebox-appear,\r\n .w-formbase.z-err .w-checkbox-appear,\r\n .w-form.z-err > .w-input{\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text {\r\n position: relative;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text>span:before {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-right: 3px;\r\n }\r\n\r\n .w-label.z-h-align-left {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-label.z-h-align-left>.w-label-text {\r\n text-align: left;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:before {\r\n content: '';\r\n display: none;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:after {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-left: 3px;\r\n }\r\n\r\n .w-form>.w-input {\r\n word-break: break-word;\r\n gap: var(--w-form-gap);\r\n }\r\n\r\n .w-form.z-vertical>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-v-align-left>.w-input,\r\n .w-form.z-h-valign-top>.w-input {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-form.z-v-align-center>.w-input,\r\n .w-form.z-h-valign-middle>.w-input {\r\n align-items: center;\r\n }\r\n\r\n .w-form.z-v-align-right>.w-input,\r\n .w-form.z-h-valign-bottom>.w-input {\r\n align-items: flex-end;\r\n }\r\n\r\n .w-form.z-h-align-left>.w-input,\r\n .w-form.z-v-valign-top>.w-input {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-form.z-h-align-center>.w-input,\r\n .w-form.z-v-valign-middle>.w-input {\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-h-align-right>.w-input,\r\n .w-form.z-v-valign-bottom>.w-input {\r\n justify-content: flex-end;\r\n }\r\n \r\n .w-text > .w-input,\r\n .w-spinner > .w-input,\r\n .w-datepicker > .w-input {\r\n align-items: stretch;\r\n }\r\n \r\n .w-input-value:checked+.w-radio-appear:after {\r\n content: 'a';\r\n position: absolute;\r\n }\r\n \r\n</style>\n","import script from \"./FormBase.vue?vue&type=script&lang=js\"\nexport * from \"./FormBase.vue?vue&type=script&lang=js\"\n\nimport \"./FormBase.vue?vue&type=style&index=0&id=ee1fc5c0&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MenuButton.vue?vue&type=style&index=0&id=3b7da297&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n\r\n\r\n export default {\r\n name: 'w-linkbox',\r\n mixins: [FormBase],\r\n emits: ['input', 'dblclick:item'],\r\n props: ['multiple', 'picker', 'dropWidth', 'separator', 'strict', 'br'],\r\n created() {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n if (!this.isFocus) {\r\n this.initOptions(v)\r\n }\r\n })\r\n },\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n sugger: null,\r\n showSuggest: false,\r\n sug_timer: null,\r\n _KC: null,\r\n imeMode: false,\r\n paste_rng: null,\r\n currOpt: null,\r\n store: [],\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n strict: true\r\n }\r\n },\r\n initOptions(v) {\r\n if (v == null) v = this.x.modelValue\r\n if (v && typeof v !== 'string') {\r\n v = $.array(v)\r\n this.addStore(v)\r\n this.inp().innerHTML = this.html_options(v)\r\n }\r\n },\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n this.val(mv)\r\n },\r\n complete(a) {\r\n this.addStore(a)\r\n this.focus()\r\n let u = this.currOpt || $.rngElement()\r\n let p = this.x.separator || ','\r\n if (u) {\r\n if (u.tagName === 'U') {\r\n this.rng_text(u, 0, a.text)\r\n } else {\r\n if (u.tagName === 'I') {\r\n if (u.nextSibling && u.nextSibling.tagName === 'U') {\r\n u = u.nextSibling\r\n } else {\r\n u = $.after(u, '<u></u>')\r\n this.x.multiple && $.after(u, '<i>' + p + '</i>')\r\n }\r\n } else\r\n u = (!this.x.multiple && this.inp().querySelector('u')) || $.append(this.inp(), '<u></u>')\r\n this.rng_text(u, 0, a.text)\r\n }\r\n $.classAdd(u, '_o')\r\n u.setAttribute('data-value', a.value)\r\n a.forbid && u.setAttribute('data-forbid', '')\r\n let n = u.nextSibling\r\n $.rngCursor(n && !n.nextSibling ? n : u)\r\n this.x.multiple && !n && $.rngCursor($.after(u, '<i>' + p + '</i>')) // 光标在末尾则自动添加逗号分隔符\r\n let m = $.q(`u[data-value=\"${a.value}\"]`, this.inp())\r\n if (m.length > 1) m.eq(0).next('i').addBack().remove()\r\n this.save()\r\n }\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n input(a) {\r\n this.currOpt = a\r\n let v = a.innerText.replace(/^[\\s,]+|[\\s,]+$/g, '')\r\n clearTimeout(this.sug_timer)\r\n if (v == '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n this.trigger(this.createEvent('input', v), v)\r\n }, 500)\r\n }\r\n },\r\n focus() {\r\n this.$refs.inp.focus()\r\n this.warn(false)\r\n return this\r\n },\r\n inp() {\r\n return this.$refs.inp\r\n },\r\n fixStyle() {\r\n let c = $.rngElement()\r\n let g = false\r\n let t\r\n let uid = this.uid\r\n let inp = this.inp()\r\n if (!inp.contains(c))\r\n c = inp\r\n t = c.innerText\r\n if (this.paste_rng)\r\n c = this.paste_rng.parentElement()\r\n if (c.id === uid)\r\n c = inp\r\n if (c.id === uid + 't') {\r\n if (t) {\r\n if (c.firstChild.nodeType === 3) {\r\n let r = $.rngCursor(c)\r\n let u = document.createElement('u')\r\n r.extractContents()\r\n u.appendChild(document.createTextNode(t))\r\n r.insertNode(u)\r\n $.rngCursor(u)\r\n c = u\r\n } else {\r\n $.q('br', inp).remove()\r\n if (c.firstChild)\r\n c = c.firstChild\r\n else\r\n $.rngCursor(c)\r\n }\r\n } else\r\n return this.closeDrop()\r\n }\r\n $.q('br', inp).remove()\r\n // 输入框内之只允许存在U和I两种标签。输入过程中浏览器可能会自动生成 <font> 标签,需要去除它\r\n if (c.tagName === 'FONT') {\r\n if (c.parentNode.tagName === 'U') {\r\n let d = c.previousSibling.nodeValue\r\n let c = c.parentNode\r\n let t = c.innerText\r\n this.rng_text(c, t.indexOf(d) + d.length + 1, t)\r\n } else if (c.parentNode.id === uid + 't') {\r\n t = c.parentNode.innerText\r\n c = $.replaceWith(c, '<u></u>')\r\n c.innerText = t\r\n }\r\n }\r\n\r\n // 如果U标签后面跟的标签不是 <i>,</i> 就要合并\r\n if (c !== inp && c.tagName !== 'I' && c.nextSibling && c.nextSibling.tagName !== 'I') {\r\n if (c.nextSibling.nodeType === 3) {\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n } else {\r\n t = c.innerText\r\n this.rng_text(c, t.length, t + c.nextSibling.innerText)\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n g = true // 有更新\r\n }\r\n }\r\n $.q('u:has(br)', inp).remove()\r\n t = c.innerText\r\n // match text\r\n let n = []\r\n let p = this.x.separator || ','\r\n\r\n // 文本中如果包含分隔符 , 则分成若干选项\r\n if (this.x.multiple && t.length > 1 && t.indexOf(p) > -1) {\r\n let d = [],\r\n f = t.length - $.rngCursorOffset(),\r\n h, m = []\r\n t.split(p).forEach(s => {\r\n if (h = $.strTrim(s)) {\r\n g = this.param(h)\r\n d.push('<u' + (g ? ' class=_o data-value=\"' + g.value + '\"' + (g.forbid ? ' data-forbid' : '') : '') +\r\n '>' + h + '</u>')\r\n g ? m.push('u[data-value=\"' + g.value + '\"]') : n.push(h)\r\n } else\r\n d.push('')\r\n })\r\n m.length && (m = $.q(m.join(','), inp).next('i').addBack()) // 收集重复数据,以备删除\r\n let o = $.replaceWith(c, d.join('<i>' + p + '</i>'))\r\n let k = 0\r\n if (!this.paste_rng || this._KC === 188) { // 保留原有光标位置\r\n do {\r\n if ((k += o.innerText.length) >= f) {\r\n this.rng_text(o, k - f)\r\n break\r\n }\r\n } while (o = o.previousSibling)\r\n }\r\n m.length && (m.remove(), $.q('i + i, i:first-child', inp).remove()) // 删除重复数据\r\n g = true\r\n if ((c = $.rngElement()) && c.tagName === 'U' && !c.getAttribute('data-value'))\r\n this.input(c)\r\n else\r\n this.closeDrop()\r\n } else {\r\n if (t) {\r\n if ($.classAny(c, '_o') && !this.param(t)) {\r\n $.classRemove(c, '_o')\r\n c.removeAttribute('data-value')\r\n g = true\r\n } else if (!this.x.strict)\r\n g = true\r\n this.input(c)\r\n } else {\r\n g = true\r\n this.closeDrop()\r\n }\r\n }\r\n if (g) {\r\n this.save()\r\n //this._online && n.length > 1 && this.match({text: n.join(p)})\r\n }\r\n this.paste_rng = null\r\n },\r\n // 选项上的光标移动到指定位置 /@a -> elem, b -> cursor point, c -> text?\r\n rng_text(a, b, c) {\r\n let n = $.rngSelection()\r\n c != null && (a.innerText = c)\r\n n.selectNodeContents(a)\r\n $.rngCursor(n, b)\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n else this.cmd(c, this.formVal())\r\n },\r\n clickDropper(e) {\r\n e.stopPropagation()\r\n this.suggest(true)\r\n let c = this.x.dropper\r\n if (typeof c === 'function') c(this)\r\n else this.cmd(c, this.formVal())\r\n },\r\n addStore(m) {\r\n if (m && typeof m !== 'string') {\r\n let r = $.array(m).filter(v => !this.store.find(s => s.value == v.value))\r\n if (r.length) this.store = this.store.concat(r)\r\n }\r\n },\r\n param(t) {\r\n return this.store.find(v => v.text == t)\r\n },\r\n save() {\r\n let strict = this.x.strict\r\n let r = []\r\n let m = []\r\n $.q('> u', this.inp()).each((i, u) => {\r\n let value = u.getAttribute('data-value')\r\n let text = u.innerText\r\n if (value) {\r\n r.push(value)\r\n m.push({\r\n value,\r\n text\r\n })\r\n } else if (!strict) {\r\n r.push(text)\r\n m.push({\r\n value: text\r\n })\r\n }\r\n })\r\n //this.$refs.v.value = r.join(',')\r\n this.val(m)\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 13) {\r\n e.preventDefault()\r\n }\r\n },\r\n onkeyup(e) {\r\n if (!this.imeMode) {\r\n let k = this._KC = e.keyCode\r\n let m\r\n if (k === 13 || k === 38 || k === 40 || k === 17) { // 38:up, 40:down, 17:ctrl\r\n e.stopPropagation()\r\n } else {\r\n this.fixStyle()\r\n }\r\n this._KC = null\r\n }\r\n },\r\n onclick(e) {\r\n if (this.isNormal) {\r\n if (e.target && e.target.tagName === 'U' && !e.target.getAttribute('data-value')) {\r\n this.input(e.target)\r\n } else {\r\n let c = $.rngElement()\r\n c.tagName === 'U' ? this.input(c) : this.closeDrop()\r\n }\r\n }\r\n },\r\n ondblclick(e) {\r\n if (e.target.tagName === 'U' && e.target.getAttribute('data-value')) {\r\n let v = $.array(this.x.modelValue).find(o => o.value == e.target.getAttribute('data-value'))\r\n if (v) {\r\n e.runType = 'dblclick:item'\r\n e.value = v\r\n this.trigger(e, v)\r\n window.getSelection().removeAllRanges()\r\n }\r\n }\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options(v) {\r\n let p = this.x.separator || ','\r\n if (v == null) v = this.x.modelValue\r\n if (v !== 'string') {\r\n let b = $.array(v)\r\n let r = []\r\n $.lodash.each(b, (o, i) => {\r\n r.push('<u' + (o.value ? ' class=_o data-value=\"' + o.value + '\"' : '') + (o.forbid ? ' data-forbid' :\r\n '') + '>' + o.text + '</u>')\r\n if (!this.x.multiple) return false\r\n r.push('<i>' + p + '</i>')\r\n })\r\n return r.join('')\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-linkbox-input f-flex-1',\r\n ref: 'inp',\r\n id: this.uid + 't',\r\n contentEditable: this.isNormal,\r\n onkeyup: this.onkeyup,\r\n onkeydown: this.onkeydown,\r\n onclick: this.onclick,\r\n ondblclick: this.ondblclick,\r\n onfocus: e => {\r\n this.isFocus = true\r\n },\r\n onblur: e => {\r\n this.isFocus = false\r\n },\r\n })\r\n },\r\n html_input() {\r\n let p = this.input_placeholder\r\n return [\r\n this.html_input_hidden(),\r\n this.html_var(),\r\n h('div', {\r\n class: 'w-input-placeholder'\r\n }, this.input_value ? null : p),\r\n this.showSuggest && h(Dialog, {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width),\r\n scrollY: true,\r\n autoHide: true,\r\n snap: {\r\n target: () => this.el('main'),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: () => this.showSuggest = false\r\n }, this.$slots)\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: !this.isNormal,\r\n onclick: this.clickDropper\r\n }))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (this.x.strict && $.q('u:not([data-value])').length > 0) {\r\n return this.formErr({\r\n type: 'invalid_option'\r\n })\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n return typeof this.x.modelValue === 'string' ? this.x.modelValue : $.array(this.x.modelValue).map(v => v.value)\r\n .join(',')\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text || v.value).join(\r\n ', ')\r\n },\r\n main_prop() {\r\n return {\r\n onclick: this.isNormal && this.focus\r\n }\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br,\r\n 'z-dc': this.getOn('dblclick:item')\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.initOptions()\r\n this.inp().addEventListener('compositionstart', () => {\r\n this.imeMode = true\r\n })\r\n this.inp().addEventListener('compositionend', () => {\r\n this.imeMode = false\r\n })\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-linkbox-input {\r\n height: 100%;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input {\r\n padding-left: 10px;\r\n min-height: 30px;\r\n line-height: 30px;\r\n font-family: verdana;\r\n font-style: normal;\r\n outline: none;\r\n overflow: hidden;\r\n word-break: keep-all;\r\n word-wrap: normal;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u {\r\n padding-right: 1px;\r\n color: #999;\r\n text-decoration: none\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o {\r\n color: #333\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o[data-forbid] {\r\n text-decoration: line-through !important;\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u {\r\n color: #333\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u._o {\r\n color: #275696;\r\n text-decoration: underline\r\n }\r\n\r\n .w-linkbox .w-linkbox-input i {\r\n font-style: normal;\r\n padding: 0 3px 0 1px;\r\n color: #999;\r\n }\r\n\r\n .w-linkbox ._v {\r\n display: inline-block;\r\n height: 22px;\r\n line-height: 22px;\r\n vertical-align: middle\r\n }\r\n\r\n .w-linkbox.z-loading {\r\n color: gray;\r\n }\r\n\r\n .w-linkbox.z-loading .w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox.z-br .w-linkbox-input {\r\n overflow: visible;\r\n word-break: break-all;\r\n word-wrap: break-word;\r\n }\r\n\r\n .w-linkbox .w-input {\r\n position: relative;\r\n }\r\n\r\n .w-linkbox-input:not(:empty)~.w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox .w-input-placeholder {\r\n position: absolute;\r\n left: 0;\r\n padding-left: 10px;\r\n pointer-events: none;\r\n }\r\n</style>\n","import script from \"./LinkBox.vue?vue&type=script&lang=js\"\nexport * from \"./LinkBox.vue?vue&type=script&lang=js\"\n\nimport \"./LinkBox.vue?vue&type=style&index=0&id=d62f9532&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MediaUploadItem.vue?vue&type=style&index=0&id=07113717&lang=css\"","<template>\r\n <button v-bind=\"html_attrs\" :class=\"['f-flex-align', provideOptionParent.$options.name + '-option', {'z-on': isFocus, 'z-ds': disabled, 'z-mul': isMul}]\"\r\n @click=\"click\" :disabled=\"disabled\" :title=\"text\">\r\n <div class=\"f-flex-1 f-line-1\">\r\n <slot>{{text}}</slot>\r\n </div>\r\n <div v-if=\"isMul\" :class=\"['w-option-checked', {'f-i f-i-check': isFocus}]\"></div>\r\n </button>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-option',\r\n mixins: [WidgetBase],\r\n props: ['value', 'text', 'disabled'],\r\n inject: ['provideOptionParent'],\r\n methods: {\r\n click(e) {\r\n if (this.provideOptionParent.clickOption)\r\n this.provideOptionParent.clickOption(this)\r\n }\r\n },\r\n\r\n computed: {\r\n isFocus() {\r\n let m = this.provideOptionParent.x.modelValue\r\n return Array.isArray(m) ? m.includes(this.value) : $.idsAny(m, this.value)\r\n },\r\n isMul() {\r\n return this.provideOptionParent.x.multiple\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-option {\r\n height: var(--w-option-height, 32px);\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n text-align: left;\r\n }\r\n\r\n .w-dropbox-option.z-ds,\r\n .w-dropbox-option.z-ds:hover {\r\n background-color: #f9f9f9;\r\n color: #999;\r\n }\r\n\r\n .w-dropbox-option:hover {\r\n background-color: #f5faff;\r\n }\r\n\r\n .w-dropbox-option.z-on:not(.z-mul) {\r\n background-color: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n\r\n .w-dropbox-option.z-on.z-mul {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-option-checked {\r\n width: 18px;\r\n height: 18px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .w-option.z-mul {\r\n padding-left: 13px;\r\n }\r\n\r\n .w-option-checked.f-i {\r\n border-color: var(--w--focus-color);\r\n }\r\n</style>\n","import { render } from \"./Option.vue?vue&type=template&id=9b750ac0\"\nimport script from \"./Option.vue?vue&type=script&lang=js\"\nexport * from \"./Option.vue?vue&type=script&lang=js\"\n\nimport \"./Option.vue?vue&type=style&index=0&id=9b750ac0&lang=css\"\nscript.render = render\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TabButton.vue?vue&type=style&index=0&id=db7c48b8&lang=css\"","import lodash from 'lodash'\r\n\r\nconst strTrim = (a) => String(a).replace(/^\\s+|\\s+$/g, '')\r\n\r\nconst string = (a) => a == null ? '' : '' + a\r\n\r\n// @a -> str, b -> no html entities?\r\nconst strQuot = (a, b) => {\r\n\ta = String(a)\r\n\tb && (a = a.replace(/<[^>]+>/g, ''))\r\n\treturn a.replace(/\\\"/g, '"')\r\n}\r\n\r\n// 在a中取以b开始的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strFrom = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(d + b.length)\r\n}\r\n\r\n// 在a中取以b结束的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strTo = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(0, d)\r\n}\r\n\r\n// 取字符串字节数(一个汉字算双字节) /@ s -> str, b -> 一个汉字算几个字节?默认2个\r\nconst strLen = (s, b) => {\r\n if (!s) return 0;\r\n if (!b) b = $.x.cnBytes || 2;\r\n let d = 0\r\n for (let i = 0, l = s.length; i < l; i++)\r\n d += s.charCodeAt(i) > 128 ? b : 1;\r\n return d;\r\n}\r\n\r\n// 数字前加0 /@ a -> num, b -> 补成多少长度的字符串?\r\nconst strPad = function(a, b, c) {\r\n\tc = c == null ? '0' : (c + '');\r\n\tif (!b)\r\n\t\treturn a < 10 ? c + a : a;\r\n\ta = a + '';\r\n\twhile (a.length < b)\r\n\t\ta = c + a;\r\n\treturn a\r\n}\r\n\r\nconst strFormat = (a, b, c, d) => {\r\n a != null && (a += '');\r\n if (!a || !b) return a;\r\n if (Array.isArray(b)) {\r\n return a.replace(/\\$\\{?(\\d+)\\}?/g, function($0, $1) {\r\n return b[$1] == null ? (d ? $0 : '') : c ? encodeURIComponent(b[$1]) : b[$1]\r\n });\r\n } else {\r\n return a.replace(/\\$\\{?([a-z_][\\w.]*)\\}?/gi, function($0, $1) {\r\n let e = lodash.get(b, $1)\r\n return e == null ? (d ? $0 : '') : c ? encodeURIComponent(e) : e\r\n });\r\n }\r\n}\r\n\r\nconst strEscape = function(s) {\r\n\treturn s != null ? (s + '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\\\"/g, '"') : '';\r\n}\r\n\r\n// 在 a 中查找 b 并给 b 加上标签样式 c /@ a -> str, b -> key, c -> matchLength?, d -> key cls?\r\nconst strHighlight = function(a, b, c, d) {\r\n\treturn (a = a + '').replace(RegExp('(<[\\\\/!]?\\\\w+(?::\\\\w+)?\\\\s*(?:[-\\\\w]+(?:=(\\'|\")?.*?\\\\2)?\\\\s*)*>)|(' + strSplitword(b, c, true).join('|') + ')', 'ig'), function($0, $1, $2, $3) {\r\n\t \treturn $3 === undefined ? $1 : '<em class=\"' + (d || 'f-keyword') + '\">' + $3 + '</em>'\r\n\t})\r\n}\r\n\r\n// 字符转为regexp支持的模式\r\nconst _s_regexp = function(a) {\r\n\treturn a.replace(/([-.*+?^${}()|[\\]\\/\\\\])/g, '\\\\\\$1')\r\n}\r\n\r\n// @a -> key, b -> matchLength, c -> regexp?\r\nconst strSplitword = function(a, b, c) {\r\n\tlet e = [c ? _s_regexp(a) : a]\r\n let m = a.length\r\n\tif (b > 0 && m > b) {\r\n\t\tfor (let j = m - 1; j >= b; j --) {\r\n\t\t\tfor (let i = 0, l = m - j, f; i <= l; i ++) {\r\n\t\t\t\tf = a.substr(i, j)\r\n\t\t\t\te.push(c ? _s_regexp(f) : f)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn e\r\n}\r\n\r\nexport {string, strTrim, strEscape, strQuot, strFrom, strTo, strPad, strLen, strFormat, strHighlight}\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import ViewAbs from './ViewAbs.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-view',\r\n mixins: [Vertical, ViewAbs],\r\n inject: ['provideView'],\r\n methods: {\r\n html() {\r\n return [this.html_self(true), this.html_pops()]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-vertical f-rel', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Swiper.vue?vue&type=style&index=0&id=385a8e70&lang=css\"","import {strFrom, strTo} from './str.js'\r\n\r\nconst number = (a) => {\r\n var r = typeof a === 'string' ? parseFloat(a.replace(/[^\\d\\.-]|\\b-/g, '')) : +a\r\n return isNaN(r) ? 0 : r\r\n}\r\n// 判断是否数字\r\nconst isNumber = (a) => a != null && !isNaN(a)\r\n\r\n// 如果 a 的大小在 b 和 c 之间,则返回 a。否则返回 b 或 c\nconst numRange = function(a, b, c) {\n\treturn a == null ? ((b || b === 0) ? b : (c || c === 0) ? c : a) : ((b || b === 0) && a < b) ? b : ((c || c === 0) && a > c) ? c : a\n}\n// js小数相加运算出现多位小数的解决办法\nconst numAdd = function(...args) {\r\n let m = 0\r\n let r = 0\r\n args.forEach(a => {\r\n m = Math.max(m, strFrom(a + '', '.').length)\r\n r += a\r\n })\r\n m = Math.pow(10, m)\n\treturn Math.round(r * m) / m\n}\n// 给数字加上分隔符 /@a -> str, b -> length?, c -> separator?, d -> rightward?\nconst numFormat = function(a, b, c, d) {\n\ta = String(a)\n\tb == null && (b = 3)\n\tc == null && (c = ',')\n\tlet e = a.replace(/[^.\\d]/g, '').split('.'), s = e[0], l = s.length, i = d ? 0 : l, t = '', n = a.charAt(0) === '-' ? '-' : '';\r\n\tif (d) {\n\t\tdo {\n\t\t\ti += b;\n\t\t\tt += (i < l ? s.substr(i - b, b) + c : s.substr(i - b));\n\t\t} while (i < l);\n\t} else {\n\t\tdo {\n\t\t\ti -= b;\n\t\t\tt = (i > 0 ? c + s.substr(i, b) : s.substr(0, b + i)) + t;\n\t\t} while (i > 0);\n\t}\n\treturn n + t + (e.length > 1 ? '.' + strFrom(a, '.').replace(RegExp('[.' + c + ']', 'g'), '') : '');\n}\n// 调整小数位数\nconst numDecimal = function(a, b) {\n\tif (!b) {\n\t\treturn parseInt(number(a))\n\t} else if (b < 0) {\n\t\treturn parseFloat(number(a))\n\t} else {\n\t\tlet f = strFrom('' + a, '.')\n\t\treturn f ? strTo('' + a, '.') + '.' + f.slice(0, b) : a\n\t}\n}\r\n\r\nexport {number, isNumber, numRange, numAdd, numFormat, numDecimal}","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n import Img from './Img.vue'\r\n import WidgetAbs from './WidgetAbs.vue'\r\n\r\n export default {\r\n name: 'w-menubutton',\r\n mixins: [Button],\r\n methods: {\r\n exec(...args) {\r\n return this.parentMenu.getRoot().getCommander().exec(...args)\r\n },\r\n drop() {\r\n if (this.showDrop) return\r\n this.closeSub()\r\n this.showDrop = true\r\n this.parentMenu.subMenu = this\r\n },\r\n onclick(e) {\r\n if (this.isMore) return\r\n //this.trigger(e)\r\n setTimeout(() => this.parentMenu.root.close(), 10)\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && e.currentTarget.classList.add('z-hv')\r\n if (this.isMore) {\r\n this.drop()\r\n } else {\r\n this.closeSub()\r\n }\r\n },\r\n closeSub() {\r\n if (this.parentMenu.subMenu) {\r\n this.parentMenu.subMenu.showDrop = false\r\n this.parentMenu.subMenu = null\r\n }\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n let src = this.x.icon\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n r.push(!src || font ? h('i', {\r\n class: 'w-menubutton-icon f-flex-center f-height ' + (src ? src.replace(/\\./g, '') : '')\r\n }) : h('img', {\r\n src: src,\r\n class: 'w-menubutton-icon f-flex-center f-height'\r\n }))\r\n\r\n if (t) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-text f-line-1'\r\n }, t))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-close'\r\n }, h('i', {\r\n class: 'w-menubutton-close-icon f-i f-i-close',\r\n onclick: this.clickClose\r\n })))\r\n }\r\n r.push(h(Img, {\r\n class: 'w-menubutton-drop f-flex-center f-height',\r\n src: this.isMore ? (this.x.dropIcon || '.f-i .f-i-caret-right') : ''\r\n }))\r\n if (this.showDrop) {\r\n r.push(h(Menu, {\r\n autoHide: true,\r\n context: this,\r\n ownproperty: true,\r\n dropClass: this.x.dropClass || this.parentMenu.x.dropClass,\r\n snap: {\r\n target: () => this.el(),\r\n position: '21,12',\r\n indent: 1\r\n },\r\n onClose: () => this.showDrop = null\r\n }, this.$slots))\r\n }\r\n\r\n return r\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'button'\r\n },\r\n isMore() {\r\n return !!this.$slots.default\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n ownerView() { // 因为业务会调用 $.vm(event), 所以返回commander的view\r\n return this.parentMenu.rootCommander.ownerView\r\n },\r\n html_props() {\r\n return {\r\n disabled: this.x.disabled,\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: !this.x.disabled && (e => e.currentTarget.classList.remove('z-hv')),\r\n onclick: this.onclick\r\n }\r\n }\r\n },\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menubutton {\r\n display: inline-flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n margin: 0;\r\n height: 32px;\r\n background: #fff;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-menubutton .f-i {\r\n color: #999;\r\n }\r\n\r\n .w-menubutton-icon {\r\n width: 30px;\r\n }\r\n\r\n .w-menubutton-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n }\r\n\r\n .w-menubutton-drop {\r\n width: 30px;\r\n margin-left: 5px;\r\n }\r\n\r\n .w-menubutton>.w-menubutton-close {\r\n margin-right: -5px;\r\n flex-shrink: 0;\r\n color: #aaa;\r\n }\r\n\r\n .w-menubutton-close-icon:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-menubutton.z-hv,\r\n .w-menubutton.z-drop {\r\n background: #f8f8f8;\r\n }\r\n\r\n .w-menubutton.z-ds {\r\n background-color: #eee;\r\n color: #777;\r\n cursor: default;\r\n }\r\n\r\n .w-menubutton.z-ds .w-menubutton-icon {\r\n color: #bbb;\r\n }\r\n</style>\n","import script from \"./MenuButton.vue?vue&type=script&lang=js\"\nexport * from \"./MenuButton.vue?vue&type=script&lang=js\"\n\nimport \"./MenuButton.vue?vue&type=style&index=0&id=3b7da297&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-combobox',\r\n mixins: [FormBase],\r\n emits: ['input', 'click:item', 'blur', 'focus'],\r\n props: ['multiple', 'dropper', 'picker', 'dropWidth', 'br'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n showSuggest: false,\r\n sug_timer: null,\r\n sensor_text: '',\r\n sensor_width: null,\r\n }\r\n },\r\n methods: {\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n $.lodash.remove(mv, m => !m || !m.text)\r\n this.val(mv)\r\n },\r\n complete(v) {\r\n this.addVal(v)\r\n this.clear()\r\n this.$nextTick(this.focus)\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n clear() {\r\n this.$refs.input.value = this.sensor_text = ''\r\n },\r\n focus() {\r\n this.$refs.input.focus()\r\n this.warn(false)\r\n return this\r\n },\r\n oninput(e) {\r\n let v = e.target.value\r\n this.sensor_text = v\r\n clearTimeout(this.sug_timer)\r\n if (v == '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n e.value = v\r\n this.trigger(e, v)\r\n }, 500)\r\n }\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 8) { // 8:backspace\r\n if (e.target.selectionStart === 0 && e.target.selectionEnd === 0) {\r\n let mv = $.array(this.x.modelValue, true)\r\n if (mv.length) {\r\n mv.splice(mv.length - 1, 1)\r\n this.x.modelValue = mv\r\n }\r\n }\r\n }\r\n //38: up, 40:down\r\n //if (this.showSuggest && (k == 38 || k == 40)) e.preventDefault()\r\n },\r\n onblur(e) {\r\n this.isFocus = false\r\n this.trigger('blur')\r\n setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) this.valid('blur')\r\n }, 100)\r\n },\r\n onfocus(e) {\r\n this.isFocus = true\r\n e.target.value && e.target.dispatchEvent(new Event('input'))\r\n this.trigger('focus')\r\n },\r\n clickItem(e, item) {\r\n e.stopPropagation()\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n },\r\n clickClose(e, item) {\r\n e.stopPropagation()\r\n let mv = $.array(this.x.modelValue, true)\r\n let i = mv.findIndex(v => v.value == item.value)\r\n if (i > -1) {\r\n mv.splice(i, 1)\r\n this.val(mv)\r\n }\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n else this.cmd(c, this.formVal())\r\n },\r\n clickDropper(e) {\r\n e.stopPropagation()\r\n this.suggest(!this.showSuggest)\r\n let c = this.x.dropper\r\n if (typeof c === 'function') c(this)\r\n else this.cmd(c, this.formVal())\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options() {\r\n let m = this.x.modelValue\r\n if (m && typeof m !== 'string') {\r\n return [].concat(m).map(v => h('div', {\r\n class: ['w-combobox-option f-flex-center', {\r\n 'z-forbid': v.forbid\r\n }],\r\n onclick: e => this.clickItem(e, v)\r\n }, [h('div', {\r\n class: 'w-combobox-option-text f-line-1',\r\n title: v.text\r\n }, v.text),\r\n this.isNormal && h('div', {\r\n class: 'w-combobox-option-close f-i f-i-close',\r\n onclick: e => this.clickClose(e, v)\r\n })\r\n ]))\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-combobox-input-wrap'\r\n }, [\r\n h('div', {\r\n class: 'w-combobox-sensor',\r\n ref: 'sensor',\r\n }, this.sensor_text || (this.input_value ? null : this.input_placeholder)),\r\n h('input', {\r\n class: 'w-combobox-input',\r\n style: {\r\n width: this.sensor_width,\r\n },\r\n ref: 'input',\r\n oninput: this.oninput,\r\n onkeydown: this.onkeydown,\r\n onblur: this.onblur,\r\n onfocus: this.onfocus,\r\n placeholder: this.input_value ? null : this.input_placeholder,\r\n })\r\n ])\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: ['w-combobox-list f-flex-1 f-flex f-oh f-height', {'f-h-gap': $.br.compat.gap}],\r\n },\r\n this.html_options(),\r\n this.isNormal && this.html_var(),\r\n this.showSuggest && h(Dialog, {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width),\r\n scrollY: true,\r\n autoHide: true,\r\n snap: {\r\n target: () => this.el('main'),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: () => this.showSuggest = false\r\n }, this.$slots)\r\n )\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: !this.isNormal,\r\n onclick: this.clickDropper\r\n }))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n validateDefault: (v) => {\r\n if (this.$refs.input.value)\r\n return this.formErr({type: 'invalid_option'})\r\n },\r\n ...this.pubValidHooks,\r\n }\r\n },\r\n input_value() {\r\n return typeof this.x.modelValue === 'string' ? this.x.modelValue : $.array(this.x.modelValue).map(v => v.value)\r\n .join(',')\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text).join(', ')\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br\r\n }\r\n },\r\n main_prop() {\r\n return this.isNormal && {\r\n onclick: this.focus\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.sensor) {\r\n new ResizeObserver(() => {\r\n if (this.$refs.sensor) {\r\n this.sensor_width = this.$refs.sensor.offsetWidth + 'px'\r\n }\r\n }).observe(this.$refs.sensor)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-combobox-list {\r\n padding: 2px 3px;\r\n box-sizing: border-box;\r\n align-items: center;\r\n --w-compat-gap: 3px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-combobox-list.f-h-gap {\r\n padding: 1px 3px;\r\n }\r\n \r\n .w-combobox-list.f-h-gap>* {\r\n margin-top: 1px;\r\n margin-bottom: 1px;\r\n }\r\n\r\n .w-combobox-list>.w-combobox-input-wrap:first-child {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-combobox-input-wrap {\r\n display: flex;\r\n }\r\n\r\n .w-combobox-sensor {\r\n position: absolute;\r\n visibility: hidden;\r\n z-index: -1;\r\n white-space: pre-wrap; \r\n }\r\n\r\n .w-combobox-input {\r\n min-width: 14px;\r\n width: 14px;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-combobox-option {\r\n position: relative;\r\n height: 26px;\r\n border: 1px solid #e6e6e6;\r\n background: #f8f8f8;\r\n padding: 0 5px;\r\n background: #f8f8f8;\r\n box-sizing: border-box;\r\n max-width: calc(100% - 21px);\r\n }\r\n\r\n .w-combobox-option.z-forbid .w-combobox-option-text {\r\n text-decoration: line-through;\r\n }\r\n\r\n .w-combobox-option-close {\r\n color: #aaa;\r\n font-size: 12px;\r\n line-height: 0;\r\n margin-left: 5px;\r\n transform: translateY(1px);\r\n cursor: pointer;\r\n }\r\n\r\n .w-combobox-option-close:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option {\r\n border-color: #d0d0d0;\r\n background: transparent;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option ._s {\r\n padding-right: 7px\r\n }\r\n\r\n .w-combobox.z-br .w-combobox-list {\r\n flex-wrap: wrap;\r\n }\r\n</style>\n","import script from \"./ComboBox.vue?vue&type=script&lang=js\"\nexport * from \"./ComboBox.vue?vue&type=script&lang=js\"\n\nimport \"./ComboBox.vue?vue&type=style&index=0&id=0e4ab116&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Horizontal from './Horizontal.vue'\r\n import PubParent from './PubParent.vue'\r\n\r\n export default {\r\n name: 'w-buttonbar',\r\n mixins: [Horizontal, PubParent],\r\n props: ['vertical', 'clickTab'],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n valign: this.vertical ? null : 'middle'\r\n }\r\n },\r\n html_slots() { \r\n let s\r\n if (this.$slots.split) {\r\n let a = this.slots_children()\r\n let b = this.$slots.split()\r\n s = []\r\n for (let i = 0, l = a.length; i < l; i++) {\r\n s.push(a[i])\r\n if (i < l - 1) s.push(b)\r\n }\r\n }\r\n return this.html_scroll_slots(s)\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return this.x.vertical ? 'v' : 'h'\r\n },\r\n html_class() {\r\n return [this.x.vertical ? 'w-vertical' : 'w-horizontal']\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./ButtonBar.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonBar.vue?vue&type=script&lang=js\"\n\nexport default script","// 最后一个属性是数组 / a -> obj, b -> target\n// example: _jsonArray(obj, target, 'a', 'b');\n// 等同于: target['a']['b'].push(obj);\nconst jsonArray = function(a, b) {\n\tfor (var i = 2, l = arguments.length - 1; i < l; i ++)\n\t\tb = b[arguments[i]] || (b[arguments[i]] = {});\n\t(b[arguments[l]] || (b[arguments[l]] = [])).push(a);\n\treturn b[arguments[l]];\n}\r\n\n// example: _jsonChain(obj, target, 'a', 'b');\n// 等同于: target['a']['b'] = obj;\nconst jsonChain = function(a, b) {\n\tfor (var i = 2, l = arguments.length - 1, c = b; i < l; i ++)\n\t\tc = c[arguments[i]] || (c[arguments[i]] = {});\n\tc[arguments[l]] = a;\n\treturn c;\n}\r\n\r\nexport {jsonArray, jsonChain}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Toggle.vue?vue&type=style&index=0&id=431717dc&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import WidgetAbs from './WidgetAbs.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import Pop from './Pop.vue'\r\n import Img from './Img.vue'\r\n\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n\r\n export default {\r\n name: 'w-view',\r\n mixins: [SrcParent],\r\n provide() {\r\n return {\r\n provideView: this\r\n }\r\n },\r\n props: ['commands'],\r\n data() {\r\n return {\r\n isView: true,\r\n pops: [],\r\n }\r\n },\r\n beforeCreate() {\r\n this.popCommanders = {}\r\n },\r\n methods: {\r\n reload() {\r\n this.request()\r\n },\r\n find(a) {\r\n const b = this.el().querySelectorAll(`[w-key=\"${a}\"]`)\r\n for (let c of b) {\r\n if ((c = $(c)) && c.ownerView === this) return c\r\n }\r\n },\r\n fv(a, b) {\r\n let d = this.f(a)\r\n if (arguments.length === 2) {\r\n d && (d.groupFormVal ? d.groupFormVal(b) : d.val(b))\r\n } else if (typeof a === 'object') {\r\n for (let i in a) this.fv(i, a[i])\r\n } else {\r\n return d && (d.groupFormVal ? d.groupFormVal() : d.formVal())\r\n }\r\n },\r\n f(a, b) {\r\n return this.fAll(a, b)[0]\r\n },\r\n // 获取范围内的所有表单 /@a -> name, b -> range?(elem|widget)\r\n fAll(a, b) {\r\n if (a === '*' || a == null) {\r\n for (var i = 0, q = this.getFormList(b, true), l = q.length, d, e, f = []; i < l; i++)\r\n (d = $(q[i])) && d != e && f.push(e = d);\r\n return f;\r\n }\r\n let dom = b ? (b.isWidget ? b.el() : b) : this.el()\r\n let r = $.q(':input[name=\"' + a + '\"]', dom)\r\n if (!r.length) r = $.q(':input[w-name=\"' + a + '\"]', dom)\r\n return $.lodash.map(r.not('[w-form-ignore] :input'), d => $(d))\r\n },\r\n // 获取所有表单,返回一个dom集合 /@ a -> range(widgetID, 可选,如果 range 以 !开头,表示排除), b -> 是否包含disabled的表单\r\n getFormList(a, b) {\r\n if (Array.isArray(a)) return a\r\n let r, f = ':input:not(button)' + (b ? '' : ':not(:disabled)')\r\n if (a && typeof a === 'string') {\r\n let d = a.charAt(0) === '!'\r\n let e = a.replace(/\\!/g, '').split(',').map(v => `[w-key=\"${v}\"] ${f}`)\r\n if (e = e.join())\r\n r = $.q(d ? `${f}:not(${e})` : e, this.el())\r\n } else {\r\n r = $.q(f, a ? (a.isWidget ? a.el() : a) : this.el())\r\n }\r\n return r ? $.lodash.map(r.not('[w-form-ignore] :input')) : []\r\n },\r\n // 获取提交数据 {name: value, ...} /@ a -> range [widgetID, 可选,如果 range 以 !开头,表示排除]\r\n getPostData(range) {\r\n let r = {}\r\n this.getFormList(range).forEach(a => {\r\n let d = a.name\r\n let v = a.value\r\n if (!d) return\r\n switch (a.type) {\r\n case 'text':\r\n let t = a.getAttribute('w-valuetype')\r\n if (t === 'number')\r\n v = v.replace(/[^\\d\\.-]/g, '')\r\n break\r\n case 'checkbox':\r\n if (!a.value || (!a.checked && !(a.indeterminate && a.getAttribute('w-partialsubmit'))))\r\n return null\r\n break\r\n case 'radio':\r\n if (!a.value || !a.checked)\r\n return null\r\n d = a.getAttribute('w-name') || d\r\n break;\r\n case 'select-one':\r\n if (a.selectedIndex < 0)\r\n return null;\r\n break;\r\n }\r\n v && (v = $.strTrim(v))\r\n if (d in r) {\r\n if (!Array.isArray(r[d]))\r\n r[d] = [r[d]]\r\n r[d].push(v)\r\n } else\r\n r[d] = v\r\n })\r\n return r\r\n },\r\n // 表单验证。如果检测到错误,将返回一个包含错误信息的数组 /@r -> range, n -> validate group name\r\n getValidError(range) {\r\n let e, q = this.getFormList(range)\r\n for (let i = 0, l = q.length, c, v; i < l; i++) {\r\n if ((c = $(q[i])) && c.isFormWidget && (v = c.getValidError())) {\r\n if (!e) e = []\r\n if (!e.find(n => n.wid == v.wid)) e.push(v)\r\n }\r\n }\r\n return e\r\n },\r\n // 表单验证。验证通过返回true /@ range -> validaterange\r\n valid(range) {\r\n if (this._err_ns) {\r\n this._err_ns.forEach(v => {\r\n let n = $.vueMap.get(v.wid)\r\n n && n.warn(false)\r\n })\r\n }\r\n let e = this.getValidError(range)\r\n if (e) {\r\n e.forEach(v => $.vueMap.get(v.wid).warn())\r\n $.vueMap.get(e[0].wid).showErrorTip(e[0].text)\r\n }\r\n return !(this._err_ns = e)\r\n },\r\n // @range -> 范围, original -> (设置为true,检测表单是否有修改,对照的值为初始值)\r\n isModified(range, original) {\r\n return this.getFormList(range).find(o => (o = $(o)).isModified && o.isModified(original))\r\n },\r\n // @range -> 范围, original -> (设置为true,设置为true,修改初始值)\r\n saveModified(range, original) {\r\n this.getFormList(range).forEach(o => (o = $(o)).saveModified && o.saveModified(original))\r\n },\r\n resetForm(range, empty) {\r\n this.getFormList(range).forEach(f => {\r\n let c = $(f)\r\n c.reset && c.reset(empty)\r\n })\r\n },\r\n showLoading(a) {\r\n this.cmd({\r\n type: 'Loading',\r\n cover: true,\r\n local: true,\r\n hide: a === false ? true : false\r\n })\r\n },\r\n cmdDialog(cmd, args, commander) {\r\n return new Promise((resolve, reject) => {\r\n if (cmd.hide) {\r\n let o = this.pops.find(v => cmd.hide === true ? v.cmd.type == cmd.type : v.cmd.orientUid == cmd.hide)\r\n return o && this.removeDialog(o.cmd.orientUid)\r\n }\r\n let uid = $.uid()\r\n if (!cmd.orientUid) cmd.orientUid = uid\r\n this.pops.push({\r\n cmd,\r\n args,\r\n commander,\r\n resolve,\r\n reject,\r\n hidden: false,\r\n })\r\n })\r\n },\r\n removeDialog(u) {\r\n this.$nextTick(() => {\r\n let o = this.pops.find(v => v.cmd.orientUid == u)\r\n if (o) {\r\n if (this.pops.findIndex(v => v.cmd.orientUid != u && !v.hidden) > -1) {\r\n o.hidden = true\r\n } else {\r\n this.pops = []\r\n }\r\n }\r\n })\r\n },\r\n getDialogOptions(u) {\r\n return this.pops.find(v => v.cmd.orientUid == u)\r\n },\r\n html_pops() {\r\n return [this.pops.map(p => h(Pop, {p}))]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-view {\r\n position: relative;\r\n }\r\n\r\n</style>\n","import script from \"./ViewAbs.vue?vue&type=script&lang=js\"\nexport * from \"./ViewAbs.vue?vue&type=script&lang=js\"\n\nimport \"./ViewAbs.vue?vue&type=style&index=0&id=273cab06&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Scroll.vue?vue&type=style&index=0&id=54b981aa&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import mimeType from '../util/mime.js'\r\n\r\n const suffixHooks = {\r\n '0': 'js.css.pdf.psd.ai.txt.eps.txt',\r\n xls: 'xls.xlsx',\r\n doc: 'doc.docx.rtf',\r\n ppt: 'ppt.pptx',\r\n htm: 'htm.html',\r\n zip: 'rar.zip.tar.jar.z.7z.ace.lzh.arj.gzip.bz2.cab.uue',\r\n fla: 'fla.swf',\r\n fon: 'eot.otf.fon.font.ttf.ttc.woff.woff2',\r\n iso: 'iso.nrg.mds.mdf.bin.cue.img.fcd.lcd.dmg',\r\n vid: 'avi.asf.wmv.avs.flv.mkv.mov.3gp.mp4.webm.mpa.mpe.mpg.mpeg.dat.dsm.ogm.vob.rm.rmvb.ts.tp.ifo.nsv.m4u.m4v.asx.asr.movie.fvi.pvx.rv.vdo.viv.vivo.wm.wmx.wv.wvx.mpv2.mpg4',\r\n aud: 'aif.aifc.aiff.als.awb.mp3.aac.au.wav.wma.cda.flac.m4a.mid.mka.mp2.mpc.ape.ofr.ogg.ra.wv.tta.ac3.dts.wv.shn.vqf.spc.nsf.adx.psf.minipsf.psf2.minipsf2.rsn.zst',\r\n img: 'jpg.jpeg.gif.png.bmp.tif.tiff.ico'\r\n }\r\n\r\n const suffix = (function() {\r\n let r = {}\r\n for (let k in suffixHooks) {\r\n suffixHooks[k].split('.').forEach(v => r[v] = k == '0' ? v : k)\r\n }\r\n return r\r\n })()\r\n\r\n const getSuffix = function(url) {\r\n let a = $.strFrom(url || '', '.', true).toLowerCase()\r\n return suffix[a] || 'file'\r\n }\r\n\r\n // 把 \"1MB\" 转为字节\r\n const fileByte = function(val) {\r\n let unit\r\n if (val != null && !isNaN(val))\r\n val += 'K'\r\n val = $.number(val.replace(/[a-z]+$/i, function($0) {\r\n unit = $0.charAt(0).toUpperCase();\r\n return ''\r\n }))\r\n return val * (unit === 'K' ? 1024 : unit === 'M' ? 1024 * 1024 : unit === 'G' ? 1024 * 1024 * 1024 : unit ===\r\n 'T' ? 1024 * 1024 * 1024 * 1024 : 1)\r\n }\r\n\r\n const fileTypeHooks = {\r\n video: suffixHooks.vid,\r\n audio: suffixHooks.aud,\r\n image: suffixHooks.img\r\n }\r\n\r\n export default {\r\n name: 'w-fileupload',\r\n mixins: [FormBase],\r\n props: ['uploadSrc', 'thumbnailSrc', 'downloadSrc', 'uploadLimit', 'sizeLimit', 'maxFileSize', 'minFileSize',\r\n 'fileTypes', 'filter', 'success', 'error', 'itemWidth', 'click:item', 'vertical',\r\n ],\r\n emits: ['click:item'],\r\n data() {\r\n return {\r\n list: [],\r\n emiting: false,\r\n dir: 'v',\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this.x.modelValue, v => {\r\n if (this.emiting) return this.emiting = false\r\n this.list = Array.isArray(v) ? v.map(value => {return {value}}) : v ? [{value: v}] : []\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n val(v) {\r\n if (arguments.length == 0) {\r\n let r = []\r\n this.list.forEach(item => item.value && r.push(item.value))\r\n return r\r\n }\r\n this.x.modelValue = v\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n getFileTypes() {\r\n let t = this.x.fileTypes\r\n return t && t !== '*.*' ? t.replace(/\\*/g, '').replace(/;/g, ',').toLowerCase() : ''\r\n },\r\n getAccept() {\r\n let r = []\r\n let t = this.getFileTypes()\r\n if (!t) return\r\n let n = []\r\n t.toLowerCase().split(',').forEach(b => {\r\n if (!b) return\r\n n.push(fileTypeHooks[b] || b)\r\n })\r\n n.forEach(b => {\r\n b && r.push(mimeType(b) || b)\r\n })\r\n return r.join(',')\r\n },\r\n isImage(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'img'\r\n },\r\n isVideo(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'vid'\r\n },\r\n isAudio(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'aud'\r\n },\r\n fileSelected(e) {\r\n if (this.x.uploadLimit > 1 && e.target.files.length + this.list.length > this.x.uploadLimit) {\r\n return $.alert($.loc.ps($.loc.form.upload_limit, this.x.uploadLimit))\r\n }\r\n let xfs = this.x.maxFileSize && fileByte(this.x.maxFileSize)\r\n let nfs = this.x.minFileSize && fileByte(this.x.minFileSize)\r\n let ft = this.getFileTypes()\r\n let xfs_names\r\n let nfs_names\r\n let ft_names\r\n $.lodash.each(e.target.files, file => {\r\n let sfx = '.' + $.strFrom(file.name, '.', true).toLowerCase()\r\n if (xfs && file.size > xfs) {\r\n (xfs_names || (xfs_names = [])).push(file.name)\r\n } else if (nfs && file.size < nfs) {\r\n (nfs_names || (nfs_names = [])).push(file.name)\r\n } else if (ft && !$.idsAny(ft, sfx, ',')) {\r\n (ft_names || (ft_names = [])).push(file.name)\r\n } else {\r\n this.list.push({file})\r\n }\r\n })\r\n if (xfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_maxfilesize, xfs_names.join('<br>'), this.x.maxFileSize))\r\n } else if (nfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_minfilesize, nfs_names.join('<br>'), this.x.minFileSize))\r\n } else if (ft_names) {\r\n $.alert($.loc.ps($.loc.form.upload_invalid_file_type, ft_names.join('<br>')))\r\n }\r\n e.target.value = '' // 获取文件后要设value为空,否则下一次选择同一个文件不会触发onchange\r\n this.nextUpload()\r\n\r\n },\r\n upload(item) {\r\n if (this.x.uploadSrc && !item.loading) {\r\n let src = $.urlFormat(this.x.uploadSrc, this.x.data, this.x)\r\n let fd = new FormData()\r\n fd.append('Filedata', item.file)\r\n item.loading = true\r\n item.source = $.http.CancelToken.source()\r\n $.http.post(src, fd, {\r\n onUploadProgress: e => item.progress = Math.floor(e.loaded / e.total * 100),\r\n cancelToken: item.source.token\r\n }).then(res => {\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n let d = this.x.filter ? this.x.filter(res, this) : res.data\r\n if (!d) {\r\n item.error = {\r\n message: $.loc.form.upload_no_data\r\n }\r\n } else if (d.error) {\r\n item.error = d.error\r\n } else if (!d.id) {\r\n item.error = {\r\n message: $.loc.ps($.loc.form.upload_invalid_data, JSON.stringify(d))\r\n }\r\n } else {\r\n item.value = d\r\n this.x.success && this.x.success(item.value, this, res)\r\n }\r\n this.nextUpload()\r\n if (item.error && item.error.message) $.alert(item.error.message)\r\n }).catch(error => {\r\n item.error = error\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n if (error.response && error.response.status) $.alert(error.response.status + ': ' + error)\r\n })\r\n }\r\n },\r\n nextUpload() {\r\n for (let item of this.list) {\r\n if (item.loading) return\r\n if (item.file && !item.loaded) {\r\n return this.upload(item)\r\n }\r\n }\r\n this.emiting = true\r\n let v = this.val()\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n clickItem(e, item) {\r\n if (!item.value) return\r\n if (this.getOn('click:item')) {\r\n e.runType = 'click:item'\r\n e.value = item.value\r\n this.trigger(e, item.value)\r\n } else if (this.x.downloadSrc) {\r\n $.download($.urlServer(this.x.downloadSrc, item.value, this.x.data))\r\n }\r\n },\r\n remove(item) {\r\n item.source && item.source.cancel()\r\n let i = this.list.findIndex(v => v == item)\r\n this.list.splice(i, 1)\r\n this.nextUpload()\r\n },\r\n formText() {\r\n let v = this.val()\r\n return v.map(m => m.name).join(', ')\r\n },\r\n chooseFile() {\r\n this.$refs.file.click()\r\n },\r\n html_list() {\r\n return this.list.map(item => {\r\n let n = item.value ? item.value.name : item.file.name\r\n return h('div', {\r\n class: ['w-fileupload-value', {\r\n 'z-loading': item.loading,\r\n 'z-err': item.error\r\n }],\r\n style: {\r\n '--w-upload-progress': item.file ? `${item.progress || 0}%` : '',\r\n width: $.unitSize(this.x.itemWidth)\r\n },\r\n title: item.error ? item.error.message : n,\r\n onclick: e => this.clickItem(e, item)\r\n }, [\r\n h('i', {\r\n class: ['w-fileupload-value-icon f-i', 'f-i-file-' + getSuffix(n)]\r\n }),\r\n item.error && h('div', {\r\n class: 'w-fileupload-value-error'\r\n }, $.loc.form.upload_error),\r\n h('div', {\r\n class: 'w-fileupload-value-text f-line-1'\r\n }, n), h('div', {\r\n class: 'w-fileupload-value-close f-i f-i-trash',\r\n title: $.loc.remove,\r\n onclick: e => {\r\n this.remove(item), e.stopPropagation()\r\n }\r\n })\r\n ])\r\n })\r\n },\r\n html_input_form() {\r\n return [\r\n this.html_input_hidden(),\r\n h('input', {\r\n type: 'file',\r\n ref: 'file',\r\n multiple: this.x.uploadLimit != 1,\r\n accept: this.getAccept(),\r\n onchange: this.fileSelected\r\n })\r\n ]\r\n },\r\n html_input_button() {\r\n return h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr',\r\n gap: 10,\r\n }, {\r\n default: () => [this.$slots.button ? this.$slots.button() : h(Button, {\r\n text: '选择文件',\r\n icon: '.f-i .f-i-upload',\r\n class: 'w-fileupload-button',\r\n onclick: this.chooseFile\r\n })]\r\n })\r\n },\r\n html_input_list() {\r\n return this.list.length ? h('div', {\r\n ref: 'list',\r\n class: ['w-fileupload-list', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, this.html_list()) : !this.isNormal ? h('div', {\r\n class: 'w-fileupload-nofile f-flex-align'\r\n }, $.loc.form.no_files) : null\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(this.canUpload && this.html_input_button(), this.html_input_list())\r\n },\r\n\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n for (let item of this.list) {\r\n if (item.loading) {\r\n return this.formErr({type: 'upload_loading'})\r\n }\r\n if (item.error) {\r\n return this.formErr({type: 'upload_invalid_file'})\r\n }\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n let v = this.val()\r\n return v.length == 0 ? '' : JSON.stringify(v)\r\n },\r\n errorTipTarget() {\r\n return this.$refs.uploadbbr || this\r\n },\r\n canUpload() {\r\n if (!this.isNormal) return false\r\n if (this.x.uploadLimit > 0 && this.list.length >= this.x.uploadLimit) return false\r\n return true\r\n },\r\n html_class() {\r\n return {'z-vertical': this.x.vertical}\r\n },\r\n html_style() {\r\n return {\r\n '--w-label-min-height': '32px',\r\n }\r\n },\r\n html_on() {\r\n return {\r\n onclick: () => this.warn(false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-fileupload {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-fileupload>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n\r\n .w-fileupload>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-fileupload input[type=\"file\"],\r\n .w-mediaupload input[type=\"file\"] {\r\n display: none;\r\n }\r\n\r\n .w-fileupload-list {\r\n display: flex;\r\n flex-wrap: wrap;\r\n width: 100%;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-fileupload.z-vertical .w-fileupload-list {\r\n flex-direction: column;\r\n }\r\n\r\n .w-fileupload-button {\r\n background: #f8f8f8;\r\n }\r\n\r\n .w-fileupload-value {\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n box-sizing: border-box;\r\n height: 32px;\r\n border: 1px solid #ddd;\r\n background: #f8f8f8;\r\n overflow: hidden;\r\n }\r\n\r\n .w-fileupload-value.z-loading {\r\n background: linear-gradient(to right, #e5f3ff var(--w-upload-progress), #fff var(--w-upload-progress));\r\n }\r\n\r\n .w-fileupload-value.z-err {\r\n border-color: #f00;\r\n }\r\n\r\n .w-fileupload-value-icon {\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 10px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-fileupload-value-error {\r\n margin-right: 10px;\r\n color: #f00;\r\n }\r\n\r\n .w-fileupload-value-text {\r\n flex: 1;\r\n margin-right: 15px;\r\n max-width: 100%;\r\n }\r\n\r\n .w-fileupload-value-text:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n .w-fileupload.z-ds .w-fileupload-value-close {\r\n display: none;\r\n }\r\n\r\n .w-fileupload-value-close {\r\n padding-right: 8px;\r\n color: #999;\r\n }\r\n\r\n .w-fileupload-value-close:hover {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-fileupload-nofile {\r\n color: #999;\r\n height: 32px;\r\n }\r\n\r\n .w-fileupload.z-err .w-fileupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\n","import script from \"./FileUpload.vue?vue&type=script&lang=js\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js\"\n\nimport \"./FileUpload.vue?vue&type=style&index=0&id=4fe506ce&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import MediaUpload from './MediaUpload.vue'\r\n\r\n export default {\r\n name: 'w-imageupload',\r\n mixins: [MediaUpload],\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'image',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-mediaupload'\r\n },\r\n },\r\n }\r\n</script>\n","import script from \"./ImageUpload.vue?vue&type=script&lang=js\"\nexport * from \"./ImageUpload.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetAbs from './WidgetAbs.vue' \r\n import ViewAbs from './ViewAbs.vue' \r\n import SVGIcon from '../assets/SVGIcon.vue'\r\n import TemplatePreviewMedia from '../template/TemplatePreviewMedia.vue'\r\n import TemplateDateSheet from '../template/TemplateDateSheet.vue'\r\n \r\n\r\n export default {\r\n name: 'w-docview',\r\n mixins: [WidgetAbs, ViewAbs],\r\n provide() {\r\n return {\r\n providePubParent: null,\r\n provideBoxParent: null,\r\n provideRangeParent: null,\r\n }\r\n },\r\n beforeCreate() {\r\n $.docView = this\r\n $.q('#app').append('<div id=w-dfish-pops></div>')\r\n },\r\n methods: {\r\n el() {\r\n return document.getElementById('app')\r\n },\r\n getKey() {\r\n return null\r\n },\r\n previewVideo(src) {\r\n this.cmd({type: 'Dialog', template: TemplatePreviewMedia, data: {type: 'video', src}})\r\n },\r\n previewImage(imgs, options) {\r\n this.cmd({type: 'Dialog', template: TemplatePreviewMedia, data: {type: 'image', imgs, options}})\r\n },\r\n //dateOptions: {value, format, minValue, maxValue, success}\r\n dateSheet(dateOptions, dialogOptions) {\r\n this.exec({\r\n type: 'Dialog',\r\n template: TemplateDateSheet,\r\n width: '100%',\r\n height: '55%',\r\n position: 'b',\r\n cover: true,\r\n autoHide: true,\r\n data: dateOptions,\r\n on: {\r\n 'click:cover': $.close\r\n }\r\n }, null, dialogOptions)\r\n },\r\n html() {\r\n return [\r\n this.$slots.default && this.$slots.default(),\r\n this.html_pops(),\r\n h(SVGIcon),\r\n ]\r\n }\r\n },\r\n mounted() {\r\n if ($.x.debug) {\r\n\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./DocView.vue?vue&type=script&lang=js\"\nexport * from \"./DocView.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import THead from './TableTHead.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-tbody',\r\n mixins: [THead, Scroll],\r\n inject: ['_provideTable'],\r\n props: ['children'],\r\n provide() {\r\n return {\r\n _provideThead: null,\r\n provideInBody: true,\r\n _provideTBody: this,\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this._provideTable.x, (x) => {\r\n this.x.scrollX = x.scrollX\r\n this.x.scrollY = this._provideTable.fixed ? true : x.scrollY\r\n }, {\r\n immediate: true\r\n })\r\n },\r\n methods: {\r\n viewCurrent(f) {\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView({x: 'left'}))\r\n }\r\n },\r\n onScroll(e) {\r\n let hd = this._provideTable.slotHooks.thead\r\n if (hd) {\r\n hd.el.scrollLeft = e.target.scrollLeft\r\n }\r\n },\r\n onScrollPosition(v) {\r\n let el = this._provideTable.el()\r\n if (el && v == 'left' || v == 'center' || v == 'right') {\r\n el.setAttribute('w-scroll-x', v)\r\n }\r\n },\r\n onScrollAttributeChange(e) {\r\n let el = this._provideTable.el()\r\n if (el) {\r\n e.forEach(m => {\r\n let n = m.attributeName\r\n m.target.hasAttribute(n) ? el.setAttribute(n, '') : el.removeAttribute(n)\r\n })\r\n }\r\n },\r\n html_slots() {\r\n return this.html_scroll_slots(this.html_tbody())\r\n }\r\n },\r\n computed: {\r\n inBody() {\r\n return true\r\n },\r\n html_class() {\r\n return ['w-vertical f-flex-1 f-oh', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./TableTBody.vue?vue&type=script&lang=js\"\nexport * from \"./TableTBody.vue?vue&type=script&lang=js\"\n\nexport default script","import {number, isNumber} from './number.js'\r\nimport {css} from './css.js'\r\n\r\nconst T = true\r\nconst F = false\r\nconst N = null\r\nconst doc = document\r\nconst cvs = document.documentElement\r\n\r\nconst _arr_comma = a => a.split(',')\r\n\r\nconst _snaptype = {\n\th : _arr_comma('21,12,34,43'),\n\tv : _arr_comma('41,14,32,23'),\n\ta : _arr_comma('41,32,14,23,21,34,12,43,11'),\n\tt: ['tt'], b: ['bb'], l: ['ll'], r: ['rr'], c: ['cc'], top: ['tt'], bottom: ['bb'], left: ['ll'], right: ['rr'],\n\ttl: ['11'], tr: ['22'], rt: ['22'], rb: ['33'], br: ['33'], bl: ['44'], lb: ['44'], lt: ['11'], \n\t'1': ['11'], '2': ['22'], '3': ['22'], '4': ['33'], '5': ['33'], '6': ['44'], '7': ['44'], '8': ['11']\n}\r\n\nconst _snapMag = (function() {\n\tvar r = [23,22,33,32,21,34,'rr','rl'], b = [14,23,34,43,33,44,'bb','tb'], i, o = {pix: {r:{}, b:{}}, mag: {l:{}, r:{}, t:{}, b:{}}, inner:{}};\n\ti = r.length; while (i --) o.pix.r[r[i]] = T;\n\ti = b.length; while (i --) o.pix.b[b[i]] = T;\n\tvar r = [21,34,22,33,'rr','rl'], b = [41,32,44,33,'bt','bb'], l = [12,43,11,44,'lr','ll'], t = [14,23,11,22,'tb','tt'];\n\ti = r.length; while (i --) o.mag.r[r[i]] = T;\n\ti = b.length; while (i --) o.mag.b[b[i]] = T;\n\ti = l.length; while (i --) o.mag.l[l[i]] = T;\n\ti = t.length; while (i --) o.mag.t[t[i]] = T;\n\tvar r = [11,22,33,44,'tt','bb','ll','rr'];\n\ti = r.length; while (i --) o.inner[r[i]] = T;\n\treturn o;\n})()\r\n\r\nconst canvasOffset = function(o) {\n\tvar a = bcr(o);\n\ta.right = cvs.clientWidth - a.right;\n\ta.bottom = cvs.clientHeight - a.bottom;\n\treturn a;\n}\r\n\r\nconst offset = function(a, b) {\n\tlet r = {top: 0, left: 0, width: a.offsetWidth, height: a.offsetHeight}\n\tdo {\n\t\tr.top += a.offsetTop\r\n r.left += a.offsetLeft\n\t} while((a = a.offsetParent) && b != a)\n\treturn r\n}\r\n\r\nconst bcr = function(a) {\n\tvar b = cvs.clientLeft, c = cvs.scrollLeft, d = cvs.clientTop, e = cvs.scrollTop, o = a && a != doc && (a.isWidget ? a.el() : a), r = o && o.getBoundingClientRect();\n\treturn r ? {left : r.left - b + c, top : r.top - d + e, right : r.right - b + c, bottom : r.bottom - d + e, width : r.width, height : r.height} :\n\t\ta == document ? {left: c, top: e, right: cvs.clientWidth + c, bottom: cvs.clientHeight + e, width: cvs.clientWidth, height: cvs.clientHeight} : N;\n}\r\n\n// 获取对齐吸附模式的位置参数。元素四个角,左上为1,右上为2,右下为3,左下为4。目标元素在前,浮动元素在后。如\"41\"代表目标元素的左下角和浮动元素的左上角粘合。\n// @ a -> width, b -> height, c -> toObj offset, d -> adsorb type, e - > fit?[是否自动选择位置,让可见区域最大化], f -> indent[缩进多少像素], u -> range?[浮动元素的限定范围元素]\nconst snap = function(a, b, c, d, e, f, u) {\n\tif (!c)\n\t\tc = bcr(doc);\n\telse if (c.nodeType)\n\t\tc = bcr(c);\n\telse if (c.isWidget)\n\t\tc = bcr(c.el());\n\telse if (c.originalEvent || c.clientX != N) {\n\t\tc = c.originalEvent || c;\n\t\tc = {left: c.clientX, right: c.clientX, top: c.clientY, bottom: c.clientY};\n\t}\n\tvar t = [], l = [], g, h, k = -1, f = number(f), ew = cvs.clientWidth, eh = cvs.clientHeight,\n\t\ts = d ? (_snaptype[d] || ('' + d).split(',')) : _snaptype.a;\r\n\tif (/[1-4]/.test(s[0])) {// 1-4是边角对齐 .\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\n\t\t\tg = + s[i].charAt(0), h = + s[i].charAt(1);\n\t\t\tt.push((g === 1 || g === 2 ? c.top : c.bottom) - (h === 3 || h === 4 ? b : 0));\n\t\t\tl.push((g === 1 || g === 4 ? c.left : c.right) - (h === 2 || h === 3 ? a : 0));\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\n\t\t\tif (o && p) {\n\t\t\t\tk = i;\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\t// 计算可见面积,取最大的那个\n\t\t\t\tvar ot = t[i] < 0 ? -t[i] : 0,\n\t\t\t\t\tor = l[i] + a > ew ? l[i] + a - ew : 0,\n\t\t\t\t\tob = t[i] + b > eh ? t[i] + b - eh : 0,\n\t\t\t\t\tol = l[i] < 0 ? -l[i] : 0;\n\t\t\t\tm = s[i] === '14' || s[i] === '34' ? (a-or)*(b-ot) : s[i] === '23' || s[i] === '43' ? (a-ol)*(b-ot) :\n\t\t\t\t\ts[i] === '32' || s[i] === '12' ? (a-ol)*(b-ob) : (a-or)*(b-ob);\n\t\t\t\tif (!n || n < m) {\n\t\t\t\t\tn = m;\n\t\t\t\t\tk = i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {// t r b l 是边线中点对齐 .\r\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\n\t\t\tg = s[i].charAt(0), h = s[i].charAt(1);\r\n\t\t\tt.push((g === 'r' || g === 'l' || g === 'c' ? (c.top + c.bottom) / 2 : (g === 't' ? c.top : c.bottom)) - (h === 'r' || h === 'l' || h === 'c' ? b / 2 : (h === 'b' ? b : 0)));\n\t\t\tl.push((g === 't' || g === 'b' || g === 'c' ? (c.left + c.right) / 2 : (g === 'r' ? c.right : c.left)) - (h === 't' || h === 'b' || h === 'c' ? a / 2 : (h === 'r' ? a : 0)));\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\n\t\t\tif (o && p) {\n\t\t\t\tk = i;\n\t\t\t\tbreak;\n\t\t\t} else if (o || p) {\n\t\t\t\tif (d) {\n\t\t\t\t\tm = d == _snaptype.v ? (g == 1 || g == 2 ? - t[i] : t[i] + b - eh) : (g == 1 || g == 4 ? - l[i] : l[i] + a - ew);\n\t\t\t\t\tif (!n || n > m) {\n\t\t\t\t\t\tn = m;\n\t\t\t\t\t\tk = i;\n\t\t\t\t\t}\n\t\t\t\t} else if (k < 0)\n\t\t\t\t\tk = i;\n\t\t\t}\n\t\t}\n\t}\r\n\tif (k < 0) k = 0;\n\tvar y = s[k], o = {left : l[k], top : t[k], bottom: eh - (t[k] + b), right: ew - (l[k] + a), type : y};\r\n\t_snapMag.pix.r[y] && (o.pix_r = T);\n\t_snapMag.pix.b[y] && (o.pix_b = T);\n\t_snapMag.mag.r[y] && (o.mag_r = T, o.mag = 'r');\n\t_snapMag.mag.b[y] && (o.mag_b = T, o.mag = 'b');\n\t_snapMag.mag.l[y] && (o.mag_l = T, o.mag = 'l');\n\t_snapMag.mag.t[y] && (o.mag_t = T, o.mag = 't');\n\t_snapMag.inner[y] && (o.inner = T);\r\n\tif (f && o.mag) {\n\t\tif (o.inner) {\n\t\t\to.mag_t ? (o.top -= f) : o.mag_b ? (o.bottom -= f) : o.mag_r ? (o.right -= f) : (o.left -= f);\n\t\t} else {\n\t\t\to.mag_t ? (o.bottom -= f) : o.mag_b ? (o.top -= f) : o.mag_r ? (o.left -= f) : (o.right -= f);\n\t\t}\n\t}\n\tif (e) {// 自适应位置 \n\t\tvar l = o.left, r = o.right, b = o.bottom, t = o.top;\r\n\t\tif (o.mag_t || o.mag_b) {\n\t\t\tif (o.pix_r)\n\t\t\t\tr = Math.max(0, l < 0 ? r + l : r), l += o.right - r;\n\t\t\telse\n\t\t\t\tl = Math.max(0, r < 0 ? r + l : l), r += o.left - l;\n\t\t}\n\t\tif (o.mag_l || o.mag_r) {\n\t\t\tif (o.pix_b)\n\t\t\t\tb = Math.max(0, t < 0 ? b + t : b), t += o.bottom - b;\n\t\t\telse\n\t\t\t\tt = Math.max(0, b < 0 ? b + t : t), b += o.top - t;\n\t\t}\n\t\to.left = l, o.right = r, o.top = t, o.bottom = b;\n\t} \n\tif (d === 'cc' && o.top < 0)\n\t\to.top = 0;\n\tif (u) {\r\n \t\tvar s = canvasOffset(u);\n\t\to.top -= (s.top);\n\t\to.left -= (s.left);\n\t\to.right -= (s.right);\n\t\to.bottom -= (s.bottom);\r\n\t}\n\to.width = a;\n\to.height = b;\n\to.target = c; \n\treturn o;\n}\r\n\r\n// @a -> el, b -> snap option\nconst snapTo = function(a, b) {\n\tvar e = b.type;\n\tif (e) {\n\t\tif (b.pix_r) {\n\t\t\ta.style.right = b.right + 'px';\n\t\t\ta.style.left = '';\n\t\t} else {\n\t\t\ta.style.left = b.left + 'px';\n\t\t\ta.style.right = '';\n\t\t}\n\t\tif (b.pix_b) {\n\t\t\ta.style.bottom = b.bottom + 'px';\n\t\t\ta.style.top = '';\n\t\t} else {\n\t\t\ta.style.top = b.top + 'px';\r\n\t\t\ta.style.bottom = '';\n\t\t}\n\t} else\n\t\tcss(a, b)\n}\r\n\r\nexport {bcr, offset, snap, snapTo}\n","// 实现指令 v-label-width=\"100\"\r\n// 设定\r\nimport $ from '../dfish.js'\r\n\r\nfunction labelWidth(el, bind) {\r\n el.style.setProperty('--v-label-width', $.unitSize(bind.value))\r\n}\r\n\r\nexport default {\r\n created: labelWidth,\r\n updated: labelWidth,\r\n}\n","let _uidCnt = 0\r\nconst _uidKey = 'uid'\r\nconst _guid = () => (_uidCnt++).toString(36) + ':'\r\n\r\nexport default function(o) {\r\n if (o) {\r\n return o[_uidKey] || (o[_uidKey] = _guid())\r\n }\r\n return _guid()\r\n}","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Img from './Img.vue'\r\n import Menu from './Menu.vue'\r\n\r\n export default {\r\n name: 'w-button',\r\n pubParentName: 'w-buttonbar',\r\n mixins: [WidgetBase],\r\n props: ['text', 'icon', 'focusIcon', 'face', 'target', 'closable', 'loading', 'disabled', 'vertical', 'dropClass', 'dropPosition', 'dropHover', 'dropIcon', 'showDropIcon'],\r\n inject: ['providePubParent'],\r\n emits: ['click:close'],\r\n data() {\r\n return {\r\n dropper: null,\r\n showDrop: false,\r\n mouses: {\r\n onmouseenter: e => {e.currentTarget.classList.add('z-hv'); this.x.dropHover && this.drop()},\r\n onmouseleave: e => e.currentTarget.classList.remove('z-hv'),\r\n onmousedown: e => e.currentTarget.classList.add('z-down'),\r\n onmouseup: e => e.currentTarget.classList.remove('z-down'),\r\n }\r\n }\r\n },\r\n watch: {\r\n disabled(a) {\r\n a && $.q('.z-hv', this.el()).removeClass('z-hv')\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n showDropIcon: true\r\n }\r\n },\r\n ajaxLock(a) {\r\n a = a == null ? true : a\r\n this.x.loading = a\r\n },\r\n drop() {\r\n this.showDrop = true\r\n },\r\n onclick(e) {\r\n if (this.isMore) {\r\n this.drop()\r\n }\r\n if (this.pubParent && this.pubParent.clickTab) {\r\n this.pubParent.clickTab(this)\r\n }\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n clickDrop(e) {\r\n if (this.isDisabled) return\r\n e.stopPropagation()\r\n this.drop()\r\n },\r\n html_drop() {\r\n return \r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n if (this.x.loading) {\r\n r.push(h('div', {\r\n class: 'w-button-loading f-abs-full f-flex-center'\r\n }, h(Img, {\r\n src: '#f-svg-loading'\r\n })))\r\n }\r\n if (this.x.icon) {\r\n r.push(this.html_icon(this.x.focusIcon && this.isCurrent ? this.x.focusIcon : this.x.icon,\r\n 'w-button-icon f-flex-center f-height'))\r\n }\r\n if (t) {\r\n r.push(h('div', {\r\n class: 'w-button-text'\r\n }, t))\r\n }\r\n if (this.isMore && this.x.showDropIcon) {\r\n r.push(h(Img, {\r\n class: 'w-button-more f-flex-center f-height',\r\n src: this.x.dropIcon || '.f-i .f-i-caret-down'\r\n }))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-button-close f-flex-center'\r\n }, h('i', {\r\n class: 'w-button-close-icon f-i f-i-close',\r\n onclick: this.clickClose,\r\n })))\r\n }\r\n return [\r\n h('div', {\r\n class: 'w-button-main f-oh f-height',\r\n ...(this.isCombo && !this.isDisabled && this.mouses),\r\n }, r),\r\n this.isCombo && this.x.showDropIcon && h(Img, {\r\n class: 'w-button-drop f-flex-center f-height',\r\n src: this.x.dropIcon || '.f-i .f-i-caret-down',\r\n ...(!this.isDisabled && this.mouses),\r\n onclick: this.clickDrop\r\n }),\r\n this.showDrop ? h(Menu, {\r\n context: this,\r\n ownproperty: true,\r\n minWidth: $.bcr(this.el()).width,\r\n autoHide: true,\r\n dropHover: this.x.dropHover,\r\n dropClass: this.x.dropClass,\r\n dropPosition: this.x.dropPosition,\r\n snap: {\r\n target: () => this.el(),\r\n position: this.x.dropPosition || (this.pubParent && this.pubParent.x.vertical ? 'rt,lt' : 'v'),\r\n indent: 1\r\n },\r\n onClose: () => this.showDrop = false\r\n }, this.$slots) : []\r\n ]\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'div'\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n isMore() {\r\n return !!this.$slots.default && !this.getOn('click')\r\n },\r\n isCombo() {\r\n return !!(this.$slots.default && this.getOn('click'))\r\n },\r\n isDisabled() {\r\n return this.x.disabled || this.x.loading\r\n },\r\n html_props() {\r\n return {\r\n disabled: this.isDisabled,\r\n class: {\r\n [`z-face-${this.x.face}`]: this.x.face,\r\n 'z-combo': this.isCombo,\r\n 'z-more': this.isMore,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled,\r\n 'z-loading': this.x.loading,\r\n 'z-vertical': this.x.vertical,\r\n 'z-closable': this.x.closable\r\n },\r\n onclick: this.onclick,\r\n ...(!this.isCombo && this.mouses),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import script from \"./Button.vue?vue&type=script&lang=js\"\nexport * from \"./Button.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FileUpload.vue?vue&type=style&index=0&id=4fe506ce&lang=css\"","<script>\r\n export default {\r\n name: 'w-columns'\r\n }\r\n</script>\r\n\r\n","import script from \"./TableColumns.vue?vue&type=script&lang=js\"\nexport * from \"./TableColumns.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, ref\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-checkbox',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['text', 'checked', 'partialSubmit', 'minSize', 'maxSize'],\r\n inject: ['providePubParent', 'provideBoxParent'],\r\n emits: ['change', 'update:checked', 'click'],\r\n data() {\r\n return {\r\n isPlural: true,\r\n indeterminate: false,\r\n modifiedChecked: false,\r\n defaultChecked: false,\r\n }\r\n },\r\n created() {\r\n if (this.provideBoxParent) {\r\n this.provideBoxParent.boxProxy = this\r\n }\r\n this.defaultChecked = this.isChecked\r\n this.modifiedChecked = this.isChecked\r\n },\r\n methods: {\r\n val(a) {\r\n if (arguments.length == 0) {\r\n return this.getVal()\r\n }\r\n this.setVal(a, {\r\n type: 'change',\r\n target: this.$refs.v\r\n })\r\n },\r\n getVal() {\r\n return this.isChecked ? this.value : ''\r\n },\r\n setVal(checked, event) {\r\n let p = this.pubParent\r\n let v = this.checkValue\r\n let rdo = this.input_type === 'radio'\r\n let mv = this.x.modelValue\r\n if (rdo) {\r\n mv = checked ? $.string(v) : ''\r\n } else {\r\n mv = checked ? $.idsAdd(mv, v) : $.idsRemove(mv, v)\r\n }\r\n this.x.modelValue = mv\r\n if (rdo) {\r\n this.siblings().forEach(sb => sb.x.modelValue = mv)\r\n }\r\n this.$emit('update:modelValue', mv)\r\n this.trigger(event, mv)\r\n this.pubParent && this.pubParent.trigger(event, mv)\r\n },\r\n formVal() {\r\n return !this.isDisabled && this.isChecked ? this.x.value : ''\r\n },\r\n groupFormVal(a) {\r\n if (a == null) {\r\n let r = []\r\n $.lodash.each(this.siblings(null, true), f => {\r\n let g = f.formVal()\r\n if (g != null && g != '') r.push(g)\r\n })\r\n return r.join(',')\r\n }\r\n $.lodash.each(this.siblings(), f => f.val($.idsAny(a, f.checkValue)))\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n this.val(a)\r\n },\r\n // @a -> T/F 是否只获取所有选中项, b -> 是否只选择可用的\r\n siblings(a, b) {\r\n return $.lodash.map($.q(':input[name=\"' + this.input_name + '\"]:not([w-form-ignore] :input)' + (b ? ':not(:disabled)' : '') +\r\n (a === true ? ':checked' : a === false ? ':not(:checked)' : (a || '')), this.ownerView.el()), e => $(e))\r\n },\r\n relate() {\r\n // implement\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n if (this.pubParent) {\r\n this.pubParent.reset(empty)\r\n } else {\r\n this.val(empty || !this.defaultChecked ? false : true)\r\n }\r\n },\r\n onclick(e) {\r\n //implement\r\n e.stopPropagation()\r\n },\r\n onbasechange(e) {\r\n if (this.warnClass && this.x.name) {\r\n this.ownerView.fAll(this.x.name).forEach(v => v.warn && v.warn(false))\r\n }\r\n this.setVal(e.target.checked, e)\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n },\r\n isModified(original) {\r\n if (this.pubParent) {\r\n return this.pubParent.isModified(original)\r\n } else {\r\n let c = original ? this.defaultChecked : this.modifiedChecked\r\n return c == this.isChecked\r\n }\r\n },\r\n saveModified(original) {\r\n if (this.pubParent) {\r\n this.pubParent.saveModified(original)\r\n } else {\r\n this.modifiedChecked = this.isChecked\r\n if (original) {\r\n this.defaultChecked = this.modifiedChecked\r\n }\r\n }\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n html_input() {\r\n return [h(this.input_tag, {\r\n ref: 'v',\r\n class: 'w-input-value',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n checked: this.isChecked,\r\n disabled: this.isDisabled,\r\n onclick: e => {\r\n if (this.isNormal) {\r\n this.indeterminate = false\r\n } else e.preventDefault()\r\n },\r\n onchange: this.onchange,\r\n ...this.input_prop,\r\n }), h('em', {\r\n ref: 'appear',\r\n class: this.$options.name + '-appear'\r\n }, h('i', {\r\n class: this.input_icon\r\n })),\r\n this.x.text ?\r\n h('span', {\r\n class: this.$options.name + '-text'\r\n }, this.x.text) : null\r\n ]\r\n },\r\n html_main() {\r\n return h('label', {\r\n class: 'w-input',\r\n onclick: this.onclick,\r\n }, this.html_input())\r\n },\r\n html_target() {\r\n return h(Horizontal, {\r\n class: this.$options.name + '-target',\r\n ref: 'target'\r\n }, this.$slots)\r\n },\r\n html() {\r\n return this.pubParent && this.pubParent.x.vertical ? [this.html_self(true), this.html_target()] : this.html_self()\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length < $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n maxSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length > $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n }\r\n },\r\n rules() {\r\n return {\r\n required: this.x.required != null ? this.x.required : (this.pubParent && this.pubParent.x.required),\r\n minSize: this.x.minSize != null ? this.x.minSize : (this.pubParent && this.pubParent.x.minSize),\r\n maxSize: this.x.maxSize != null ? this.x.maxSize : (this.pubParent && this.pubParent.x.maxSize),\r\n }\r\n },\r\n input_type() {\r\n return 'checkbox'\r\n },\r\n input_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_value() {\r\n // 如果没有定义value,必须返回空字符串。因为当<input type=\"checkbox\">没有value属性时,它的表单值会变成\"on\"\r\n return this.x.value == null ? '' : this.x.value\r\n },\r\n input_prop() {\r\n return {\r\n indeterminate: this.indeterminate,\r\n 'w-partialsubmit': this.x.partialSubmit ? 1 : null,\r\n }\r\n },\r\n input_icon() {\r\n return 'f-i f-i-check'\r\n },\r\n checkValue() {\r\n return this.x.value\r\n },\r\n isChecked() {\r\n return $.idsAny(this.x.modelValue, this.checkValue)\r\n },\r\n isDisabled() {\r\n return this.x.disabled != null ? this.x.disabled : (this.pubParent && this.pubParent.disabled)\r\n },\r\n isReadonly() {\r\n return this.x.readonly != null ? this.x.readonly : (this.pubParent && this.pubParent.readonly)\r\n },\r\n html_class() {\r\n return {\r\n 'z-half': this.indeterminate\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.target) {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n this.siblings().forEach((sb) => {\r\n let t = sb.$refs.target\r\n if (t) this.ownerView.fAll(null, t.$el).forEach(n => n.x.disabled = !sb.isChecked)\r\n })\r\n }, {immediate: true})\r\n }\r\n },\r\n }\r\n</script>\n","import script from \"./CheckBox.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Calendar.vue?vue&type=style&index=0&id=7377352c&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Tip.vue?vue&type=style&index=0&id=129e762e&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./DialogMove.vue?vue&type=style&index=0&id=5a3b6ded&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Timeline.vue?vue&type=style&index=0&id=ab029c5a&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TemplateDateSheet.vue?vue&type=style&index=0&id=e271d2a6&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['src', 'children'],\r\n data() {\r\n return {\r\n loading: false,\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n getSrc() {\r\n return (this.x || this.$props).src\r\n },\r\n request(fn) {\r\n let src = this.getSrc()\r\n if (src && !this.loading) {\r\n this.showLoading(true)\r\n if (typeof src === 'function') {\r\n src(this).then(res => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n fn && fn()\r\n }).catch(ex => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n })\r\n }\r\n }\r\n },\r\n showLoading(a) {\r\n this.loading = a\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./SrcParent.vue?vue&type=script&lang=js\"\nexport * from \"./SrcParent.vue?vue&type=script&lang=js\"\n\nexport default script","<template>\r\n <w-loading />\r\n</template>\r\n\r\n","import { render } from \"./TemplateLoading.vue?vue&type=template&id=1e19074e\"\nconst script = {}\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-label',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['text', 'suffix', 'vertical'],\r\n methods: {\r\n html_slots() {\r\n return h('label', {class: 'w-label-text'}, \r\n h('span', this.$slots.default ? this.$slots.default() : this.x.text + (this.x.suffix == null ? '' : this.x.suffix)))\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n this.x.vertical && (this.$parent.labelVertical = true)\r\n return ['f-oh f-br' + (this.x.vertical ? ' z-vertical' : ''), this.html_align_class]\r\n },\r\n html_style() {\r\n return {\r\n width: null,\r\n '--label-width': this.x.width && $.unitSize(this.x.width)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./Label.vue?vue&type=script&lang=js\"\nexport * from \"./Label.vue?vue&type=script&lang=js\"\n\nexport default script","<template>\r\n <svg style=\"display:none;width:0;height:0\" width=\"0\" height=\"0\" focusable=\"false\" aria-hidden=\"true\">\r\n <symbol id=\"f-svg-loading\" viewBox=\"0 0 50 50\">\r\n <path\r\n d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\"\r\n transform=\"rotate(86.9154 25 25)\">\r\n </path>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-1\" viewBox=\"10 10 80 80\">\r\n <circle cx=\"50\" cy=\"50\" r=\"30\" />\r\n </symbol>\r\n <symbol id=\"f-svg-loading-2\" viewBox=\"0 0 24 30\">\r\n <rect x=\"0\" y=\"8.66115\" width=\"4\" height=\"12.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"8\" y=\"6.16115\" width=\"4\" height=\"17.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"16\" y=\"6.33885\" width=\"4\" height=\"17.3223\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-3\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n d=\"M514.048 337.715a32 32 0 0 1-32-32V135.168a32 32 0 1 1 64 0v170.534a32 32 0 0 1-32 32z m-1.28 581.799a32 32 0 0 1-32-32V714.406a32 32 0 1 1 64 0v173.095a32 32 0 0 1-32 32zM305.011 543.347H135.744a32 32 0 0 1 0-64h169.267a32 32 0 0 1 0 64z m583.079 0H713.83a32 32 0 0 1 0-64h174.26a32 32 0 1 1 0 64zM245.978 806.4a32 32 0 0 1-22.656-54.669L342.643 632.32a32 32 0 0 1 45.325 45.325L268.646 796.979a31.898 31.898 0 0 1-22.668 9.344z m408.435-408.5a32 32 0 0 1-22.656-54.68l123.558-123.56a32 32 0 1 1 45.325 45.3L677.12 388.544a31.898 31.898 0 0 1-22.669 9.357z m121.523 411.06a31.885 31.885 0 0 1-22.669-9.344l-122.15-122.15a32 32 0 1 1 45.325-45.325l122.15 122.15a32 32 0 0 1-22.656 54.669zM364.672 397.632a31.923 31.923 0 0 1-22.669-9.344L221.273 267.52a32 32 0 1 1 45.325-45.325l120.73 120.743a32 32 0 0 1-22.656 54.668z m0 0\"\r\n p-id=\"4486\"></path>\r\n </symbol>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'w-svg-loading'\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-svg {\r\n width: 20px;\r\n height: 20px;\r\n fill: #777;\r\n }\r\n \r\n .f-svg-loading {\r\n animation: f-svg-key-rotate .6s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1 {\r\n animation: f-svg-key-rotate 1.5s linear infinite;\r\n }\r\n \r\n .f-svg-loading-3 {\r\n animation: f-svg-key-rotate 2s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1>use {\r\n stroke: #777;\r\n stroke-width: 6;\r\n fill: none;\r\n animation: f-svg-key-dash 1.5s linear infinite;\r\n }\r\n\r\n @keyframes f-svg-key-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n\r\n @keyframes f-svg-key-dash {\r\n 0% {\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n }\r\n 50% {\r\n stroke-dasharray: 130, 200;\r\n stroke-dashoffset: -50;\r\n }\r\n 100% {\r\n stroke-dasharray: 130, 200;\r\n stroke-dashoffset: -188;\r\n }\r\n }\r\n</style>\n","import { render } from \"./SVGIcon.vue?vue&type=template&id=a53c637e\"\nimport script from \"./SVGIcon.vue?vue&type=script&lang=js\"\nexport * from \"./SVGIcon.vue?vue&type=script&lang=js\"\n\nimport \"./SVGIcon.vue?vue&type=style&index=0&id=a53c637e&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Button from './Button.vue'\r\n\r\n export default {\r\n name: 'w-submitbutton',\r\n pubParentName: 'w-buttonbar',\r\n mixins: [Button],\r\n computed: {\r\n html_class() {\r\n return 'w-button'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n \r\n</style>\r\n","import script from \"./SubmitButton.vue?vue&type=script&lang=js\"\nexport * from \"./SubmitButton.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SlidePicker.vue?vue&type=style&index=0&id=2b33e34a&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n\r\n export default {\r\n name: 'w-timeline',\r\n mixins: [Scroll, PubParent],\r\n props: ['face', 'vertical'],\r\n methods: {\r\n indent() {\r\n let len = this.$refs.wrap.querySelectorAll('.w-timeline-item').length\r\n if (len <= 1) return\r\n let vt = this.x.vertical\r\n let size = vt ? 'width' : 'height'\r\n let prevWidth = 0\r\n let nextWidth = 0\r\n for (let i = 0; i < len; i++) {\r\n let prev = this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i}\"]`)\r\n let next = i < len - 1 && this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i+1}\"]`)\r\n let prevBcr = $.bcr(prev.querySelector('.w-timeline-item-icon-img'))\r\n if (prev.parentNode == this.$refs.prev) {\r\n prevWidth = Math.max(prevWidth, prevBcr[size])\r\n } else {\r\n nextWidth = Math.max(nextWidth, prevBcr[size])\r\n }\r\n if (next && prev.parentNode != next.parentNode) {\r\n let nextBcr = $.bcr(next.querySelector('.w-timeline-item-icon-img'))\r\n if (vt && prevBcr.bottom + 25 > nextBcr.top) {\r\n $.q(next).css({\r\n marginTop: prevBcr.bottom + 25 - nextBcr.top\r\n })\r\n } else if (!vt && prevBcr.right + 50 > nextBcr.left) {\r\n $.q(next).css({\r\n marginLeft: prevBcr.right + 50 - nextBcr.left\r\n })\r\n }\r\n }\r\n }\r\n let prevItems = $.q('.w-timeline-item', this.$refs.prev)\r\n prevItems.each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginRight' : 'marginBottom']: (prevWidth - bcr[size]) / 2\r\n })\r\n })\r\n $.q('.w-timeline-item', this.$refs.next).each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginLeft' : 'marginTop']: (nextWidth - bcr[size]) / 2\r\n })\r\n })\r\n prevItems.length && $.q(this.$refs.next).css({\r\n [vt ? 'marginLeft' : 'marginTop']: `-${nextWidth/2 + prevWidth/2}px`\r\n })\r\n\r\n let firstBcr = $.bcr($.q(`.w-timeline-item[w-index=\"0\"] .w-timeline-item-icon-img`, this.$refs.wrap)[0])\r\n let lastBcr = $.bcr($.q(`.w-timeline-item[w-index=\"${len-1}\"] .w-timeline-item-icon-img`, this.$refs.wrap)[0])\r\n let wrapBcr = $.bcr(this.$refs.wrap)\r\n if (this.x.vertical) {\r\n $.q(this.$refs.line).css({\r\n width: 2,\r\n height: lastBcr.top - firstBcr.bottom,\r\n top: firstBcr.bottom - wrapBcr.top,\r\n left: (firstBcr.left + firstBcr.right) / 2 - wrapBcr.left - 1,\r\n })\r\n } else {\r\n $.q(this.$refs.line).css({\r\n width: lastBcr.left - firstBcr.right,\r\n height: 2,\r\n top: (firstBcr.top + firstBcr.bottom) / 2 - wrapBcr.top - 1,\r\n left: firstBcr.right - wrapBcr.left\r\n })\r\n }\r\n\r\n },\r\n html_slots() {\r\n let prevSlots = []\r\n let nextSlots = []\r\n let vt = this.x.vertical\r\n this.slots_children().forEach((c, i) => {\r\n $.lodash.set(c, 'props.index', i)\r\n if (vt) {\r\n (c.props.position == 'right' ? prevSlots : nextSlots).push(c)\r\n } else {\r\n (c.props.position == 'bottom' ? nextSlots : prevSlots).push(c)\r\n }\r\n })\r\n return this.html_scroll_slots(\r\n h('div', {\r\n ref: 'wrap',\r\n class: 'w-timeline-wrap'\r\n }, [\r\n h('div', {\r\n ref: 'line',\r\n class: 'w-timeline-line'\r\n }),\r\n h('div', {\r\n ref: 'prev',\r\n class: ['w-timeline-prev', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, prevSlots),\r\n h('div', {\r\n ref: 'next',\r\n class: ['w-timeline-next', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, nextSlots),\r\n ])\r\n )\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return [this.html_scroll_class,\r\n {\r\n ['z-face-' + this.x.face]: this.x.face,\r\n 'z-horizontal': !this.x.vertical,\r\n 'z-vertical': this.x.vertical\r\n }\r\n ]\r\n }\r\n },\r\n mounted() {\r\n this.indent()\r\n const observe = () => {\r\n if (this.$refs.wrap && this.$refs.next) {\r\n $.q('.w-timeline-item', this.$refs.wrap).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n $.q(this.$refs.next).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n this.indent()\r\n }\r\n }\r\n new ResizeObserver(observe).observe(this.$refs.wrap)\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-timeline-wrap {\r\n flex-shrink: 0;\r\n display: flex;\r\n position: relative;\r\n width: max-content;\r\n min-width: 100%;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-wrap {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-prev .w-timeline-item {\r\n flex-direction: column-reverse;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-wrap,\r\n .w-timeline.z-vertical .w-timeline-item {\r\n flex-direction: row;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev,\r\n .w-timeline.z-vertical .w-timeline-next {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev .w-timeline-item {\r\n flex-direction: row-reverse;\r\n }\r\n\r\n .w-timeline-prev,\r\n .w-timeline-next {\r\n position: relative;\r\n display: flex;\r\n flex: 1;\r\n flex-shrink: 0;\r\n --w-compat-gap: 25px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-timeline-prev:empty,\r\n .w-timeline-next:empty {\r\n display: none;\r\n }\r\n\r\n .w-timeline-item {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-icon {\r\n align-items: center;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-main {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item-main {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item.z-right {\r\n text-align: right;\r\n }\r\n\r\n .w-timeline-item-icon {\r\n display: flex;\r\n flex-shrink: 0;\r\n position: relative;\r\n line-height: 1;\r\n }\r\n\r\n .w-timeline-item-icon-img.z-default {\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n border: 2px solid #1890ff;\r\n border-radius: 100px;\r\n background: #fff;\r\n color: #1890ff;\r\n }\r\n\r\n .w-timeline-line {\r\n position: absolute;\r\n background: #ddd;\r\n }\r\n \r\n</style>\n","import script from \"./Timeline.vue?vue&type=script&lang=js\"\nexport * from \"./Timeline.vue?vue&type=script&lang=js\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=ab029c5a&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Split.vue?vue&type=style&index=0&id=64ffe5ca&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Grid.vue?vue&type=style&index=0&id=5e2b9c3a&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n mergeProps\r\n } from 'vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import SrcParent from './SrcParent.vue'\r\n\r\n\r\n export default {\r\n name: 'w-tree',\r\n mixins: [Scroll, PubParent, SrcParent],\r\n emits: ['click:item'],\r\n provide() {\r\n return {\r\n provideLevel: -1,\r\n provideParentLeaf: null,\r\n provideParentTR: null,\r\n }\r\n },\r\n methods: {\r\n getCurrent() {\r\n const leaf = $.q('.w-leaf.z-on', this.el())[0]\r\n return leaf && $(leaf)\r\n },\r\n viewCurrent(f) {\r\n f = f || this.getCurrent()\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView())\r\n }\r\n },\r\n html_slots() {\r\n let r\r\n let chd = this.x.children\r\n if (this.$slots.default) {\r\n if (Array.isArray(chd)) {\r\n r = chd.map(item => this.$slots.default({item}))\r\n } else {\r\n r = []\r\n }\r\n }\r\n return this.html_scroll_slots(r)\r\n }\r\n },\r\n computed: {\r\n level() {\r\n return -1\r\n },\r\n html_props() {\r\n return {\r\n class: this.html_scroll_class\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.children) this.request()\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-tree {\r\n text-align: left;\r\n box-sizing: border-box;\r\n }\r\n\r\n</style>\r\n","import script from \"./Tree.vue?vue&type=script&lang=js\"\nexport * from \"./Tree.vue?vue&type=script&lang=js\"\n\nimport \"./Tree.vue?vue&type=style&index=0&id=53bcfba2&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-password',\r\n mixins: [FormBase],\r\n props: ['compare'],\r\n data() {\r\n return {\r\n hasBorder: true\r\n }\r\n },\r\n methods: {\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '=='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && !$.eval('v' + m + 'tv', {v, tv})) {\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n }\r\n }\r\n },\r\n input_type() {\r\n return 'password'\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Password.vue?vue&type=script&lang=js\"\nexport * from \"./Password.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-html',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['line'],\r\n computed: {\r\n html_props() {\r\n let line = this.x.line\r\n return {\r\n class: [\r\n (this.x.align || this.x.valign) && 'w-horizontal',\r\n line != null && 'f-line',\r\n this.html_align_class\r\n ],\r\n style: line != null && {\r\n '-webkit-line-clamp': line\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-html {\r\n box-sizing: border-box;\r\n flex-wrap: wrap;\r\n }\r\n</style>\n","import script from \"./Html.vue?vue&type=script&lang=js\"\nexport * from \"./Html.vue?vue&type=script&lang=js\"\n\nimport \"./Html.vue?vue&type=style&index=0&id=612320da&lang=css\"\n\nexport default script","<!-- <template>\r\n <div v-bind=\"html_binds\">\r\n <div class=\"_t\">\r\n <div class=\"_s\"></div>\r\n <i v-if=\"pubParent.x.face === 'bubble'\"\r\n :class=\"'_caret f-i f-i-caret-' + (leftIndex != null ? 'right' : rightIndex != null ? 'left' : topIndex != null ? 'down' : 'up')\"></i>\r\n </div>\r\n \r\n </div>\r\n</template> -->\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-timeline-item',\r\n pubParentName: 'w-timeline',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['position', 'index'],\r\n methods: {\r\n html_slots() {\r\n let text = h('div', {\r\n class: 'w-timeline-item-main f-br'\r\n }, h('div', {\r\n class: 'w-timeline-item-main-text'\r\n }, this.$slots))\r\n let icon = h('div', {\r\n ref: 'icon',\r\n class: 'w-timeline-item-icon'\r\n }, this.$slots.icon ? h('div', {\r\n class: 'w-timeline-item-icon-img'\r\n }, this.$slots.icon()) : h('i', {\r\n class: 'w-timeline-item-icon-img z-default'\r\n }))\r\n return [icon, text]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'z-' + (this.x.position || (this.pubParent.x.vertical ? 'left' : 'bottom'))\r\n },\r\n html_props() {\r\n return {\r\n 'w-index': this.x.index\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import script from \"./TimelineItem.vue?vue&type=script&lang=js\"\nexport * from \"./TimelineItem.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import TD from './TableTD.vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-th',\r\n mixins: [TD, WidgetBase],\r\n props: ['sortable', 'sortOrders', 'sortOrderDefault'],\r\n inject: ['_provideThead'],\r\n emits: ['click:sort'],\r\n data() {\r\n return {\r\n sortType: null,\r\n sortOrder: null,\r\n }\r\n },\r\n methods: {\r\n onClick(e) {\r\n if (this.x.sortable) {\r\n this.clickSort(e, 'toggle')\r\n }\r\n },\r\n clickSort(e, order) {\r\n e.stopPropagation()\r\n let o = this.sortOrder\r\n if(this._provideThead.sortUID != this.uid) {\r\n o = null\r\n }\r\n let orders = this.x.sortOrders || ['asc', 'desc', null]\r\n if (order === 'toggle') {\r\n let i = orders.indexOf(o)\r\n o = orders[i < 0 || i == 2 ? 0 : i + 1]\r\n } else {\r\n o = o == order ? null : order\r\n }\r\n this.sortOrder = o\r\n this._provideThead.sortUID = this.uid\r\n e.value = o\r\n this.$emit('click:sort', e, o)\r\n },\r\n html_slots() {\r\n return h(Horizontal, {class: 'w-th-wrap', valign: 'middle', align: this.align || this.col.align}, {default: () => [\r\n h('div', {class: 'w-th-title'}, this.$slots),\r\n this.x.sortable ? h('div', {class: 'w-th-sort f-flex-column f-flex-center f-oh'}, [\r\n h('i', {class: 'f-i f-i-caret-up f-oh w-th-sort-up', onClick: e => this.clickSort(e, 'asc')}),\r\n h('i', {class: 'f-i f-i-caret-down f-oh w-th-sort-down', onClick: e => this.clickSort(e, 'desc')}),\r\n ]) : []\r\n ]})\r\n }\r\n },\r\n computed: {\r\n col() {\r\n return this._provideTable.colgroup[this.$.vnode.dfishColIndex] || false\r\n },\r\n tagName() {\r\n return 'th'\r\n },\r\n html_props() {\r\n return mergeProps(this.td_props(), {\r\n class: {'z-sortable': this.x.sortable, [`z-${this.sortOrder}`]: this.sortOrder && this._provideThead.sortUID == this.uid},\r\n onClick: this.onClick,\r\n }) \r\n },\r\n }\r\n }\r\n</script>\r\n","import script from \"./TableTH.vue?vue&type=script&lang=js\"\nexport * from \"./TableTH.vue?vue&type=script&lang=js\"\n\nexport default script","<template>\r\n <slot></slot>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-dialog-move',\r\n methods: {\r\n onmousedown(e) {\r\n let o = $.dialog(e.currentTarget)\r\n if (o) {\r\n if (o.x.movable !== false && !o.x.fullScreen) {\r\n let d = o.el()\r\n let sl = d.style.left\r\n let sr = d.style.right\r\n let st = d.style.top\r\n let sb = d.style.bottom\r\n let b = sb ? -1 : 1\r\n let r = sr ? -1 : 1\r\n let v = b < 0 ? 'bottom' : 'top'\r\n let h = r < 0 ? 'right' : 'left'\r\n let x = e.clientX\r\n let y = e.clientY\r\n let t = $.number(b < 0 ? sb : st)\r\n let l = $.number(r < 0 ? sr : sl)\r\n let m\r\n let n = document.documentElement.clientHeight\r\n let w = document.documentElement.clientWidth\r\n $.moveup(function(e) {\r\n !m && (m = $.q('<div class=w-dialog-move></div>').appendTo(document.body));\r\n let cx = $.numRange(e.clientX, 0, w)\r\n let cy = $.numRange(e.clientY, 0, n)\r\n o.setPosition({[v]: (t + b * (cy - y)) + 'px', [h]: (l + r * (cx - x)) + 'px'})\r\n }, function(e, moved) {\r\n moved && m && m.remove()\r\n }, e)\r\n }\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.$el.nextElementSibling.addEventListener('mousedown', this.onmousedown)\r\n },\r\n unmounted() {\r\n this.$el.nextElementSibling.removeEventListener('mousedown', this.onmousedown)\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-dialog-move {\r\n position: fixed;\r\n background: #fff;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n opacity: 0;\r\n z-index: 101;\r\n }\r\n</style>\n","import { render } from \"./DialogMove.vue?vue&type=template&id=5a3b6ded\"\nimport script from \"./DialogMove.vue?vue&type=script&lang=js\"\nexport * from \"./DialogMove.vue?vue&type=script&lang=js\"\n\nimport \"./DialogMove.vue?vue&type=style&index=0&id=5a3b6ded&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-form',\r\n mixins: [FormBase],\r\n props: ['vertical'],\r\n methods: {\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n this.$slots.default && this.$slots.default()\r\n ]\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n required: (v, r, q) => {\r\n if (r && (!v || v === '[]' || v === '{}')) {\r\n return this.formErr(q)\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n let mv = this.x.modelValue\r\n return mv == null ? '' : typeof mv === 'object' ? JSON.stringify(mv) : mv\r\n },\r\n html_class() {\r\n return [{\r\n 'z-vertical': this.x.vertical,\r\n }]\r\n },\r\n html_style() {\r\n return {\r\n '--w-form-gap': $.unitSize(this.x.gap)\r\n }\r\n },\r\n main_prop() {\r\n return this.name && {\r\n onclick: e => this.warn(false)\r\n }\r\n }\r\n },\r\n }\r\n</script>\n","import script from \"./Form.vue?vue&type=script&lang=js\"\nexport * from \"./Form.vue?vue&type=script&lang=js\"\n\nexport default script","if (window.Range && !Range.prototype.movePoint) {\r\n if (Range.prototype.__defineGetter__) {\r\n Range.prototype.__defineGetter__('text', function() {\r\n return this.toString()\r\n });\r\n Range.prototype.__defineSetter__('text', function(a) {\r\n this.deleteContents()\r\n this.insertNode(document.createTextNode(a))\r\n });\r\n }\r\n Range.prototype.movePoint = function(a, b) {\r\n var c = this.startContainer.firstChild || this.startContainer,\r\n d, i = a,\r\n l = 0,\r\n b = b == null ? a : b;\r\n do {\r\n this.selectNodeContents(c);\r\n l = this.toString().length;\r\n i -= l;\r\n } while (i > 0 && (c = c.nextSibling));\r\n c = d = this.startContainer;\r\n i += l;\r\n var j = b - a + i,\r\n l = 0;\r\n do {\r\n this.selectNodeContents(d);\r\n l = this.toString().length;\r\n j -= l;\r\n } while (j > 0 && (d = d.nextSibling));\r\n this.setStart(c.firstChild || c, i);\r\n if (d) {\r\n var e = d;\r\n while (e.firstChild) e = e.firstChild;\r\n this.setEnd(e, l + j);\r\n }\r\n };\r\n Range.prototype.select = function() {\r\n let s = window.getSelection()\r\n s.removeAllRanges()\r\n s.addRange(this)\r\n };\r\n}\r\n\r\nconst rngSelection = function() {\r\n let s = window.getSelection()\r\n return s.rangeCount && s.getRangeAt(0)\r\n}\r\nconst rngElement = function() {\r\n let s = rngSelection()\r\n return s && s.startContainer.parentNode\r\n}\r\nconst rngCursor = function(a, b) {\r\n let r = a\r\n if (window.getSelection) {\r\n if (typeof a.selectionStart === 'number' && typeof a.selectionEnd === 'number') {\r\n a.selectionStart = a.selectionEnd = b != null ? b : a.value.length\r\n } else {\r\n let s = window.getSelection()\r\n if (a.nodeType === 1)\r\n (r = document.createRange()).selectNodeContents(a)\r\n if (b != null)\r\n r.movePoint(b)\r\n s.removeAllRanges()\r\n s.addRange(r)\r\n s.collapseToEnd()\r\n }\r\n }\r\n return r\r\n}\r\nconst rngCursorOffset = function() {\r\n let n = rngSelection()\r\n let c = n.startOffset\r\n if (c != null)\r\n return c\r\n let r = document.body.createTextRange()\r\n r.selectNodeContents(n.startContainer.parentNode)\r\n r.setEndPoint('EndToStart', n)\r\n return rngText(r).length\r\n}\r\n// @a ->range, b -> text?\r\nconst rngText = function(a, b) {\r\n if (a == null)\r\n a = rngSelection()\r\n if (b != null) {\r\n if (a.deleteContents) {\r\n a.deleteContents()\r\n a.insertNode(document.createTextNode(b))\r\n } else {\r\n a.text = b\r\n }\r\n }\r\n return a.text === undefined ? a.toString() : a.text\r\n}\r\n\r\nexport {\r\n rngSelection,\r\n rngElement,\r\n rngCursor,\r\n rngCursorOffset,\r\n rngText\r\n}\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import DropBox from './DropBox.vue'\r\n\r\n export default {\r\n name: 'w-pickbox',\r\n mixins: [DropBox],\r\n props: ['picker'],\r\n methods: {\r\n click(e) {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n } else if (this.x.picker) {\r\n this.clickPicker(e)\r\n }\r\n },\r\n clickClear(e) {\r\n e.stopPropagation()\r\n this.val(null)\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n else this.cmd(c, this.x.modelValue)\r\n },\r\n closeDrop() {\r\n this.showDrop = false\r\n return this\r\n },\r\n html_button() {\r\n return [\r\n this.isNormal && h('button', {\r\n class: 'w-input-bbr w-pickbox-clear f-i f-i-close',\r\n onclick: this.clickClear\r\n }),\r\n this.$slots.default && h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: this.x.disabled,\r\n }),\r\n this.x.picker && h('button', {\r\n class: 'w-input-bbr f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n })\r\n ]\r\n }\r\n },\r\n computed: {\r\n input_value() {\r\n let m = this.x.modelValue\r\n let f = v => v && typeof v === 'object' ? JSON.stringify(v) : v\r\n if (Array.isArray(m)) {\r\n return m.map(v => f(v && v.value)).join(',')\r\n } else {\r\n return f(m && m.value)\r\n }\r\n },\r\n input_text() {\r\n let m = this.x.modelValue\r\n if (Array.isArray(m)) {\r\n return m.map(v => v.text).join(', ')\r\n } else\r\n return m && m.text\r\n }\r\n }\r\n }\r\n</script>\n\r\n<style>\r\n .w-pickbox-clear {\r\n display: none;\r\n font-size: 16px;\r\n }\r\n .w-pickbox-clear:hover {\r\n color: #f00;\r\n }\r\n .w-input:hover > .w-pickbox-clear {\r\n display: flex;\r\n }\r\n</style>","import script from \"./PickBox.vue?vue&type=script&lang=js\"\nexport * from \"./PickBox.vue?vue&type=script&lang=js\"\n\nimport \"./PickBox.vue?vue&type=style&index=0&id=35b69f8f&lang=css\"\n\nexport default script","<template>\r\n <w-tip>\r\n <div class=\"w-tip-body f-flex-center\">\r\n <div class=\"w-tip-text\"><slot>{{text}}</slot></div>\r\n </div>\r\n </w-tip>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n \r\n export default {\r\n props: ['text'],\r\n methods: {\r\n\r\n },\r\n computed: {\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import { render } from \"./TemplateTip.vue?vue&type=template&id=e9652ce4\"\nimport script from \"./TemplateTip.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateTip.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","// 实现指令 v-dialog-move=\"true\"\r\n// 使对话框可拖动\r\n\r\nimport $ from '../dfish.js'\r\n\r\nfunction onmousedown(e) {\r\n let o = $.dialog(e.currentTarget)\r\n if (o) {\r\n if (o.x.movable !== false && !o.x.fullScreen) {\r\n let d = o.el()\r\n let sl = d.style.left\r\n let sr = d.style.right\r\n let st = d.style.top\r\n let sb = d.style.bottom\r\n let b = sb ? -1 : 1\r\n let r = sr ? -1 : 1\r\n let v = b < 0 ? 'bottom' : 'top'\r\n let h = r < 0 ? 'right' : 'left'\r\n let x = e.clientX\r\n let y = e.clientY\r\n let t = $.number(b < 0 ? sb : st)\r\n let l = $.number(r < 0 ? sr : sl)\r\n let m\r\n let n = document.documentElement.clientHeight\r\n let w = document.documentElement.clientWidth\r\n $.moveup(function(e) {\r\n !m && (m = $.q('<div class=w-dialog-move-helper></div>').appendTo(document.body))\r\n let cx = $.numRange(e.clientX, 0, w)\r\n let cy = $.numRange(e.clientY, 0, n)\r\n o.setPosition({[v]: (t + b * (cy - y)) + 'px', [h]: (l + r * (cx - x)) + 'px'})\r\n }, function(e, moved) {\r\n moved && m && m.remove()\r\n }, e)\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n mounted(el, bind) {\r\n bind.value && el.addEventListener('mousedown', onmousedown)\r\n },\r\n unmounted(el) {\r\n el.removeEventListener('mousedown', onmousedown)\r\n }\r\n}","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['pub', 'current'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n methods: {\r\n inCurrent(target) {\r\n let c = this.x.current\r\n if (c == null) return\r\n if (Array.isArray(c)) {\r\n return -1 < c.findIndex(v => this.isCurrentChild(v, target))\r\n } else {\r\n return this.isCurrentChild(c, target)\r\n }\r\n },\r\n isCurrentChild(current, target) {\r\n if (typeof current === 'object') {\r\n let d = target.isWidget ? (target.x || target).data : (target.props && target.props.data)\r\n if (d) {\r\n for (let i in current)\r\n if ($.lodash.get(d, i) == current[i]) return true\r\n }\r\n } else if (current == (target.isWidget ? target.getKey() : target.key)) {\r\n return true\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./PubParent.vue?vue&type=script&lang=js\"\nexport * from \"./PubParent.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import {h} from 'vue'\r\n \r\n export default {\r\n name: 'w-td',\r\n props: ['colspan', 'rowspan', 'align', 'valign', 'data'],\r\n inject: ['_provideTable', 'provideInBody'],\r\n methods: {\r\n td_props() {\r\n let ci = this.$.vnode.dfishColIndex\r\n let col = this._provideTable.colgroup[ci] || false\r\n let len = this._provideTable.colgroup.length\r\n let colspan = this.colspan\r\n if (colspan == -1) {\r\n colspan = len\r\n }\r\n let last = ci + (colspan || 1) == len\r\n return {\r\n class: ['w-td',\r\n last && 'w-td-lastborder',\r\n this.provideInBody && col.class, \r\n col.fixed && {\r\n [`w-td-fixed-${col.fixed}`]: true, \r\n [`w-td-fixed-left-last`]: col.fixed === 'left' && (this._provideTable.colgroup[ci + 1] && this._provideTable.colgroup[ci + 1].fixed != col.fixed),\r\n [`w-td-fixed-right-first`]: col.fixed === 'right' && (this._provideTable.colgroup[ci - 1] && this._provideTable.colgroup[ci - 1].fixed != col.fixed),\r\n }\r\n ],\r\n style: [this.provideInBody && col.style, col.fixed && {[`${col.fixed}`]: `var(--w-td-fixed-${col.fixed}-${ci})`}],\r\n colspan,\r\n rowspan: this.rowspan,\r\n align: this.align || col.align,\r\n valign: this.valign || col.valign,\r\n }\r\n }\r\n },\r\n render() {\r\n return h('td', this.td_props(), this.$slots)\r\n }\r\n }\r\n</script>\r\n","import script from \"./TableTD.vue?vue&type=script&lang=js\"\nexport * from \"./TableTD.vue?vue&type=script&lang=js\"\n\nexport default script","import formIgnore from './form-ignore.js'\r\nimport dialogMove from './dialog-move.js'\r\nimport labelWidth from './label-width.js'\r\n\r\nexport default function(Vue) {\r\n Vue.directive('form-ignore', formIgnore)\r\n Vue.directive('dialog-move', dialogMove)\r\n Vue.directive('label-width', labelWidth)\r\n}","export default {\r\n yes: '是',\r\n no: '否',\r\n none: '无',\r\n to: '至',\r\n jump: '转到',\r\n confirm: '确定',\r\n search: '搜索',\r\n query: '查询',\r\n choose: '选择',\r\n save: '保存',\r\n remove: '删除',\r\n cancel: '取消',\r\n create: '新建',\r\n add: '添加',\r\n edit: '编辑',\r\n finish: '完成',\r\n refresh: '刷新',\r\n operfail: '操作失败',\r\n opertip: '操作提示',\r\n nodata: '暂无数据',\r\n more: '更多',\r\n field: '字段',\r\n close: '关闭',\r\n restore: '还原',\r\n rotate_left: '向左旋转',\r\n rotate_right: '向右旋转',\r\n dialog_max: '最大化',\r\n dialog_min: '最小化',\r\n\r\n detect_zoom: '温馨提示: 你的浏览器可能处于缩放({0}%)状态,这可能影响页面浏览效果,请尝试Ctrl+0重置,并刷新',\r\n no_tip_anymore: '不再提示',\r\n loading: '正在加载',\r\n wait: '请稍候..',\r\n submiting: '数据提交中,请稍候..',\r\n uploading: '正在上传,请稍侯..',\r\n click_preview: '点击预览',\r\n toomuch_wait: '次数过多,请稍候再试',\r\n toomuch_wait_countdown: '次数过多,请稍候再试(<em>{0}</em>)',\r\n preview_orginal_image: '查看原图',\r\n auth_success: '验证成功',\r\n auth_fail: '验证失败',\r\n choose_image: '选择图片',\r\n \r\n\r\n tree_movefail1: '无法移动:目标文件夹和源文件夹相同',\r\n tree_movefail2: '无法移动:目标文件夹是源文件夹的子文件夹',\r\n\r\n internet_error: '[{0} error] {1}<br>网络连接失败,请稍候再试',\r\n server_error: '[{0} error] {1}<br>系统异常,请联系管理员',\r\n preload_error: '获取预装载模板 \"{0}\" 失败',\r\n\r\n page: '页',\r\n page_text: {\r\n first: '首页',\r\n last: '尾页',\r\n next: '下页',\r\n prev: '上页'\r\n },\r\n\r\n print_preview: '打印预览',\r\n\r\n placeholder_input: '请输入{0}',\r\n placeholder_select: '请选择{0}',\r\n\r\n pulldown_refresh: '下拉刷新',\r\n release_refresh: '释放刷新',\r\n pullup_refresh: '上拉显示更多',\r\n pullup_nomore: '没有更多了',\r\n\r\n download_start: '开始下载..',\r\n download_complete: '下载完成',\r\n download_cannotopen: '无法打开此文件',\r\n download_fail: '下载失败',\r\n\r\n tab_close: '关闭标签',\r\n tab_close_others: '关闭其他标签',\r\n tab_close_all: '关闭全部标签',\r\n\r\n sort_asc: '升序',\r\n sort_desc: '降序',\r\n sort_cancel: '取消排序',\r\n column_choose: '选择列',\r\n\r\n connection_not_wifi: '您当前处于非wifi网络环境下,继续使用可能产生流量,确定继续吗?',\r\n\r\n debug: {\r\n sorry: '很抱歉,系统发生了错误',\r\n view_more: '点击“确定”,可在新窗口查看详细错误信息',\r\n no_command: '视图中没有定义此命令: {0}\\nview path: {1}',\r\n no_combo: '选项列表(或树)没有设置combo参数\\nname: {0}',\r\n error_template_type: '{0}\\n请把此模板类型改为 \"{1}\"',\r\n error_type: 'type错误或丢失\\n{0}',\r\n tmpl_method_undefined: '\"{0}\" 方法不存在'\r\n },\r\n\r\n form: {\r\n required: '{0}不能为空',\r\n onlyone: '{0的}只能选择一条记录',\r\n maxLength: '{0的}字符长度超出了{1}个字节',\r\n reach_maxLength: '已到达可输入的最大字符长度',\r\n over_maxLength: '字符长度超出了{0}个字节',\r\n minLength: '{0}不能少于{1}个字节',\r\n maxValue: '{0}最大值为{1}',\r\n minValue: '{0}最小值为{1}',\r\n maxSize: '{0}最多选择{1}项',\r\n minSize: '{0}最少选择{1}项',\r\n pattern: '{0}格式不符合规范,或包含非法字符',\r\n password_weak: '弱',\r\n password_middle: '中',\r\n password_strong: '强',\r\n number_invalid: '{0}不是一个有效数字',\r\n number_integer: '{0}请填入一个整数',\r\n number_decimal_digit: '{0的}小数位不能超过{1}位',\r\n step_max_value: '已到达最大值',\r\n step_min_value: '已到达最小值',\r\n time_exceed: '{0的}年份超出有效范围。有效年份:{1}年 至 {2}年',\r\n time_format: '{0的}时间格式错误。正确格式范例:{1}',\r\n period_invalid: '{0的}起始时间应早于结束时间',\r\n beforeNow: '{0}不能大于当前时间',\r\n afterNow: '{0}不能小于当前时间',\r\n compare: '{0}需要满足条件:{1} {2} {3}',\r\n invalid_option: '存在无效选项',\r\n need_valid_option: '请输入一个有效选项',\r\n choose_atleastone: '请至少选择一项',\r\n complete_required: '请完成必填项',\r\n jigsaw_drag_right: '向右拖动滑块填充拼图',\r\n jigsaw_required: '请完成滑块验证',\r\n jigsaw_errorimg: '图片数据异常',\r\n upload_loading: '正在上传,请稍候..',\r\n upload_invalid_file: '存在无效文件',\r\n no_files: '<没有文件>',\r\n upload_error: '(上传失败)',\r\n upload_limit: '上传数量超过上限(最多{0}个)',\r\n upload_invalid_file_type: '无效的文件类型:<br>{0}',\r\n upload_invalid_data: '错误的文件数据格式:<br>{0}',\r\n upload_no_data: '缺少文件数据',\r\n upload_maxfilesize: '上传失败: {0}<br><br>文件大小不能超过{1}',\r\n upload_minfilesize: '上传失败: {0}<br><br>文件大小不能小于{1}'\r\n },\r\n\r\n year: '年',\r\n month: '月',\r\n day: '日',\r\n sky: '天',\r\n hour: '时',\r\n minute: '分',\r\n second: '秒',\r\n\r\n calendar: {\r\n now: '现在',\r\n today: '今天',\r\n weeknow: '本周',\r\n monthnow: '本月',\r\n yearnow: '本年',\r\n day_title: ['日', '一', '二', '三', '四', '五', '六'],\r\n day_title_1: [ '一', '二', '三', '四', '五', '六','日'],\r\n y: '{0}<span>年</span>',\r\n monthname: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n backdate: '返回日期',\r\n picktime: '选择时间',\r\n H: '时',\r\n m: '分',\r\n s: '秒',\r\n from_to: '{0} 至 {1}',\r\n },\r\n\r\n error: '错误',\r\n\r\n ps(a, ...args) {\r\n if (a) {\r\n a = a.replace(/\\{(\\d+)([^\\d]+)?\\}/g, function($0, $1, $2) {\r\n let d = args[parseFloat($1)]\r\n return d == null || d === '' ? '' : $2 ? d + $2 : d\r\n })\r\n }\r\n return a\r\n },\r\n \r\n end: '结束'\r\n\r\n}\r\n","<script>\r\n import $ from '../dfish.js'\r\n import Scroll from './Scroll.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-horizontal',\r\n mixins: [Scroll, AlignParent],\r\n props: ['br'],\r\n provide() {\r\n return {\r\n provideLayout: this.$options.name\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0\r\n }\r\n },\r\n html_slots() {\r\n return this.html_scroll_slots()\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n html_props() {\r\n let gap = this.x.gap\r\n return {\r\n class: [this.html_scroll_class, this.html_align_class, {'z-br': this.x.br, [`f-${this.dir}-gap`]: gap != null && gap != '' && ($.br.compat.gap || gap < 0)}],\r\n style: !this.x.scrollX && !this.x.scrollY && this.html_scroll_cont_style,\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let gap = this.x.gap\r\n if (gap != null && gap != '') {\r\n return {\r\n 'gap': $.unitSize(gap, true),\r\n '--w-compat-gap': ($.br.compat.gap || gap < 0) ? $.unitSize(gap, true) : null,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Horizontal.vue?vue&type=script&lang=js\"\nexport * from \"./Horizontal.vue?vue&type=script&lang=js\"\n\nexport default script","import {\r\n number\r\n} from './number.js'\r\nimport {\r\n strPad\r\n} from './str.js'\r\n\r\n// 一天的毫秒数\r\nconst _date_D = 86400000\r\n\r\n// 标准格式化字符串\r\nconst _date_sf = 'yyyy-MM-dd HH:mm:ss'\r\n\r\n// 格式化日期\r\nconst dateFormat = function(a, b) {\r\n if (typeof a === 'string')\r\n a = dateParse(a, b);\r\n let o = {\r\n y: a.getFullYear(),\r\n m: a.getMonth(),\r\n d: a.getDate(),\r\n h: a.getHours(),\r\n i: a.getMinutes(),\r\n s: a.getSeconds(),\r\n }\r\n let s = (b || _date_sf).replace('yyyy', o.y).replace('MM', strPad(o.m + 1)).replace('dd', strPad(o.d)).replace('HH',\r\n strPad(o.h))\r\n .replace('mm', strPad(o.i)).replace('ss', strPad(o.s))\r\n .replace('M', o.m + 1).replace('d', o.d).replace('H', o.h).replace('m', o.i).replace('s', o.s)\r\n if (s.indexOf('w') > -1) {\r\n let w = dateWeek(a)\r\n s = s.replace('ww', strPad(w[1])).replace('w', w[1])\r\n }\r\n return s\r\n}\r\n\r\n// 字串型转为日期型 /@a -> str, b -> format?\r\nconst dateParse = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1');\r\n b = (b || _date_sf).replace(/\\b([MdHmsw])\\b/g, '$1$1');\r\n let c\r\n let y = (c = b.indexOf('yyyy')) > -1 ? (number(a.substr(c, 4)) || (new Date().getFullYear())) : (new Date()\r\n .getFullYear())\r\n let M = (c = b.indexOf('MM')) > -1 ? Math.max(number(a.substr(c, 2)) - 1, 0) : 0\r\n let d = (c = b.indexOf('dd')) > -1 ? number(a.substr(c, 2)) || 1 : 1\r\n let H = (c = b.indexOf('HH')) > -1 ? number(a.substr(c, 2)) : 0\r\n let m = (c = b.indexOf('mm')) > -1 ? number(a.substr(c, 2)) : 0\r\n let s = (c = b.indexOf('ss')) > -1 ? number(a.substr(c, 2)) : 0\r\n if ((c = b.indexOf('ww')) > -1) {\r\n let w = number(a.substr(c, 2))\r\n let t = dateWeek(new Date(y, 0, 1))\r\n if (t[0] != y)\r\n t = dateWeek(new Date(y, 0, 8))\r\n return new Date(t[2].getTime() + (w - 1) * 7 * _date_D)\r\n }\r\n return new Date(y, M, d, H, m, s)\r\n}\r\n\r\n// 日期增减 /@ a -> date, b -> type enum (y/M/d/H/m/s), c -> value\r\nconst dateAdd = function(a, b, c) {\r\n c = number(c)\r\n let e = new Date(a.getTime())\r\n if (b === 'y')\r\n e.setFullYear(a.getFullYear() + c)\r\n else if (b === 'M')\r\n e.setMonth(e.getMonth() + c)\r\n else if (b === 'd')\r\n e.setDate(e.getDate() + c)\r\n else if (b === 'H')\r\n e.setHours(e.getHours() + c)\r\n else if (b === 'm')\r\n e.setMinutes(e.getMinutes() + c)\r\n else if (b === 's')\r\n e.setSeconds(e.getSeconds() + c)\r\n if ((b === 'y' || b === 'M') && e.getDate() != a.getDate())\r\n e = new Date(e.getTime() - e.getDate() * _date_D)\r\n return e\r\n}\r\n\r\n// 取得一个日期对象的week相关信息。返回一个包含四个元素的数组,【 年份,第几周,周一的日期,周日的日期 】\r\n// @a -> date\r\nconst dateWeek = function(a) {\r\n let b = $.x.weekPoint != null ? $.x.weekPoint : 1 //周的重心(星期几,从0到6)\r\n let c = $.x.weekStart != null ? $.x.weekStart : 1 //周的第一天(星期几,从0到6)\r\n let w = a.getDay() || 7\r\n let d = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + b)\r\n let e = Math.ceil((d - new Date(d.getFullYear(), 0, 0)) / _date_D)\r\n let f = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + c)\r\n return [d.getFullYear(), Math.floor((e + 6) / 7), f, new Date(f.getTime() + (7 * _date_D) - 1)]\r\n}\r\n\r\n// 获取某年的第一周\r\nconst dateWeekFirst = function(year) {\r\n let c = $.dateWeek(new Date(year, 0, 1))\r\n if (c[0] != year)\r\n c = $.dateWeek(new Date(year, 0, 8))\r\n return c\r\n}\r\n\r\n// 获取某年的最后一周\r\nconst dateWeekLast = function(year) {\r\n let b = dateWeek(new Date(year, 11, 31))\r\n if (b[0] !== year)\r\n b = dateWeek(new Date(year, 11, 31 - 7))\r\n return b\r\n}\r\n\r\n// 判断一个字符串格式的日期是否正确 /@ a -> date string, b -> date format string\r\nconst dateValid = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1')\r\n let d = dateParse(a, b)\r\n let y = d.getFullYear()\r\n return y >= 1000 && y <= 9999 && a == dateFormat(d, b)\r\n}\r\n\r\nconst dateDiff = function(a, b = new Date, c) {\r\n if (typeof a === 'string') a = dateParse(a)\r\n if (typeof b === 'string') b = dateParse(b)\r\n switch (c) {\r\n case 'y':\r\n let e = b.getFullYear() - a.getFullYear()\r\n let f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e\r\n case 'M':\r\n let y = _dateDiff(a, b, 'y')\r\n let z = dateAdd(a, 'y', y)\r\n e = z.getFullYear() < b.getFullYear() ? b.getMonth() + 11 - z.getMonth() : b.getMonth() - z.getMonth()\r\n f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e + y * 12\r\n case 'H':\r\n return Math.floor((b - a) / (60 * 60 * 1000))\r\n case 'm':\r\n return Math.floor((b - a) / (60 * 1000))\r\n case 's':\r\n return Math.floor((b - a) / 1000)\r\n default: // 'd' 日期类型为默认\r\n return Math.floor((b - a) / _date_D)\r\n }\r\n}\r\n\r\nconst dateSheet = function(...args) {\r\n return $.docView.dateSheet(...args)\r\n}\r\n\r\nexport {\r\n dateFormat,\r\n dateParse,\r\n dateAdd,\r\n dateValid,\r\n dateDiff,\r\n dateSheet,\r\n dateWeek,\r\n dateWeekFirst,\r\n dateWeekLast,\r\n}\n","var map = {\n\t\"./App\": [\n\t\t\"3dfd\",\n\t\t9,\n\t\t\"chunk-3c4da96a\",\n\t\t\"chunk-8de76d78\",\n\t\t\"chunk-48d23b5a\"\n\t],\n\t\"./App.vue\": [\n\t\t\"3dfd\",\n\t\t9,\n\t\t\"chunk-3c4da96a\",\n\t\t\"chunk-8de76d78\",\n\t\t\"chunk-48d23b5a\"\n\t],\n\t\"./assets/SVGIcon\": [\n\t\t\"5cd5\",\n\t\t9\n\t],\n\t\"./assets/SVGIcon.vue\": [\n\t\t\"5cd5\",\n\t\t9\n\t],\n\t\"./assets/dfish.css\": [\n\t\t\"d35b\",\n\t\t7\n\t],\n\t\"./assets/f/iconfont.ttf\": [\n\t\t\"87ef\",\n\t\t7,\n\t\t\"chunk-2d0df0d6\"\n\t],\n\t\"./assets/f/iconfont.woff\": [\n\t\t\"b872\",\n\t\t7,\n\t\t\"chunk-2d210667\"\n\t],\n\t\"./assets/f/iconfont.woff2\": [\n\t\t\"3927\",\n\t\t7,\n\t\t\"chunk-2d0bac21\"\n\t],\n\t\"./assets/g/f.png\": [\n\t\t\"0d6b\",\n\t\t7,\n\t\t\"chunk-2d0af116\"\n\t],\n\t\"./assets/g/i.png\": [\n\t\t\"9436\",\n\t\t7,\n\t\t\"chunk-2d0e53b4\"\n\t],\n\t\"./components/AMapPicker\": [\n\t\t\"505a\",\n\t\t9,\n\t\t\"chunk-02baca6a\"\n\t],\n\t\"./components/AMapPicker.vue\": [\n\t\t\"505a\",\n\t\t9,\n\t\t\"chunk-02baca6a\"\n\t],\n\t\"./components/FormView\": [\n\t\t\"ab06\",\n\t\t9,\n\t\t\"chunk-8de76d78\",\n\t\t\"chunk-4bd43f40\"\n\t],\n\t\"./components/FormView.vue\": [\n\t\t\"ab06\",\n\t\t9,\n\t\t\"chunk-8de76d78\",\n\t\t\"chunk-4bd43f40\"\n\t],\n\t\"./components/FuncView\": [\n\t\t\"e43e\",\n\t\t9,\n\t\t\"chunk-7b95e342\"\n\t],\n\t\"./components/FuncView.vue\": [\n\t\t\"e43e\",\n\t\t9,\n\t\t\"chunk-7b95e342\"\n\t],\n\t\"./components/HelloWorld\": [\n\t\t\"fdab\",\n\t\t9,\n\t\t\"chunk-77ff8882\"\n\t],\n\t\"./components/HelloWorld.vue\": [\n\t\t\"fdab\",\n\t\t9,\n\t\t\"chunk-77ff8882\"\n\t],\n\t\"./components/LayoutView\": [\n\t\t\"41aa\",\n\t\t9,\n\t\t\"chunk-3c4da96a\",\n\t\t\"chunk-77ff8882\"\n\t],\n\t\"./components/LayoutView.vue\": [\n\t\t\"41aa\",\n\t\t9,\n\t\t\"chunk-3c4da96a\",\n\t\t\"chunk-77ff8882\"\n\t],\n\t\"./components/Sign\": [\n\t\t\"2fc7\",\n\t\t9,\n\t\t\"chunk-0113803f\"\n\t],\n\t\"./components/Sign.vue\": [\n\t\t\"2fc7\",\n\t\t9,\n\t\t\"chunk-0113803f\"\n\t],\n\t\"./components/task/FeedbkTR\": [\n\t\t\"da31\",\n\t\t9,\n\t\t\"chunk-2d228891\"\n\t],\n\t\"./components/task/FeedbkTR.vue\": [\n\t\t\"da31\",\n\t\t9,\n\t\t\"chunk-2d228891\"\n\t],\n\t\"./components/task/GoldView\": [\n\t\t\"37be\",\n\t\t9,\n\t\t\"chunk-0afcc52e\"\n\t],\n\t\"./components/task/GoldView.vue\": [\n\t\t\"37be\",\n\t\t9,\n\t\t\"chunk-0afcc52e\"\n\t],\n\t\"./components/task/HelloView\": [\n\t\t\"133f\",\n\t\t9,\n\t\t\"chunk-2d0aad2b\"\n\t],\n\t\"./components/task/HelloView.vue\": [\n\t\t\"133f\",\n\t\t9,\n\t\t\"chunk-2d0aad2b\"\n\t],\n\t\"./components/task/LionView\": [\n\t\t\"6886\",\n\t\t9,\n\t\t\"chunk-5f709e3a\"\n\t],\n\t\"./components/task/LionView.vue\": [\n\t\t\"6886\",\n\t\t9,\n\t\t\"chunk-5f709e3a\"\n\t],\n\t\"./components/task/TaskAMapPicker\": [\n\t\t\"3da4\",\n\t\t9,\n\t\t\"chunk-6c284fc1\"\n\t],\n\t\"./components/task/TaskAMapPicker.vue\": [\n\t\t\"3da4\",\n\t\t9,\n\t\t\"chunk-6c284fc1\"\n\t],\n\t\"./components/task/TaskCombobox\": [\n\t\t\"d063\",\n\t\t9,\n\t\t\"chunk-2d21d0ff\"\n\t],\n\t\"./components/task/TaskCombobox.vue\": [\n\t\t\"d063\",\n\t\t9,\n\t\t\"chunk-2d21d0ff\"\n\t],\n\t\"./components/task/TaskDropbox\": [\n\t\t\"43c0\",\n\t\t9,\n\t\t\"chunk-2d0c0fe2\"\n\t],\n\t\"./components/task/TaskDropbox.vue\": [\n\t\t\"43c0\",\n\t\t9,\n\t\t\"chunk-2d0c0fe2\"\n\t],\n\t\"./components/task/TaskForm\": [\n\t\t\"3e12\",\n\t\t9,\n\t\t\"chunk-f191aa40\"\n\t],\n\t\"./components/task/TaskForm.vue\": [\n\t\t\"3e12\",\n\t\t9,\n\t\t\"chunk-f191aa40\"\n\t],\n\t\"./components/task/TaskHello\": [\n\t\t\"ec22\",\n\t\t9,\n\t\t\"chunk-280378c6\"\n\t],\n\t\"./components/task/TaskHello.vue\": [\n\t\t\"ec22\",\n\t\t9,\n\t\t\"chunk-280378c6\"\n\t],\n\t\"./components/task/TaskJigsaw\": [\n\t\t\"2dbf\",\n\t\t9,\n\t\t\"chunk-2d0bdf2c\"\n\t],\n\t\"./components/task/TaskJigsaw.vue\": [\n\t\t\"2dbf\",\n\t\t9,\n\t\t\"chunk-2d0bdf2c\"\n\t],\n\t\"./components/task/TaskLeaf\": [\n\t\t\"71fe\",\n\t\t9,\n\t\t\"chunk-2d0d660f\"\n\t],\n\t\"./components/task/TaskLeaf.vue\": [\n\t\t\"71fe\",\n\t\t9,\n\t\t\"chunk-2d0d660f\"\n\t],\n\t\"./components/task/TaskLeafFormat\": [\n\t\t\"6c64\",\n\t\t9,\n\t\t\"chunk-2f7f0670\"\n\t],\n\t\"./components/task/TaskLeafFormat.vue\": [\n\t\t\"6c64\",\n\t\t9,\n\t\t\"chunk-2f7f0670\"\n\t],\n\t\"./components/task/TaskLinkbox\": [\n\t\t\"067f\",\n\t\t9,\n\t\t\"chunk-2d0a448b\"\n\t],\n\t\"./components/task/TaskLinkbox.vue\": [\n\t\t\"067f\",\n\t\t9,\n\t\t\"chunk-2d0a448b\"\n\t],\n\t\"./components/task/TaskMenu\": [\n\t\t\"4fe0\",\n\t\t9,\n\t\t\"chunk-2d0ccf93\"\n\t],\n\t\"./components/task/TaskMenu.vue\": [\n\t\t\"4fe0\",\n\t\t9,\n\t\t\"chunk-2d0ccf93\"\n\t],\n\t\"./components/task/TaskPageBar\": [\n\t\t\"405e\",\n\t\t9,\n\t\t\"chunk-c7c01ff4\"\n\t],\n\t\"./components/task/TaskPageBar.vue\": [\n\t\t\"405e\",\n\t\t9,\n\t\t\"chunk-c7c01ff4\"\n\t],\n\t\"./components/task/TaskPickBox\": [\n\t\t\"0139\",\n\t\t9,\n\t\t\"chunk-3d7d76fb\"\n\t],\n\t\"./components/task/TaskPickBox.vue\": [\n\t\t\"0139\",\n\t\t9,\n\t\t\"chunk-3d7d76fb\"\n\t],\n\t\"./components/task/TaskTR\": [\n\t\t\"2e34\",\n\t\t9,\n\t\t\"chunk-2d0bdd0a\"\n\t],\n\t\"./components/task/TaskTR.vue\": [\n\t\t\"2e34\",\n\t\t9,\n\t\t\"chunk-2d0bdd0a\"\n\t],\n\t\"./components/task/WorldView\": [\n\t\t\"f84a\",\n\t\t9,\n\t\t\"chunk-2d22d7b5\"\n\t],\n\t\"./components/task/WorldView.vue\": [\n\t\t\"f84a\",\n\t\t9,\n\t\t\"chunk-2d22d7b5\"\n\t],\n\t\"./dfish\": [\n\t\t\"d40a\",\n\t\t9\n\t],\n\t\"./dfish.js\": [\n\t\t\"d40a\",\n\t\t9\n\t],\n\t\"./directive\": [\n\t\t\"7f6c\",\n\t\t9\n\t],\n\t\"./directive/\": [\n\t\t\"7f6c\",\n\t\t9\n\t],\n\t\"./directive/dialog-move\": [\n\t\t\"7d83\",\n\t\t9\n\t],\n\t\"./directive/dialog-move.js\": [\n\t\t\"7d83\",\n\t\t9\n\t],\n\t\"./directive/form-ignore\": [\n\t\t\"f393\",\n\t\t9\n\t],\n\t\"./directive/form-ignore.js\": [\n\t\t\"f393\",\n\t\t9\n\t],\n\t\"./directive/index\": [\n\t\t\"7f6c\",\n\t\t9\n\t],\n\t\"./directive/index.js\": [\n\t\t\"7f6c\",\n\t\t9\n\t],\n\t\"./directive/label-width\": [\n\t\t\"4637\",\n\t\t9\n\t],\n\t\"./directive/label-width.js\": [\n\t\t\"4637\",\n\t\t9\n\t],\n\t\"./main\": [\n\t\t\"56d7\",\n\t\t9,\n\t\t\"chunk-3c4da96a\",\n\t\t\"chunk-8de76d78\",\n\t\t\"chunk-48d23b5a\",\n\t\t\"chunk-2d0c8faa\"\n\t],\n\t\"./main.js\": [\n\t\t\"56d7\",\n\t\t9,\n\t\t\"chunk-3c4da96a\",\n\t\t\"chunk-8de76d78\",\n\t\t\"chunk-48d23b5a\",\n\t\t\"chunk-2d0c8faa\"\n\t],\n\t\"./preload/DialogStd\": [\n\t\t\"7007\",\n\t\t9,\n\t\t\"chunk-4bd43f40\"\n\t],\n\t\"./preload/DialogStd.vue\": [\n\t\t\"7007\",\n\t\t9,\n\t\t\"chunk-4bd43f40\"\n\t],\n\t\"./preload/PreloadAlert\": [\n\t\t\"303b\",\n\t\t9,\n\t\t\"chunk-2d0b8aa2\"\n\t],\n\t\"./preload/PreloadAlert.vue\": [\n\t\t\"303b\",\n\t\t9,\n\t\t\"chunk-2d0b8aa2\"\n\t],\n\t\"./preload/PreloadConfirm\": [\n\t\t\"00dd\",\n\t\t9,\n\t\t\"chunk-2d0a3376\"\n\t],\n\t\"./preload/PreloadConfirm.vue\": [\n\t\t\"00dd\",\n\t\t9,\n\t\t\"chunk-2d0a3376\"\n\t],\n\t\"./preload/PreloadDialog\": [\n\t\t\"8181\",\n\t\t9,\n\t\t\"chunk-2d0dd4a8\"\n\t],\n\t\"./preload/PreloadDialog.vue\": [\n\t\t\"8181\",\n\t\t9,\n\t\t\"chunk-2d0dd4a8\"\n\t],\n\t\"./preload/PreloadNone\": [\n\t\t\"571b\",\n\t\t9,\n\t\t\"chunk-2d0c8d69\"\n\t],\n\t\"./preload/PreloadNone.vue\": [\n\t\t\"571b\",\n\t\t9,\n\t\t\"chunk-2d0c8d69\"\n\t],\n\t\"./preload/Simple\": [\n\t\t\"f22e\",\n\t\t9,\n\t\t\"chunk-1da003f6\"\n\t],\n\t\"./preload/Simple.vue\": [\n\t\t\"f22e\",\n\t\t9,\n\t\t\"chunk-1da003f6\"\n\t],\n\t\"./template/TemplateAlert\": [\n\t\t\"0903\",\n\t\t9\n\t],\n\t\"./template/TemplateAlert.vue\": [\n\t\t\"0903\",\n\t\t9\n\t],\n\t\"./template/TemplateConfirm\": [\n\t\t\"c901\",\n\t\t9\n\t],\n\t\"./template/TemplateConfirm.vue\": [\n\t\t\"c901\",\n\t\t9\n\t],\n\t\"./template/TemplateDateSheet\": [\n\t\t\"c98d\",\n\t\t9\n\t],\n\t\"./template/TemplateDateSheet.vue\": [\n\t\t\"c98d\",\n\t\t9\n\t],\n\t\"./template/TemplateJigsaw\": [\n\t\t\"ba3e\",\n\t\t9\n\t],\n\t\"./template/TemplateJigsaw.vue\": [\n\t\t\"ba3e\",\n\t\t9\n\t],\n\t\"./template/TemplateLoading\": [\n\t\t\"560f\",\n\t\t9\n\t],\n\t\"./template/TemplateLoading.vue\": [\n\t\t\"560f\",\n\t\t9\n\t],\n\t\"./template/TemplatePreviewMedia\": [\n\t\t\"f5f5\",\n\t\t9\n\t],\n\t\"./template/TemplatePreviewMedia.vue\": [\n\t\t\"f5f5\",\n\t\t9\n\t],\n\t\"./template/TemplateTip\": [\n\t\t\"7c54\",\n\t\t9\n\t],\n\t\"./template/TemplateTip.vue\": [\n\t\t\"7c54\",\n\t\t9\n\t],\n\t\"./util/browser\": [\n\t\t\"af14\",\n\t\t9\n\t],\n\t\"./util/browser.js\": [\n\t\t\"af14\",\n\t\t9\n\t],\n\t\"./util/css\": [\n\t\t\"a695\",\n\t\t9\n\t],\n\t\"./util/css.js\": [\n\t\t\"a695\",\n\t\t9\n\t],\n\t\"./util/date\": [\n\t\t\"84df\",\n\t\t9\n\t],\n\t\"./util/date.js\": [\n\t\t\"84df\",\n\t\t9\n\t],\n\t\"./util/elem\": [\n\t\t\"d885\",\n\t\t9\n\t],\n\t\"./util/elem.js\": [\n\t\t\"d885\",\n\t\t9\n\t],\n\t\"./util/event\": [\n\t\t\"b2eb\",\n\t\t9\n\t],\n\t\"./util/event.js\": [\n\t\t\"b2eb\",\n\t\t9\n\t],\n\t\"./util/json\": [\n\t\t\"368c\",\n\t\t9\n\t],\n\t\"./util/json.js\": [\n\t\t\"368c\",\n\t\t9\n\t],\n\t\"./util/loc/zh-CN\": [\n\t\t\"8441\",\n\t\t9\n\t],\n\t\"./util/loc/zh-CN.js\": [\n\t\t\"8441\",\n\t\t9\n\t],\n\t\"./util/mime\": [\n\t\t\"9941\",\n\t\t9\n\t],\n\t\"./util/mime.js\": [\n\t\t\"9941\",\n\t\t9\n\t],\n\t\"./util/number\": [\n\t\t\"2f82\",\n\t\t9\n\t],\n\t\"./util/number.js\": [\n\t\t\"2f82\",\n\t\t9\n\t],\n\t\"./util/range\": [\n\t\t\"7333\",\n\t\t9\n\t],\n\t\"./util/range.js\": [\n\t\t\"7333\",\n\t\t9\n\t],\n\t\"./util/snap\": [\n\t\t\"428f\",\n\t\t9\n\t],\n\t\"./util/snap.js\": [\n\t\t\"428f\",\n\t\t9\n\t],\n\t\"./util/str\": [\n\t\t\"2de2\",\n\t\t9\n\t],\n\t\"./util/str.js\": [\n\t\t\"2de2\",\n\t\t9\n\t],\n\t\"./util/uid\": [\n\t\t\"465a\",\n\t\t9\n\t],\n\t\"./util/uid.js\": [\n\t\t\"465a\",\n\t\t9\n\t],\n\t\"./util/v-directive\": [\n\t\t\"3894\",\n\t\t9,\n\t\t\"chunk-2d0ba936\"\n\t],\n\t\"./util/v-directive.js\": [\n\t\t\"3894\",\n\t\t9,\n\t\t\"chunk-2d0ba936\"\n\t],\n\t\"./widgets\": [\n\t\t\"bb84\",\n\t\t9\n\t],\n\t\"./widgets/\": [\n\t\t\"bb84\",\n\t\t9\n\t],\n\t\"./widgets/Album\": [\n\t\t\"b731\",\n\t\t9\n\t],\n\t\"./widgets/Album.vue\": [\n\t\t\"b731\",\n\t\t9\n\t],\n\t\"./widgets/Alert\": [\n\t\t\"af36\",\n\t\t9\n\t],\n\t\"./widgets/Alert.vue\": [\n\t\t\"af36\",\n\t\t9\n\t],\n\t\"./widgets/AlignParent\": [\n\t\t\"01ce\",\n\t\t9\n\t],\n\t\"./widgets/AlignParent.vue\": [\n\t\t\"01ce\",\n\t\t9\n\t],\n\t\"./widgets/Button\": [\n\t\t\"4716\",\n\t\t9\n\t],\n\t\"./widgets/Button.vue\": [\n\t\t\"4716\",\n\t\t9\n\t],\n\t\"./widgets/ButtonBar\": [\n\t\t\"3289\",\n\t\t9\n\t],\n\t\"./widgets/ButtonBar.vue\": [\n\t\t\"3289\",\n\t\t9\n\t],\n\t\"./widgets/Calendar\": [\n\t\t\"c3b3\",\n\t\t9\n\t],\n\t\"./widgets/Calendar.vue\": [\n\t\t\"c3b3\",\n\t\t9\n\t],\n\t\"./widgets/CheckBox\": [\n\t\t\"4ecb\",\n\t\t9\n\t],\n\t\"./widgets/CheckBox.vue\": [\n\t\t\"4ecb\",\n\t\t9\n\t],\n\t\"./widgets/CheckBoxGroup\": [\n\t\t\"eb89\",\n\t\t9\n\t],\n\t\"./widgets/CheckBoxGroup.vue\": [\n\t\t\"eb89\",\n\t\t9\n\t],\n\t\"./widgets/ComboBox\": [\n\t\t\"3287\",\n\t\t9\n\t],\n\t\"./widgets/ComboBox.vue\": [\n\t\t\"3287\",\n\t\t9\n\t],\n\t\"./widgets/Confirm\": [\n\t\t\"b45e\",\n\t\t9\n\t],\n\t\"./widgets/Confirm.vue\": [\n\t\t\"b45e\",\n\t\t9\n\t],\n\t\"./widgets/DatePicker\": [\n\t\t\"92a4\",\n\t\t9\n\t],\n\t\"./widgets/DatePicker.vue\": [\n\t\t\"92a4\",\n\t\t9\n\t],\n\t\"./widgets/Dialog\": [\n\t\t\"c617\",\n\t\t9\n\t],\n\t\"./widgets/Dialog.vue\": [\n\t\t\"c617\",\n\t\t9\n\t],\n\t\"./widgets/DialogMove\": [\n\t\t\"7016\",\n\t\t9\n\t],\n\t\"./widgets/DialogMove.vue\": [\n\t\t\"7016\",\n\t\t9\n\t],\n\t\"./widgets/DocView\": [\n\t\t\"3d26\",\n\t\t9\n\t],\n\t\"./widgets/DocView.vue\": [\n\t\t\"3d26\",\n\t\t9\n\t],\n\t\"./widgets/DropBox\": [\n\t\t\"f9f3\",\n\t\t9\n\t],\n\t\"./widgets/DropBox.vue\": [\n\t\t\"f9f3\",\n\t\t9\n\t],\n\t\"./widgets/FileUpload\": [\n\t\t\"39de\",\n\t\t9\n\t],\n\t\"./widgets/FileUpload.vue\": [\n\t\t\"39de\",\n\t\t9\n\t],\n\t\"./widgets/Form\": [\n\t\t\"72aa\",\n\t\t9\n\t],\n\t\"./widgets/Form.vue\": [\n\t\t\"72aa\",\n\t\t9\n\t],\n\t\"./widgets/FormBase\": [\n\t\t\"1e42\",\n\t\t9\n\t],\n\t\"./widgets/FormBase.vue\": [\n\t\t\"1e42\",\n\t\t9\n\t],\n\t\"./widgets/Grid\": [\n\t\t\"e7fa\",\n\t\t9\n\t],\n\t\"./widgets/Grid.vue\": [\n\t\t\"e7fa\",\n\t\t9\n\t],\n\t\"./widgets/Hidden\": [\n\t\t\"1bea\",\n\t\t9\n\t],\n\t\"./widgets/Hidden.vue\": [\n\t\t\"1bea\",\n\t\t9\n\t],\n\t\"./widgets/Horizontal\": [\n\t\t\"8464\",\n\t\t9\n\t],\n\t\"./widgets/Horizontal.vue\": [\n\t\t\"8464\",\n\t\t9\n\t],\n\t\"./widgets/Html\": [\n\t\t\"6b69\",\n\t\t9\n\t],\n\t\"./widgets/Html.vue\": [\n\t\t\"6b69\",\n\t\t9\n\t],\n\t\"./widgets/ImageUpload\": [\n\t\t\"3c8e\",\n\t\t9\n\t],\n\t\"./widgets/ImageUpload.vue\": [\n\t\t\"3c8e\",\n\t\t9\n\t],\n\t\"./widgets/Img\": [\n\t\t\"e660\",\n\t\t9\n\t],\n\t\"./widgets/Img.vue\": [\n\t\t\"e660\",\n\t\t9\n\t],\n\t\"./widgets/Jigsaw\": [\n\t\t\"d4df\",\n\t\t9\n\t],\n\t\"./widgets/Jigsaw.vue\": [\n\t\t\"d4df\",\n\t\t9\n\t],\n\t\"./widgets/Label\": [\n\t\t\"56be\",\n\t\t9\n\t],\n\t\"./widgets/Label.vue\": [\n\t\t\"56be\",\n\t\t9\n\t],\n\t\"./widgets/Leaf\": [\n\t\t\"c00c\",\n\t\t9\n\t],\n\t\"./widgets/Leaf.vue\": [\n\t\t\"c00c\",\n\t\t9\n\t],\n\t\"./widgets/LinkBox\": [\n\t\t\"2769\",\n\t\t9\n\t],\n\t\"./widgets/LinkBox.vue\": [\n\t\t\"2769\",\n\t\t9\n\t],\n\t\"./widgets/Loading\": [\n\t\t\"ea2f\",\n\t\t9\n\t],\n\t\"./widgets/Loading.vue\": [\n\t\t\"ea2f\",\n\t\t9\n\t],\n\t\"./widgets/MediaUpload\": [\n\t\t\"e8fd\",\n\t\t9\n\t],\n\t\"./widgets/MediaUpload.vue\": [\n\t\t\"e8fd\",\n\t\t9\n\t],\n\t\"./widgets/MediaUploadItem\": [\n\t\t\"bb18\",\n\t\t9\n\t],\n\t\"./widgets/MediaUploadItem.vue\": [\n\t\t\"bb18\",\n\t\t9\n\t],\n\t\"./widgets/Menu\": [\n\t\t\"122b\",\n\t\t9\n\t],\n\t\"./widgets/Menu.vue\": [\n\t\t\"122b\",\n\t\t9\n\t],\n\t\"./widgets/MenuButton\": [\n\t\t\"2f9f\",\n\t\t9\n\t],\n\t\"./widgets/MenuButton.vue\": [\n\t\t\"2f9f\",\n\t\t9\n\t],\n\t\"./widgets/Option\": [\n\t\t\"2aa7\",\n\t\t9\n\t],\n\t\"./widgets/Option.vue\": [\n\t\t\"2aa7\",\n\t\t9\n\t],\n\t\"./widgets/PageBar\": [\n\t\t\"1729\",\n\t\t9\n\t],\n\t\"./widgets/PageBar.vue\": [\n\t\t\"1729\",\n\t\t9\n\t],\n\t\"./widgets/Password\": [\n\t\t\"6adf\",\n\t\t9\n\t],\n\t\"./widgets/Password.vue\": [\n\t\t\"6adf\",\n\t\t9\n\t],\n\t\"./widgets/PickBox\": [\n\t\t\"783d\",\n\t\t9\n\t],\n\t\"./widgets/PickBox.vue\": [\n\t\t\"783d\",\n\t\t9\n\t],\n\t\"./widgets/Pop\": [\n\t\t\"a368\",\n\t\t9\n\t],\n\t\"./widgets/Pop.vue\": [\n\t\t\"a368\",\n\t\t9\n\t],\n\t\"./widgets/Progress\": [\n\t\t\"e06a\",\n\t\t9\n\t],\n\t\"./widgets/Progress.vue\": [\n\t\t\"e06a\",\n\t\t9\n\t],\n\t\"./widgets/PubParent\": [\n\t\t\"7e11\",\n\t\t9\n\t],\n\t\"./widgets/PubParent.vue\": [\n\t\t\"7e11\",\n\t\t9\n\t],\n\t\"./widgets/Radio\": [\n\t\t\"edc2\",\n\t\t9\n\t],\n\t\"./widgets/Radio.vue\": [\n\t\t\"edc2\",\n\t\t9\n\t],\n\t\"./widgets/RadioGroup\": [\n\t\t\"d597\",\n\t\t9\n\t],\n\t\"./widgets/RadioGroup.vue\": [\n\t\t\"d597\",\n\t\t9\n\t],\n\t\"./widgets/Range\": [\n\t\t\"af03\",\n\t\t9\n\t],\n\t\"./widgets/Range.vue\": [\n\t\t\"af03\",\n\t\t9\n\t],\n\t\"./widgets/Rate\": [\n\t\t\"a03d\",\n\t\t9\n\t],\n\t\"./widgets/Rate.vue\": [\n\t\t\"a03d\",\n\t\t9\n\t],\n\t\"./widgets/RateStar\": [\n\t\t\"183f\",\n\t\t9,\n\t\t\"chunk-2d0abff0\"\n\t],\n\t\"./widgets/RateStar.vue\": [\n\t\t\"183f\",\n\t\t9,\n\t\t\"chunk-2d0abff0\"\n\t],\n\t\"./widgets/Scroll\": [\n\t\t\"9667\",\n\t\t9\n\t],\n\t\"./widgets/Scroll.vue\": [\n\t\t\"9667\",\n\t\t9\n\t],\n\t\"./widgets/SlidePicker\": [\n\t\t\"bbd8\",\n\t\t9\n\t],\n\t\"./widgets/SlidePicker.vue\": [\n\t\t\"bbd8\",\n\t\t9\n\t],\n\t\"./widgets/Spinner\": [\n\t\t\"ec35\",\n\t\t9\n\t],\n\t\"./widgets/Spinner.vue\": [\n\t\t\"ec35\",\n\t\t9\n\t],\n\t\"./widgets/Split\": [\n\t\t\"9f07\",\n\t\t9\n\t],\n\t\"./widgets/Split.vue\": [\n\t\t\"9f07\",\n\t\t9\n\t],\n\t\"./widgets/SrcParent\": [\n\t\t\"55b2\",\n\t\t9\n\t],\n\t\"./widgets/SrcParent.vue\": [\n\t\t\"55b2\",\n\t\t9\n\t],\n\t\"./widgets/SubmitButton\": [\n\t\t\"5cf9\",\n\t\t9\n\t],\n\t\"./widgets/SubmitButton.vue\": [\n\t\t\"5cf9\",\n\t\t9\n\t],\n\t\"./widgets/Swiper\": [\n\t\t\"a6fe\",\n\t\t9\n\t],\n\t\"./widgets/Swiper.vue\": [\n\t\t\"a6fe\",\n\t\t9\n\t],\n\t\"./widgets/SwiperItem\": [\n\t\t\"da72\",\n\t\t9\n\t],\n\t\"./widgets/SwiperItem.vue\": [\n\t\t\"da72\",\n\t\t9\n\t],\n\t\"./widgets/Switch\": [\n\t\t\"e0a7\",\n\t\t9\n\t],\n\t\"./widgets/Switch.vue\": [\n\t\t\"e0a7\",\n\t\t9\n\t],\n\t\"./widgets/Tab\": [\n\t\t\"c577\",\n\t\t9\n\t],\n\t\"./widgets/Tab.vue\": [\n\t\t\"c577\",\n\t\t9\n\t],\n\t\"./widgets/TabButton\": [\n\t\t\"16aa\",\n\t\t9\n\t],\n\t\"./widgets/TabButton.vue\": [\n\t\t\"16aa\",\n\t\t9\n\t],\n\t\"./widgets/Table\": [\n\t\t\"fbdd\",\n\t\t9\n\t],\n\t\"./widgets/Table.vue\": [\n\t\t\"fbdd\",\n\t\t9\n\t],\n\t\"./widgets/TableColumn\": [\n\t\t\"a506\",\n\t\t9\n\t],\n\t\"./widgets/TableColumn.vue\": [\n\t\t\"a506\",\n\t\t9\n\t],\n\t\"./widgets/TableColumns\": [\n\t\t\"4e44\",\n\t\t9\n\t],\n\t\"./widgets/TableColumns.vue\": [\n\t\t\"4e44\",\n\t\t9\n\t],\n\t\"./widgets/TableTBody\": [\n\t\t\"3dd9\",\n\t\t9\n\t],\n\t\"./widgets/TableTBody.vue\": [\n\t\t\"3dd9\",\n\t\t9\n\t],\n\t\"./widgets/TableTD\": [\n\t\t\"7f02\",\n\t\t9\n\t],\n\t\"./widgets/TableTD.vue\": [\n\t\t\"7f02\",\n\t\t9\n\t],\n\t\"./widgets/TableTH\": [\n\t\t\"6df1\",\n\t\t9\n\t],\n\t\"./widgets/TableTH.vue\": [\n\t\t\"6df1\",\n\t\t9\n\t],\n\t\"./widgets/TableTHead\": [\n\t\t\"ac97\",\n\t\t9\n\t],\n\t\"./widgets/TableTHead.vue\": [\n\t\t\"ac97\",\n\t\t9\n\t],\n\t\"./widgets/TableTR\": [\n\t\t\"d1dc\",\n\t\t9\n\t],\n\t\"./widgets/TableTR.vue\": [\n\t\t\"d1dc\",\n\t\t9\n\t],\n\t\"./widgets/Tabs\": [\n\t\t\"b4db\",\n\t\t9\n\t],\n\t\"./widgets/Tabs.vue\": [\n\t\t\"b4db\",\n\t\t9\n\t],\n\t\"./widgets/Text\": [\n\t\t\"f00f\",\n\t\t9\n\t],\n\t\"./widgets/Text.vue\": [\n\t\t\"f00f\",\n\t\t9\n\t],\n\t\"./widgets/Textarea\": [\n\t\t\"92c9\",\n\t\t9\n\t],\n\t\"./widgets/Textarea.vue\": [\n\t\t\"92c9\",\n\t\t9\n\t],\n\t\"./widgets/Timeline\": [\n\t\t\"5ec7\",\n\t\t9\n\t],\n\t\"./widgets/Timeline.vue\": [\n\t\t\"5ec7\",\n\t\t9\n\t],\n\t\"./widgets/TimelineItem\": [\n\t\t\"6cc0\",\n\t\t9\n\t],\n\t\"./widgets/TimelineItem.vue\": [\n\t\t\"6cc0\",\n\t\t9\n\t],\n\t\"./widgets/Tip\": [\n\t\t\"86ed\",\n\t\t9\n\t],\n\t\"./widgets/Tip.vue\": [\n\t\t\"86ed\",\n\t\t9\n\t],\n\t\"./widgets/Toggle\": [\n\t\t\"c8fb\",\n\t\t9\n\t],\n\t\"./widgets/Toggle.vue\": [\n\t\t\"c8fb\",\n\t\t9\n\t],\n\t\"./widgets/Tree\": [\n\t\t\"6a4c\",\n\t\t9\n\t],\n\t\"./widgets/Tree.vue\": [\n\t\t\"6a4c\",\n\t\t9\n\t],\n\t\"./widgets/TripleBox\": [\n\t\t\"ecbe\",\n\t\t9\n\t],\n\t\"./widgets/TripleBox.vue\": [\n\t\t\"ecbe\",\n\t\t9\n\t],\n\t\"./widgets/Vertical\": [\n\t\t\"d686\",\n\t\t9\n\t],\n\t\"./widgets/Vertical.vue\": [\n\t\t\"d686\",\n\t\t9\n\t],\n\t\"./widgets/Video\": [\n\t\t\"9be7\",\n\t\t9\n\t],\n\t\"./widgets/Video.vue\": [\n\t\t\"9be7\",\n\t\t9\n\t],\n\t\"./widgets/View\": [\n\t\t\"2e86\",\n\t\t9\n\t],\n\t\"./widgets/View.vue\": [\n\t\t\"2e86\",\n\t\t9\n\t],\n\t\"./widgets/ViewAbs\": [\n\t\t\"38da\",\n\t\t9\n\t],\n\t\"./widgets/ViewAbs.vue\": [\n\t\t\"38da\",\n\t\t9\n\t],\n\t\"./widgets/WidgetAbs\": [\n\t\t\"d0e8\",\n\t\t9\n\t],\n\t\"./widgets/WidgetAbs.vue\": [\n\t\t\"d0e8\",\n\t\t9\n\t],\n\t\"./widgets/WidgetBase\": [\n\t\t\"dbeb\",\n\t\t9\n\t],\n\t\"./widgets/WidgetBase.vue\": [\n\t\t\"dbeb\",\n\t\t9\n\t],\n\t\"./widgets/index\": [\n\t\t\"bb84\",\n\t\t9\n\t],\n\t\"./widgets/index.js\": [\n\t\t\"bb84\",\n\t\t9\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1])\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"8673\";\nmodule.exports = webpackAsyncContext;","<script>\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n\r\n let inst = null\r\n let tipCache = {\r\n time: new Date().getTime()\r\n }\r\n export {tipCache}\r\n \r\n export default {\r\n name: 'w-tip',\r\n mixins: [Dialog],\r\n props: ['text', 'face'],\r\n methods: {\r\n x_default() {\r\n return {\r\n prong: true,\r\n autoHide: true,\r\n }\r\n },\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-dialog w-vertical' + (this.x.face && ' z-face-' + this.x.face)\r\n },\r\n defaultSnapTargetElem() {\r\n return this.commander.snapElem()\r\n },\r\n defaultSnapPosition() {\r\n return 'tb,rl,lr,bt,rr,ll,bb,tt,cc'\r\n }\r\n },\r\n mounted() {\r\n tipCache.time = new Date().getTime()\r\n inst && $.close(inst)\r\n inst = this.uid\r\n },\r\n unmounted() {\r\n inst = null\r\n }\r\n }\r\n \r\n</script>\r\n\r\n<style>\r\n .w-tip.w-dialog {\r\n border: 1px solid #2498ff;\r\n background: #f5faff;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip .w-tip-x {\r\n position: absolute;\r\n right: 3px;\r\n top: 3px;\r\n padding: 0 3px;\r\n cursor: pointer\r\n }\r\n\r\n .w-tip .f-i-close {\r\n font-size: 12px;\r\n color: #999\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #2498ff\r\n }\r\n\r\n .w-tip.w-dialog.z-face-warn {\r\n border: 1px solid #f3e041;\r\n background: #faf0cd;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #f3e041\r\n }\r\n\r\n .w-tip-body {\r\n min-height: 32px;\r\n }\r\n\r\n .w-tip-text {\r\n padding: 0 10px;\r\n }\r\n</style>\n","import script from \"./Tip.vue?vue&type=script&lang=js\"\nexport * from \"./Tip.vue?vue&type=script&lang=js\"\n\nimport \"./Tip.vue?vue&type=style&index=0&id=129e762e&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n import Dialog from './Dialog.vue'\r\n import Calendar from './Calendar.vue'\r\n\r\n export default {\r\n name: 'w-datepicker',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['showButton', 'multiple', 'format', 'autoFix', 'compare', 'minValue', 'maxValue', 'dropClass', 'enableHour', 'enableMinute', 'enableSecond',\r\n 'defaultHour', 'defaultMinute', 'defaultSecond' ],\r\n data() {\r\n return {\r\n showDrop: false,\r\n currentDate: null,\r\n focusValue: null,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n format: 'yyyy-MM-dd',\r\n autoFix: true,\r\n showButton: true,\r\n inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 180\r\n }\r\n },\r\n isUsableVal(v) {\r\n if (!$.dateValid(v, this.x.format)) return false\r\n let eh = this.x.enableHour && $.arrayNumber(this.x.enableHour)\r\n let em = this.x.enableMinute && $.arrayNumber(this.x.enableMinute)\r\n let es = this.x.enableSecond && $.arrayNumber(this.x.enableSecond)\r\n if (eh || em || es) {\r\n let d = $.dateParse(v, this.x.format)\r\n if ((eh && !eh.includes(d.getHours())) || (em && !em.includes(d.getMinutes())) || (es && !es.includes(d.getSeconds()))) return false\r\n }\r\n return true\r\n },\r\n onfocus(e) {\r\n this.focusValue = this.x.modelValue\r\n this.baseFocus(e)\r\n },\r\n onkeyup() {\r\n this.showDrop = true\r\n },\r\n onclose() {\r\n this.showDrop = false\r\n this.currentDate = null\r\n this.doAutoFix()\r\n },\r\n doAutoFix() {\r\n let v = this.x.modelValue\r\n if (v) {\r\n if (!this.isUsableVal(v)) {\r\n this.x.autoFix && this.val(this.focusValue)\r\n } else {\r\n let re = /\\b(\\d)\\b/g\r\n if (re.test(v)) {\r\n this.val(v.replace(re, '0$1'))\r\n }\r\n }\r\n }\r\n },\r\n drop() {\r\n if ($.br.mobile) {\r\n $.dateSheet({\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n success: this.calendarCallback,\r\n })\r\n } else {\r\n this.showDrop = true\r\n }\r\n },\r\n calendarCallback(val) {\r\n this.val(val)\r\n this.showDrop = false\r\n this.currentDate = null\r\n if (!$.br.mobile)\r\n this.focus()\r\n },\r\n getPeriod() {\r\n let minValue = this.x.minValue\r\n let maxValue = this.x.maxValue\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n if (p) {\r\n if (p[0] == this) {\r\n let end = p[1].formVal()\r\n if (end != null && (maxValue == null || maxValue > end)) maxValue = end\r\n } else if (p[1] == this) {\r\n let begin = p[0].formVal()\r\n if (begin != null && (minValue == null || minValue < begin)) minValue = begin\r\n }\r\n }\r\n return {\r\n minValue,\r\n maxValue\r\n }\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let f = this.x.format\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.dateValid(v, f) && $.dateValid(tv, f)) {\r\n let d = $.dateParse(v, f)\r\n let td = $.dateParse(tv, f)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n html_button() {\r\n let r = []\r\n let f = this.x.format || ''\r\n let timeCols = 0\r\n if (f.includes('H')) timeCols ++\r\n if (f.includes('m')) timeCols ++\r\n if (f.includes('s')) timeCols ++\r\n let onlyTime = /[Hms]/.test(f) && !/[yMd]/.test(f)\r\n \r\n if (this.x.showButton) r.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-date',\r\n disabled: this.x.disabled,\r\n }))\r\n if (this.showDrop) {\r\n r.push(h(Dialog, {\r\n ownproperty: true,\r\n class: ['f-dfish-dialog w-calendar-dialog', this.dropClass, {'z-hastime': timeCols, 'z-onlytime': onlyTime}],\r\n style: {'--w-datepicker-time-cols': (timeCols || '')},\r\n context: this,\r\n autoHide: true,\r\n snap: {\r\n target: () => this.snapElem(),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: this.onclose\r\n }, {\r\n default: () => h(Calendar, {\r\n height: '*',\r\n pad: true,\r\n current: this.currentDate || this.x.modelValue || '',\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n enableHour: this.x.enableHour,\r\n enableMinute: this.x.enableMinute,\r\n enableSecond: this.x.enableSecond,\r\n defaultHour: this.x.defaultHour,\r\n defaultMinute: this.x.defaultMinute,\r\n defaultSecond: this.x.defaultSecond,\r\n success: this.calendarCallback,\r\n 'onClick:item': (e, item) => {this.currentDate = item.value},\r\n })\r\n }))\r\n }\r\n return r\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) < $.dateParse(r, this.x.format))\r\n return this.formErr(q)\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) > $.dateParse(r, this.x.format))\r\n return this.formErr(q)\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v, r, q) => {\r\n if (this.x.multiple)\r\n return;\r\n if (v) {\r\n let c = v\r\n let d = $.dateParse(c, this.x.format)\r\n let y = d.getFullYear()\r\n let m = 9999\r\n let n = 1000\r\n if (y > m || y < n)\r\n return this.formErr({type: 'time_exceed'}, [n, m])\r\n if (c != $.dateFormat(d, this.x.format)) {\r\n return this.formErr({type: 'time_format'}, [$.dateFormat(new Date, this.x.format)]);\r\n }\r\n }\r\n if (this.defaultRuleValue('beforeNow') && v && v > $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'beforeNow'}, [this.x.beforeNow])\r\n if (this.defaultRuleValue('afterNow') && v && v < $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'afterNow'}, [this.x.afterNow])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({type: 'compare'}, e)\r\n }\r\n }\r\n },\r\n input_prop() {\r\n return $.br.mobile ? {\r\n readonly: true,\r\n } : {\r\n onfocus: this.onfocus,\r\n onkeyup: this.onkeyup,\r\n }\r\n },\r\n main_prop() {\r\n return {\r\n onclick: this.isNormal && this.drop,\r\n }\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./DatePicker.vue?vue&type=script&lang=js\"\nexport * from \"./DatePicker.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Text from './Text.vue'\r\n \r\n export default {\r\n name: 'w-textarea',\r\n mixins: [Text],\r\n computed: {\r\n input_tag() {\r\n return 'textarea'\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Textarea.vue?vue&type=script&lang=js\"\nexport * from \"./Textarea.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Rate.vue?vue&type=style&index=0&id=54536848&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n const onScroll = function(e) {\r\n if (this.wScrollPercentX) {\r\n let left = e.target.scrollLeft\r\n this.scrollXPosition = left == 0 ? 'left' : left >= this.wScrollSizeX ? 'right' : 'center'\r\n this.$refs.wScrollBarThumbX.style.transform = `translateX(${left/this.wScrollPercentX}px)`\r\n }\r\n if (this.wScrollPercentY) {\r\n let top = e.target.scrollTop\r\n this.scrollYPosition = top == 0 ? 'top' : top >= this.wScrollSizeY ? 'bottom' : 'middle'\r\n this.$refs.wScrollBarThumbY.style.transform = `translateY(${top/this.wScrollPercentY}px)`\r\n }\r\n this.onScroll(e)\r\n }\r\n\r\n const onMousedown = function(dnEv) {\r\n let dir, dnX, dnY, scrLeft, scrTop;\r\n let ov = this.$refs.wScrollOverflow\r\n let x = this.wScrollPercentX\r\n let y = this.wScrollPercentY\r\n $.moveup((mvEv) => {\r\n if (!dir) {\r\n dir = this.$refs.wScrollBarThumbX === dnEv.target ? 'X' : 'Y'\r\n dnX = dnEv.clientX\r\n dnY = dnEv.clientY\r\n scrLeft = ov.scrollLeft\r\n scrTop = ov.scrollTop\r\n dnEv.target.parentNode.classList.add('z-drag')\r\n }\r\n if (dir === 'X') {\r\n ov.scrollLeft = scrLeft + ((mvEv.clientX - dnX) * x)\r\n } else {\r\n ov.scrollTop = scrTop + ((mvEv.clientY - dnY) * y)\r\n }\r\n }, (upEv, moved) => {\r\n if (moved)\r\n dnEv.target.parentNode.classList.remove('z-drag')\r\n }, dnEv)\r\n }\r\n\r\n export default {\r\n mixins: [WidgetBase],\r\n props: ['scrollX', 'scrollY', 'scrollView', 'scrollFlex'],\r\n data() {\r\n return {\r\n wScrollPercentX: false,\r\n wScrollPercentY: false,\r\n wScrollSizeX: false,\r\n wScrollSizeY: false,\r\n scrollXPosition: 'left',\r\n scrollYPosition: 'top',\r\n isDeactivated: false,\r\n }\r\n },\r\n watch: {\r\n scrollXPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n scrollYPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n wScrollPercentX(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-x', '') : el.removeAttribute('w-scroll-show-x')\r\n }\r\n },\r\n wScrollPercentY(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-y', '') : el.removeAttribute('w-scroll-show-y')\r\n }\r\n }\r\n },\r\n methods: {\r\n onScroll(e) {\r\n //implement\r\n },\r\n onScrollPosition() {\r\n //implement\r\n },\r\n onScrollAttributeChange(e) {\r\n //implement\r\n },\r\n // 让元素滚动到可见区域。支持下面两种调用方式 /e -> el|wg, y -> (top,bottom,middle,auto,top+n,bottom+n,n), x -> (left,right,center,auto), p -> ease?, q -> divide(整除数字,让滚动的距离是这个数字的整数倍), r -> callback\r\n scrollTo(e, y, x, p, q, r) {\r\n let a = this.ovf()\r\n if (!a) return r && r()\r\n let b = this.$refs.wScrollCont || a\r\n let c = $.bcr(a)\r\n let d = $.bcr(b)\r\n let f = e ? $.bcr(e) : d\r\n let t, l\r\n if (y != null || e) {\r\n if (y == null || !isNaN(y)) {\r\n t = $.number(y)\r\n if (e) t = f.top - d.top - t\r\n } else if (~y.indexOf('top')) {\r\n t = f.top - d.top - (+y.slice(3))\r\n } else if (~y.indexOf('bottom')) {\r\n t = f.bottom - d.top - c.height + (+y.slice(6))\r\n } else if (y === 'middle') {\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n } else if (y === 'nearest') {\r\n if (f.top < c.top)\r\n t = a.scrollTop - c.top + f.top\r\n else if (f.bottom > c.bottom)\r\n t = a.scrollTop + f.bottom - c.bottom\r\n } else {\r\n if (f.top < c.top || f.bottom > c.bottom)\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n }\r\n }\r\n if (x != null || e) {\r\n if (x == null || !isNaN(x)) {\r\n l = $.number(x)\r\n if (e) l = f.left - d.left - l\r\n } else if (~x.indexOf('left')) {\r\n l = f.left - d.left - (+x.slice(4))\r\n } else if (~x.indexOf('right')) {\r\n l = f.right - d.left - c.width + (+x.slice(5))\r\n } else if (x === 'center') {\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n } else if (x === 'nearest') {\r\n if (f.left < c.left)\r\n l = a.scrollLeft - c.left + f.left\r\n else if (f.right > c.right)\r\n l = a.scrollLeft + f.right - c.right\r\n } else {\r\n if (f.left < c.left || f.right > c.right)\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n }\r\n }\r\n if (q != null) {\r\n t != null && (t = t - (t % q))\r\n l != null && (l = l - (l % q))\r\n }\r\n if (p && (t != null || l != null)) {\r\n let g = a.scrollTop\r\n let h = a.scrollLeft\r\n $.ease((i) => {\r\n if (t != null) a.scrollTop = g + (t - g) * i\r\n if (l != null) a.scrollLeft = h + (l - h) * i\r\n i === 1 && r && r()\r\n }, p)\r\n } else {\r\n if (t != null) a.scrollTop = t\r\n if (l != null) a.scrollLeft = l\r\n r && r()\r\n }\r\n },\r\n //@public /@ e -> el, y -> (top,bottom,middle), p -> ease?, q -> divide, r -> callback\r\n scrollToY(e, y, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollTop\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = y, y = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, y, null, p, q, r)\r\n },\r\n //@public /@ e -> el, x -> (left,right,center), p -> ease?, q -> divide, r -> callback\r\n scrollToX(e, x, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollLeft\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = x, x = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, null, x, p, q, r)\r\n },\r\n ovf() {\r\n return $.br.mobile ? this.el() : this.$refs.wScrollOverflow || this.$refs.wScrollCont\r\n },\r\n html_scroll_slots(s) {\r\n return this.x.scrollX || this.x.scrollY ? [h('div', {\r\n ref: \"wScrollOverflow\",\r\n class: \"w-scroll-overflow\",\r\n onscroll: onScroll.bind(this),\r\n onmouseenter: this.initScroll\r\n }, h('div', {\r\n class: 'w-scroll-cont',\r\n style: this.html_scroll_cont_style,\r\n ref: \"wScrollCont\"\r\n }, s || (this.$slots.default && this.$slots.default()))),\r\n !$.br.mobile && this.x.scrollX && [h('div', {\r\n class: \"w-scrollbar-x\",\r\n ref: \"wScrollBarX\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbX\"\r\n }))],\r\n !$.br.mobile && this.x.scrollY && [h('div', {\r\n class: \"w-scrollbar-y\",\r\n ref: \"wScrollBarY\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbY\"\r\n }))]\r\n ] : (s || (this.$slots.default && this.$slots.default()))\r\n\r\n },\r\n scrollState() {\r\n if ($.br.mobile || !this.$refs.wScrollCont || !this.el()) return\r\n const flow = this.$refs.wScrollOverflow.getBoundingClientRect()\r\n const cont = this.$refs.wScrollCont.getBoundingClientRect()\r\n let x, y;\r\n if (this.x.scrollX) {\r\n let size = cont.width > flow.width && cont.width - flow.width\r\n if (size && size <= 1) size = false //@fixme 横向滚动时,width:fit-content的设置会让有小数点的宽度变成整数。目前先加一个像素容错\r\n if (size) {\r\n x = {\r\n size,\r\n percent: flow.width / cont.width\r\n }\r\n }\r\n }\r\n if (this.x.scrollY) {\r\n let size = cont.height > flow.height && cont.height - flow.height\r\n if (size) {\r\n y = {\r\n size,\r\n percent: flow.height / cont.height\r\n }\r\n }\r\n }\r\n return {x, y}\r\n },\r\n initScroll() {\r\n const state = this.scrollState()\r\n if (!state) return\r\n const wrap = this.el().getBoundingClientRect()\r\n const {x, y} = state\r\n if (x) {\r\n let thbX = x.percent * wrap.width\r\n this.$refs.wScrollBarThumbX.style.width = Math.max(20, thbX) + 'px'\r\n this.wScrollSizeX = x.size\r\n this.wScrollPercentX = x.size && (x.size / ((1 - x.percent) * (wrap.width - (thbX < 20 ? 20 - thbX : 0))))\r\n } else {\r\n this.wScrollSizeX = this.wScrollPercentX = false\r\n }\r\n if (y) {\r\n let thbY = y.percent * wrap.height\r\n this.$refs.wScrollBarThumbY.style.height = Math.max(20, thbY) + 'px'\r\n this.wScrollSizeY = y.size\r\n this.wScrollPercentY = y.size && (y.size / ((1 - y.percent) * (wrap.height - (thbY < 20 ? 20 - thbY : 0))))\r\n } else {\r\n this.wScrollSizeY = this.wScrollPercentY = false\r\n }\r\n },\r\n scroll_observe() {\r\n if (this.isDeactivated) return\r\n this.initScroll()\r\n this.$refs.wScrollOverflow && this.$refs.wScrollOverflow.dispatchEvent(new Event('scroll'))\r\n }\r\n },\r\n computed: {\r\n html_scroll_cont_style() {\r\n // implement\r\n },\r\n html_scroll_class() {\r\n let sx = this.x.scrollX\r\n let sy = this.x.scrollY\r\n return {\r\n 'w-scroll': sx || sy,\r\n 'w-scroll-x': sx,\r\n 'w-scroll-y': sy,\r\n 'w-scroll-flex': this.x.scrollFlex,\r\n }\r\n },\r\n\r\n },\r\n mounted() {\r\n if (this.x.scrollView && this.el()) {\r\n setTimeout(() => {\r\n let el = this.el().querySelector(this.x.scrollView)\r\n el && this.scrollToY(el, 'middle')\r\n })\r\n }\r\n //在PC端生成滚动条。移动端不生成\r\n if ($.br.mobile || !(this.x.scrollX || this.x.scrollY)) return\r\n this.$refs.wScrollOverflow && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollOverflow)\r\n this.$refs.wScrollCont && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollCont)\r\n this.el() && new MutationObserver(this.onScrollAttributeChange).observe(this.el(), {attributes: true})\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n //router切回来时,让滚动条滚动到切出去之前的位置\r\n if (this.x.scrollY && this.$refs.wScrollBarThumbY) {\r\n this.scrollToY($.number(this.$refs.wScrollBarThumbY.style.transform) * this.wScrollPercentY)\r\n }\r\n if (this.x.scrollX && this.$refs.wScrollBarThumbX) {\r\n this.scrollToX($.number(this.$refs.wScrollBarThumbX.style.transform) * this.wScrollPercentX)\r\n }\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-scroll {\r\n position: relative;\r\n display: flex;\r\n }\r\n\r\n .w-scroll-overflow {\r\n flex: 1;\r\n box-sizing: border-box;\r\n scrollbar-width: none;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow {\r\n overflow-x: auto;\r\n }\r\n\r\n .w-scroll-y>.w-scroll-overflow {\r\n overflow-y: auto;\r\n }\r\n\r\n .w-scroll-flex>.w-scroll-overflow {\r\n display: flex;\r\n }\r\n\r\n .w-scroll-cont {\r\n min-width: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow>.w-scroll-cont {\r\n width: fit-content;\r\n }\r\n\r\n .w-scroll-overflow::-webkit-scrollbar {\r\n width: 0;\r\n height: 0;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n background-color: rgba(200, 200, 200, .9);\r\n }\r\n\r\n .w-scrollbar-thumb:hover {\r\n background-color: rgba(180, 180, 180, 1);\r\n }\r\n\r\n .w-scroll-x:hover>.w-scrollbar-x,\r\n .w-scroll-x.z-hv>.w-scrollbar-x,\r\n .w-scroll-y:hover>.w-scrollbar-y,\r\n .w-scroll-y.z-hv>.w-scrollbar-y,\r\n .w-scrollbar-x.z-drag,\r\n .w-scrollbar-y.z-drag {\r\n visibility: visible;\r\n }\r\n\r\n .w-scroll[w-scroll-show-x]>.w-scrollbar-x,\r\n .w-scroll[w-scroll-show-y]>.w-scrollbar-y {\r\n display: block;\r\n }\r\n\r\n .w-scrollbar-x {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n height: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-y {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n position: absolute;\r\n transition-property: top, left;\r\n transition-duration: .1s;\r\n }\r\n\r\n .w-scrollbar-x>.w-scrollbar-thumb {\r\n top: 4px;\r\n bottom: 0;\r\n min-width: 20px;\r\n }\r\n\r\n\r\n .w-scrollbar-y>.w-scrollbar-thumb {\r\n left: 4px;\r\n right: 0;\r\n min-height: 20px;\r\n }\r\n\r\n .w-scrollbar-x:hover>.w-scrollbar-thumb {\r\n top: 0;\r\n }\r\n\r\n .w-scrollbar-y:hover>.w-scrollbar-thumb {\r\n left: 0;\r\n }\r\n</style>\n","import script from \"./Scroll.vue?vue&type=script&lang=js\"\nexport * from \"./Scroll.vue?vue&type=script&lang=js\"\n\nimport \"./Scroll.vue?vue&type=style&index=0&id=54b981aa&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LinkBox.vue?vue&type=style&index=0&id=d62f9532&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Range.vue?vue&type=style&index=0&id=8a31b61c&lang=css\"","import {strFrom} from './str.js'\r\n\r\nconst mimes = {\r\n \".323\": \"text/h323\",\r\n \".3gp\": \"video/3gpp\",\r\n \".aab\": \"application/x-authoware-bin\",\r\n \".aam\": \"application/x-authoware-map\",\r\n \".aas\": \"application/x-authoware-seg\",\r\n \".acx\": \"application/internet-property-stream\",\r\n \".ai\": \"application/postscript\",\r\n \".aif\": \"audio/x-aiff\",\r\n \".aifc\": \"audio/x-aiff\",\r\n \".aiff\": \"audio/x-aiff\",\r\n \".als\": \"audio/X-Alpha5\",\r\n \".amc\": \"application/x-mpeg\",\r\n \".apk\": \"application/vnd.android.package-archive\",\r\n \".asc\": \"text/plain\",\r\n \".asd\": \"application/astound\",\r\n \".asf\": \"video/x-ms-asf\",\r\n \".asn\": \"application/astound\",\r\n \".asp\": \"application/x-asap\",\r\n \".asr\": \"video/x-ms-asf\",\r\n \".asx\": \"video/x-ms-asf\",\r\n \".au\": \"audio/basic\",\r\n \".avi\": \"video/x-msvideo\",\r\n \".awb\": \"audio/amr-wb\",\r\n \".axs\": \"application/olescript\",\r\n \".bas\": \"text/plain\",\r\n \".bcpio\": \"application/x-bcpio\",\r\n \".bld\": \"application/bld\",\r\n \".bld2\": \"application/bld2\",\r\n \".bmp\": \"image/bmp\",\r\n \".bz2\": \"application/x-bzip2\",\r\n \".c\": \"text/plain\",\r\n \".cal\": \"image/x-cals\",\r\n \".cat\": \"application/vnd.ms-pkiseccat\",\r\n \".ccn\": \"application/x-cnc\",\r\n \".cco\": \"application/x-cocoa\",\r\n \".cdf\": \"application/x-cdf\",\r\n \".cer\": \"application/x-x509-ca-cert\",\r\n \".cgi\": \"magnus-internal/cgi\",\r\n \".chat\": \"application/x-chat\",\r\n \".clp\": \"application/x-msclip\",\r\n \".cmx\": \"image/x-cmx\",\r\n \".co\": \"application/x-cult3d-object\",\r\n \".cod\": \"image/cis-cod\",\r\n \".conf\": \"text/plain\",\r\n \".cpio\": \"application/x-cpio\",\r\n \".cpp\": \"text/plain\",\r\n \".cpt\": \"application/mac-compactpro\",\r\n \".crd\": \"application/x-mscardfile\",\r\n \".crl\": \"application/pkix-crl\",\r\n \".crt\": \"application/x-x509-ca-cert\",\r\n \".csh\": \"application/x-csh\",\r\n \".csm\": \"chemical/x-csml\",\r\n \".csml\": \"chemical/x-csml\",\r\n \".css\": \"text/css\",\r\n \".dcm\": \"x-lml/x-evm\",\r\n \".dcr\": \"application/x-director\",\r\n \".dcx\": \"image/x-dcx\",\r\n \".der\": \"application/x-x509-ca-cert\",\r\n \".dhtml\": \"text/html\",\r\n \".dir\": \"application/x-director\",\r\n \".dll\": \"application/x-msdownload\",\r\n \".doc\": \"application/msword\",\r\n \".docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n \".dot\": \"application/msword\",\r\n \".dvi\": \"application/x-dvi\",\r\n \".dwf\": \"drawing/x-dwf\",\r\n \".dwg\": \"application/x-autocad\",\r\n \".dxf\": \"application/x-autocad\",\r\n \".dxr\": \"application/x-director\",\r\n \".ebk\": \"application/x-expandedbook\",\r\n \".emb\": \"chemical/x-embl-dl-nucleotide\",\r\n \".embl\": \"chemical/x-embl-dl-nucleotide\",\r\n \".eps\": \"application/postscript\",\r\n \".epub\": \"application/epub+zip\",\r\n \".eri\": \"image/x-eri\",\r\n \".es\": \"audio/echospeech\",\r\n \".esl\": \"audio/echospeech\",\r\n \".etc\": \"application/x-earthtime\",\r\n \".etx\": \"text/x-setext\",\r\n \".evm\": \"x-lml/x-evm\",\r\n \".evy\": \"application/envoy\",\r\n \".fh4\": \"image/x-freehand\",\r\n \".fh5\": \"image/x-freehand\",\r\n \".fhc\": \"image/x-freehand\",\r\n \".fif\": \"application/fractals\",\r\n \".flr\": \"x-world/x-vrml\",\r\n \".flv\": \"flv-application/octet-stream\",\r\n \".fm\": \"application/x-maker\",\r\n \".fpx\": \"image/x-fpx\",\r\n \".fvi\": \"video/isivideo\",\r\n \".gau\": \"chemical/x-gaussian-input\",\r\n \".gca\": \"application/x-gca-compressed\",\r\n \".gdb\": \"x-lml/x-gdb\",\r\n \".gif\": \"image/gif\",\r\n \".gps\": \"application/x-gps\",\r\n \".gtar\": \"application/x-gtar\",\r\n \".gz\": \"application/x-gzip\",\r\n \".h\": \"text/plain\",\r\n \".hdf\": \"application/x-hdf\",\r\n \".hdm\": \"text/x-hdml\",\r\n \".hdml\": \"text/x-hdml\",\r\n \".hlp\": \"application/winhlp\",\r\n \".hqx\": \"application/mac-binhex40\",\r\n \".hta\": \"application/hta\",\r\n \".htc\": \"text/x-component\",\r\n \".htm\": \"text/html\",\r\n \".html\": \"text/html\",\r\n \".hts\": \"text/html\",\r\n \".htt\": \"text/webviewhtml\",\r\n \".ice\": \"x-conference/x-cooltalk\",\r\n \".ico\": \"image/x-icon\",\r\n \".ief\": \"image/ief\",\r\n \".ifm\": \"image/gif\",\r\n \".ifs\": \"image/ifs\",\r\n \".iii\": \"application/x-iphone\",\r\n \".imy\": \"audio/melody\",\r\n \".ins\": \"application/x-internet-signup\",\r\n \".ips\": \"application/x-ipscript\",\r\n \".ipx\": \"application/x-ipix\",\r\n \".isp\": \"application/x-internet-signup\",\r\n \".it\": \"audio/x-mod\",\r\n \".itz\": \"audio/x-mod\",\r\n \".ivr\": \"i-world/i-vrml\",\r\n \".j2k\": \"image/j2k\",\r\n \".jad\": \"text/vnd.sun.j2me.app-descriptor\",\r\n \".jam\": \"application/x-jam\",\r\n \".jar\": \"application/java-archive\",\r\n \".java\": \"text/plain\",\r\n \".jfif\": \"image/pipeg\",\r\n \".jnlp\": \"application/x-java-jnlp-file\",\r\n \".jpe\": \"image/jpeg\",\r\n \".jpeg\": \"image/jpeg\",\r\n \".jpg\": \"image/jpeg\",\r\n \".jpz\": \"image/jpeg\",\r\n \".js\": \"application/x-javascript\",\r\n \".jwc\": \"application/jwc\",\r\n \".kjx\": \"application/x-kjx\",\r\n \".lak\": \"x-lml/x-lak\",\r\n \".latex\": \"application/x-latex\",\r\n \".lcc\": \"application/fastman\",\r\n \".lcl\": \"application/x-digitalloca\",\r\n \".lcr\": \"application/x-digitalloca\",\r\n \".lgh\": \"application/lgh\",\r\n \".lml\": \"x-lml/x-lml\",\r\n \".lmlpack\": \"x-lml/x-lmlpack\",\r\n \".log\": \"text/plain\",\r\n \".lsf\": \"video/x-la-asf\",\r\n \".lsx\": \"video/x-la-asf\",\r\n \".m13\": \"application/x-msmediaview\",\r\n \".m14\": \"application/x-msmediaview\",\r\n \".m15\": \"audio/x-mod\",\r\n \".m3u\": \"audio/x-mpegurl\",\r\n \".m3url\": \"audio/x-mpegurl\",\r\n \".m4a\": \"audio/mp4a-latm\",\r\n \".m4b\": \"audio/mp4a-latm\",\r\n \".m4p\": \"audio/mp4a-latm\",\r\n \".m4u\": \"video/vnd.mpegurl\",\r\n \".m4v\": \"video/x-m4v\",\r\n \".ma1\": \"audio/ma1\",\r\n \".ma2\": \"audio/ma2\",\r\n \".ma3\": \"audio/ma3\",\r\n \".ma5\": \"audio/ma5\",\r\n \".man\": \"application/x-troff-man\",\r\n \".map\": \"magnus-internal/imagemap\",\r\n \".mbd\": \"application/mbedlet\",\r\n \".mct\": \"application/x-mascot\",\r\n \".mdb\": \"application/x-msaccess\",\r\n \".mdz\": \"audio/x-mod\",\r\n \".me\": \"application/x-troff-me\",\r\n \".mel\": \"text/x-vmel\",\r\n \".mht\": \"message/rfc822\",\r\n \".mhtml\": \"message/rfc822\",\r\n \".mi\": \"application/x-mif\",\r\n \".mid\": \"audio/mid\",\r\n \".midi\": \"audio/midi\",\r\n \".mif\": \"application/x-mif\",\r\n \".mil\": \"image/x-cals\",\r\n \".mio\": \"audio/x-mio\",\r\n \".mmf\": \"application/x-skt-lbs\",\r\n \".mng\": \"video/x-mng\",\r\n \".mny\": \"application/x-msmoney\",\r\n \".moc\": \"application/x-mocha\",\r\n \".mocha\": \"application/x-mocha\",\r\n \".mod\": \"audio/x-mod\",\r\n \".mof\": \"application/x-yumekara\",\r\n \".mol\": \"chemical/x-mdl-molfile\",\r\n \".mop\": \"chemical/x-mopac-input\",\r\n \".mov\": \"video/quicktime\",\r\n \".movie\": \"video/x-sgi-movie\",\r\n \".mp2\": \"video/mpeg\",\r\n \".mp3\": \"audio/mpeg\",\r\n \".mp4\": \"video/mp4\",\r\n \".mpa\": \"video/mpeg\",\r\n \".mpc\": \"application/vnd.mpohun.certificate\",\r\n \".mpe\": \"video/mpeg\",\r\n \".mpeg\": \"video/mpeg\",\r\n \".mpg\": \"video/mpeg\",\r\n \".mpg4\": \"video/mp4\",\r\n \".mpga\": \"audio/mpeg\",\r\n \".mpn\": \"application/vnd.mophun.application\",\r\n \".mpp\": \"application/vnd.ms-project\",\r\n \".mps\": \"application/x-mapserver\",\r\n \".mpv2\": \"video/mpeg\",\r\n \".mrl\": \"text/x-mrml\",\r\n \".mrm\": \"application/x-mrm\",\r\n \".ms\": \"application/x-troff-ms\",\r\n \".msg\": \"application/vnd.ms-outlook\",\r\n \".mts\": \"application/metastream\",\r\n \".mtx\": \"application/metastream\",\r\n \".mtz\": \"application/metastream\",\r\n \".mvb\": \"application/x-msmediaview\",\r\n \".mzv\": \"application/metastream\",\r\n \".nar\": \"application/zip\",\r\n \".nbmp\": \"image/nbmp\",\r\n \".nc\": \"application/x-netcdf\",\r\n \".ndb\": \"x-lml/x-ndb\",\r\n \".ndwn\": \"application/ndwn\",\r\n \".nif\": \"application/x-nif\",\r\n \".nmz\": \"application/x-scream\",\r\n \".nokia-op-logo\": \"image/vnd.nok-oplogo-color\",\r\n \".npx\": \"application/x-netfpx\",\r\n \".nsnd\": \"audio/nsnd\",\r\n \".nva\": \"application/x-neva1\",\r\n \".nws\": \"message/rfc822\",\r\n \".oda\": \"application/oda\",\r\n \".ogg\": \"audio/ogg\",\r\n \".oom\": \"application/x-AtlasMate-Plugin\",\r\n \".p10\": \"application/pkcs10\",\r\n \".p12\": \"application/x-pkcs12\",\r\n \".p7b\": \"application/x-pkcs7-certificates\",\r\n \".p7c\": \"application/x-pkcs7-mime\",\r\n \".p7m\": \"application/x-pkcs7-mime\",\r\n \".p7r\": \"application/x-pkcs7-certreqresp\",\r\n \".p7s\": \"application/x-pkcs7-signature\",\r\n \".pac\": \"audio/x-pac\",\r\n \".pae\": \"audio/x-epac\",\r\n \".pan\": \"application/x-pan\",\r\n \".pbm\": \"image/x-portable-bitmap\",\r\n \".pcx\": \"image/x-pcx\",\r\n \".pda\": \"image/x-pda\",\r\n \".pdb\": \"chemical/x-pdb\",\r\n \".pdf\": \"application/pdf\",\r\n \".pfr\": \"application/font-tdpfr\",\r\n \".pfx\": \"application/x-pkcs12\",\r\n \".pgm\": \"image/x-portable-graymap\",\r\n \".pict\": \"image/x-pict\",\r\n \".pko\": \"application/ynd.ms-pkipko\",\r\n \".pm\": \"application/x-perl\",\r\n \".pma\": \"application/x-perfmon\",\r\n \".pmc\": \"application/x-perfmon\",\r\n \".pmd\": \"application/x-pmd\",\r\n \".pml\": \"application/x-perfmon\",\r\n \".pmr\": \"application/x-perfmon\",\r\n \".pmw\": \"application/x-perfmon\",\r\n \".png\": \"image/png\",\r\n \".pnm\": \"image/x-portable-anymap\",\r\n \".pnz\": \"image/png\",\r\n \".pot\": \"application/vnd.ms-powerpoint\",\r\n \".ppm\": \"image/x-portable-pixmap\",\r\n \".pps\": \"application/vnd.ms-powerpoint\",\r\n \".ppt\": \"application/vnd.ms-powerpoint\",\r\n \".pptx\": \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n \".pqf\": \"application/x-cprplayer\",\r\n \".pqi\": \"application/cprplayer\",\r\n \".prc\": \"application/x-prc\",\r\n \".prf\": \"application/pics-rules\",\r\n \".prop\": \"text/plain\",\r\n \".proxy\": \"application/x-ns-proxy-autoconfig\",\r\n \".ps\": \"application/postscript\",\r\n \".ptlk\": \"application/listenup\",\r\n \".pub\": \"application/x-mspublisher\",\r\n \".pvx\": \"video/x-pv-pvx\",\r\n \".qcp\": \"audio/vnd.qcelp\",\r\n \".qt\": \"video/quicktime\",\r\n \".qti\": \"image/x-quicktime\",\r\n \".qtif\": \"image/x-quicktime\",\r\n \".r3t\": \"text/vnd.rn-realtext3d\",\r\n \".ra\": \"audio/x-pn-realaudio\",\r\n \".ram\": \"audio/x-pn-realaudio\",\r\n \".ras\": \"image/x-cmu-raster\",\r\n \".rc\": \"text/plain\",\r\n \".rdf\": \"application/rdf+xml\",\r\n \".rf\": \"image/vnd.rn-realflash\",\r\n \".rgb\": \"image/x-rgb\",\r\n \".rlf\": \"application/x-richlink\",\r\n \".rm\": \"audio/x-pn-realaudio\",\r\n \".rmf\": \"audio/x-rmf\",\r\n \".rmi\": \"audio/mid\",\r\n \".rmm\": \"audio/x-pn-realaudio\",\r\n \".rmvb\": \"audio/x-pn-realaudio\",\r\n \".rnx\": \"application/vnd.rn-realplayer\",\r\n \".roff\": \"application/x-troff\",\r\n \".rp\": \"image/vnd.rn-realpix\",\r\n \".rpm\": \"audio/x-pn-realaudio-plugin\",\r\n \".rt\": \"text/vnd.rn-realtext\",\r\n \".rte\": \"x-lml/x-gps\",\r\n \".rtf\": \"application/rtf\",\r\n \".rtg\": \"application/metastream\",\r\n \".rtx\": \"text/richtext\",\r\n \".rv\": \"video/vnd.rn-realvideo\",\r\n \".rwc\": \"application/x-rogerwilco\",\r\n \".s3m\": \"audio/x-mod\",\r\n \".s3z\": \"audio/x-mod\",\r\n \".sca\": \"application/x-supercard\",\r\n \".scd\": \"application/x-msschedule\",\r\n \".sct\": \"text/scriptlet\",\r\n \".sdf\": \"application/e-score\",\r\n \".sea\": \"application/x-stuffit\",\r\n \".setpay\": \"application/set-payment-initiation\",\r\n \".setreg\": \"application/set-registration-initiation\",\r\n \".sgm\": \"text/x-sgml\",\r\n \".sgml\": \"text/x-sgml\",\r\n \".sh\": \"application/x-sh\",\r\n \".shar\": \"application/x-shar\",\r\n \".shtml\": \"magnus-internal/parsed-html\",\r\n \".shw\": \"application/presentations\",\r\n \".si6\": \"image/si6\",\r\n \".si7\": \"image/vnd.stiwap.sis\",\r\n \".si9\": \"image/vnd.lgtwap.sis\",\r\n \".sis\": \"application/vnd.symbian.install\",\r\n \".sit\": \"application/x-stuffit\",\r\n \".skd\": \"application/x-Koan\",\r\n \".skm\": \"application/x-Koan\",\r\n \".skp\": \"application/x-Koan\",\r\n \".skt\": \"application/x-Koan\",\r\n \".slc\": \"application/x-salsa\",\r\n \".smd\": \"audio/x-smd\",\r\n \".smi\": \"application/smil\",\r\n \".smil\": \"application/smil\",\r\n \".smp\": \"application/studiom\",\r\n \".smz\": \"audio/x-smd\",\r\n \".snd\": \"audio/basic\",\r\n \".spc\": \"application/x-pkcs7-certificates\",\r\n \".spl\": \"application/futuresplash\",\r\n \".spr\": \"application/x-sprite\",\r\n \".sprite\": \"application/x-sprite\",\r\n \".sdp\": \"application/sdp\",\r\n \".spt\": \"application/x-spt\",\r\n \".src\": \"application/x-wais-source\",\r\n \".sst\": \"application/vnd.ms-pkicertstore\",\r\n \".stk\": \"application/hyperstudio\",\r\n \".stl\": \"application/vnd.ms-pkistl\",\r\n \".stm\": \"text/html\",\r\n \".svg\": \"image/svg+xml\",\r\n \".sv4cpio\": \"application/x-sv4cpio\",\r\n \".sv4crc\": \"application/x-sv4crc\",\r\n \".svf\": \"image/vnd\",\r\n \".svh\": \"image/svh\",\r\n \".svr\": \"x-world/x-svr\",\r\n \".swf\": \"application/x-shockwave-flash\",\r\n \".swfl\": \"application/x-shockwave-flash\",\r\n \".t\": \"application/x-troff\",\r\n \".talk\": \"text/x-speech\",\r\n \".tar\": \"application/x-tar\",\r\n \".taz\": \"application/x-tar\",\r\n \".tbp\": \"application/x-timbuktu\",\r\n \".tbt\": \"application/x-timbuktu\",\r\n \".tcl\": \"application/x-tcl\",\r\n \".tex\": \"application/x-tex\",\r\n \".texi\": \"application/x-texinfo\",\r\n \".texinfo\": \"application/x-texinfo\",\r\n \".tgz\": \"application/x-compressed\",\r\n \".thm\": \"application/vnd.eri.thm\",\r\n \".tif\": \"image/tiff\",\r\n \".tiff\": \"image/tiff\",\r\n \".tki\": \"application/x-tkined\",\r\n \".tkined\": \"application/x-tkined\",\r\n \".toc\": \"application/toc\",\r\n \".toy\": \"image/toy\",\r\n \".tr\": \"application/x-troff\",\r\n \".trk\": \"x-lml/x-gps\",\r\n \".trm\": \"application/x-msterminal\",\r\n \".tsi\": \"audio/tsplayer\",\r\n \".tsp\": \"application/dsptype\",\r\n \".tsv\": \"text/tab-separated-values\",\r\n \".ttz\": \"application/t-time\",\r\n \".txt\": \"text/plain\",\r\n \".uls\": \"text/iuls\",\r\n \".ult\": \"audio/x-mod\",\r\n \".ustar\": \"application/x-ustar\",\r\n \".uu\": \"application/x-uuencode\",\r\n \".uue\": \"application/x-uuencode\",\r\n \".vcd\": \"application/x-cdlink\",\r\n \".vcf\": \"text/x-vcard\",\r\n \".vdo\": \"video/vdo\",\r\n \".vib\": \"audio/vib\",\r\n \".viv\": \"video/vivo\",\r\n \".vivo\": \"video/vivo\",\r\n \".vmd\": \"application/vocaltec-media-desc\",\r\n \".vmf\": \"application/vocaltec-media-file\",\r\n \".vmi\": \"application/x-dreamcast-vms-info\",\r\n \".vms\": \"application/x-dreamcast-vms\",\r\n \".vox\": \"audio/voxware\",\r\n \".vqe\": \"audio/x-twinvq-plugin\",\r\n \".vqf\": \"audio/x-twinvq\",\r\n \".vql\": \"audio/x-twinvq\",\r\n \".vre\": \"x-world/x-vream\",\r\n \".vrml\": \"x-world/x-vrml\",\r\n \".vrt\": \"x-world/x-vrt\",\r\n \".vrw\": \"x-world/x-vream\",\r\n \".vts\": \"workbook/formulaone\",\r\n \".wav\": \"audio/x-wav\",\r\n \".wax\": \"audio/x-ms-wax\",\r\n \".wbmp\": \"image/vnd.wap.wbmp\",\r\n \".wcm\": \"application/vnd.ms-works\",\r\n \".wdb\": \"application/vnd.ms-works\",\r\n \".web\": \"application/vnd.xara\",\r\n \".webm\": \"video/webm\",\r\n \".wi\": \"image/wavelet\",\r\n \".wis\": \"application/x-InstallShield\",\r\n \".wks\": \"application/vnd.ms-works\",\r\n \".wm\": \"video/x-ms-wm\",\r\n \".wma\": \"audio/x-ms-wma\",\r\n \".wmd\": \"application/x-ms-wmd\",\r\n \".wmf\": \"application/x-msmetafile\",\r\n \".wml\": \"text/vnd.wap.wml\",\r\n \".wmlc\": \"application/vnd.wap.wmlc\",\r\n \".wmls\": \"text/vnd.wap.wmlscript\",\r\n \".wmlsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wmlscript\": \"text/vnd.wap.wmlscript\",\r\n \".wmv\": \"audio/x-ms-wmv\",\r\n \".wmx\": \"video/x-ms-wmx\",\r\n \".wmz\": \"application/x-ms-wmz\",\r\n \".wpng\": \"image/x-up-wpng\",\r\n \".wpt\": \"x-lml/x-gps\",\r\n \".wri\": \"application/x-mswrite\",\r\n \".wrl\": \"x-world/x-vrml\",\r\n \".wrz\": \"x-world/x-vrml\",\r\n \".ws\": \"text/vnd.wap.wmlscript\",\r\n \".wsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wv\": \"video/wavelet\",\r\n \".wvx\": \"video/x-ms-wvx\",\r\n \".wxl\": \"application/x-wxl\",\r\n \".x-gzip\": \"application/x-gzip\",\r\n \".xaf\": \"x-world/x-vrml\",\r\n \".xar\": \"application/vnd.xara\",\r\n \".xbm\": \"image/x-xbitmap\",\r\n \".xdm\": \"application/x-xdma\",\r\n \".xdma\": \"application/x-xdma\",\r\n \".xdw\": \"application/vnd.fujixerox.docuworks\",\r\n \".xht\": \"application/xhtml+xml\",\r\n \".xhtm\": \"application/xhtml+xml\",\r\n \".xhtml\": \"application/xhtml+xml\",\r\n \".xla\": \"application/vnd.ms-excel\",\r\n \".xlc\": \"application/vnd.ms-excel\",\r\n \".xll\": \"application/x-excel\",\r\n \".xlm\": \"application/vnd.ms-excel\",\r\n \".xls\": \"application/vnd.ms-excel\",\r\n \".xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n \".xlt\": \"application/vnd.ms-excel\",\r\n \".xlw\": \"application/vnd.ms-excel\",\r\n \".xm\": \"audio/x-mod\",\r\n \".xml\": \"application/xml\",\r\n \".xmz\": \"audio/x-mod\",\r\n \".xof\": \"x-world/x-vrml\",\r\n \".xpi\": \"application/x-xpinstall\",\r\n \".xpm\": \"image/x-xpixmap\",\r\n \".xsit\": \"text/xml\",\r\n \".xsl\": \"text/xml\",\r\n \".xul\": \"text/xul\",\r\n \".xwd\": \"image/x-xwindowdump\",\r\n \".xyz\": \"chemical/x-pdb\",\r\n \".yz1\": \"application/x-yz1\",\r\n \".z\": \"application/x-compress\",\r\n \".zac\": \"application/x-zaurus-zac\",\r\n \".json\": \"application/json\",\r\n \".vsd\": \"application/vnd.visio\",\r\n \".et\": \"application/kset\",\r\n \".wps\": \"application/kswps\",\r\n \".dps\": \"application/ksdps\"\r\n}\r\n\r\nexport default function(a) {\r\n let b = strFrom(a, '.', true) || a\r\n return mimes['.' + b]\r\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Loading.vue?vue&type=style&index=0&id=35a83c14&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-video',\r\n mixins: [WidgetBase],\r\n props: ['src', 'poster'],\r\n data() {\r\n return {\r\n playing: false,\r\n }\r\n },\r\n methods: {\r\n getMimeType() {\r\n let filePath = $.strTo(this.x.src, '?') || this.x.src\r\n let fileName = $.strFrom(filePath, '/', true) || filePath\r\n let suffix = $.strFrom(fileName, '.', true)\r\n return suffix ? mimeType(fileName) : 'video/mp4'\r\n },\r\n html_slots() {\r\n return [h('video', {\r\n class: 'w-video-vd f-width f-height',\r\n ref: 'vd',\r\n src: this.x.src,\r\n poster: this.x.poster,\r\n onplay: e => this.playing = true,\r\n onpause: e => this.playing = false,\r\n controls: true,\r\n 'webkit-playsinline': true,\r\n 'playsinline': true,\r\n 'x-webkit-airplay': true,\r\n 'x5-playsinline': true,\r\n 'x5-video-player-type': 'h5',\r\n 'x5-video-orientation': 'h5',\r\n 'x5-video-player-fullscreen': true,\r\n }), h('div', {\r\n class: 'w-video-play f-abs-center f-flex-center',\r\n innerHTML: '<i class=\"f-i f-i-play\"></i>',\r\n onclick: e => {\r\n let o = this.$refs.vd\r\n o.paused ? o.play() : o.pause()\r\n }\r\n })]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['f-rel f-flex-center', {'z-play': this.playing}]\r\n }\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-video {\r\n box-sizing: border-box;\r\n background: #000;\r\n }\r\n\r\n .w-video.z-play .w-video-play {\r\n display: none\r\n }\r\n\r\n .w-video-play {\r\n display: flex;\r\n width: 62px;\r\n height: 62px;\r\n background: rgba(0, 0, 0, .5);\r\n border-radius: 50%;\r\n z-index: 1;\r\n }\r\n\r\n .w-video-play .f-i {\r\n color: #fff;\r\n font-size: 36px;\r\n transform: translate(4px, 0px);\r\n cursor: default\r\n }\r\n</style>\n","import script from \"./Video.vue?vue&type=script&lang=js\"\nexport * from \"./Video.vue?vue&type=script&lang=js\"\n\nimport \"./Video.vue?vue&type=style&index=0&id=7ee48295&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-split',\r\n mixins: [WidgetBase],\r\n props: ['collapsedIcon', 'expandedIcon', 'movable', 'range', 'toNext', 'expanded'],\r\n inject: ['provideLayout'],\r\n created() {\r\n this.$watch('expanded', (v) => {\r\n if (typeof v === 'boolean') this.x.expanded = v\r\n else if (this.x.expanded == null) this.x.expanded = true\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n toggle(exp) {\r\n this.x.expanded = exp == null ? !this.x.expanded : exp\r\n let minorElem = this.x.toNext ? this.el().nextElementSibling : this.el().previousElementSibling\r\n if (minorElem) {\r\n $.q(minorElem).toggleClass('f-split-collapsed', !this.x.expanded)\r\n //$.q(minorElem).css(this.expanded ? {visibility: '', position: '', zIndex: ''} : {visibility: 'hidden', position: 'absolute', zIndex: -1})\r\n }\r\n },\r\n dragstart(e) {\r\n let prevElem = this.el().previousElementSibling\r\n let nextElem = this.el().nextElementSibling\r\n if (prevElem && nextElem) {\r\n let vert = this.inVertical\r\n let minorElem = this.x.toNext ? nextElem : prevElem\r\n let downX = $.eventX(e)\r\n let downY = $.eventY(e)\r\n let posName = vert ? 'top' : 'left'\r\n let sizeName = vert ? 'height' : 'width'\r\n let clientName = vert ? 'clientY' : 'clientX'\r\n let downPos = vert ? downY : downX\r\n let minPos = $.bcr(prevElem)[posName]\r\n let maxPos = $.bcr(nextElem)[vert ? 'bottom' : 'right'] - 5\r\n let movRect = $.lodash.pick($.bcr(this.$refs.movable), ['width', 'height', 'top', 'left'])\r\n let pos\r\n let help\r\n $.moveup((e) => {\r\n if (!help) {\r\n help = $.q(`<div style=\"position:absolute;background:rgba(0,0,0,.3);z-index:101;\"></div>`).css(\r\n movRect).appendTo(document.body)\r\n }\r\n pos = $.numRange(movRect[posName] + e[clientName] - downPos, minPos, maxPos)\r\n help.css({\r\n [posName]: pos\r\n })\r\n }, (e, moved) => {\r\n if (moved && help) {\r\n help.remove()\r\n let size = (this.x.expanded ? $.bcr(minorElem)[sizeName] : 0) + (this.x.toNext ? 1 : -1) * (downPos -\r\n pos)\r\n if (size <= 0) {\r\n this.toggle(false)\r\n } else {\r\n if (!this.x.expanded) this.toggle(true)\r\n $.q(minorElem).css({\r\n [sizeName]: size\r\n })\r\n }\r\n }\r\n }, e)\r\n }\r\n },\r\n html_slots() {\r\n let r = []\r\n let expandedIcon = this.x.expandedIcon || this.x.collapsedIcon\r\n let collapsedIcon = this.x.collapsedIcon || expandedIcon\r\n if (expandedIcon) {\r\n r.push(this.html_icon(this.x.expanded ? expandedIcon : collapsedIcon, 'w-split-icon', () => this.toggle()))\r\n }\r\n if (this.x.movable) {\r\n r.push(h('div', {\r\n ref: 'movable',\r\n class: 'w-split-movable',\r\n onmousedown: this.dragstart\r\n }))\r\n }\r\n return r\r\n }\r\n },\r\n computed: {\r\n inVertical() {\r\n return this.provideLayout === 'w-vertical'\r\n },\r\n html_props() {\r\n return {\r\n class: ['f-rel z-' + (this.inVertical ? 'vertical' : 'horizontal'), {\r\n 'z-tonext': this.x.toNext\r\n }]\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-split-collapsed {\r\n position: absolute !important;\r\n visibility: hidden !important;\r\n z-index: -1;\r\n opacity: 0;\r\n }\r\n\r\n .w-split-icon {\r\n position: absolute;\r\n cursor: pointer;\r\n line-height: 1;\r\n z-index: 1;\r\n }\r\n\r\n .w-split.z-vertical .w-split-icon {\r\n left: 50%;\r\n top: 0;\r\n transform: translateX(-50%);\r\n }\r\n\r\n .w-split.z-vertical.z-tonext .w-split-icon {\r\n top: auto;\r\n bottom: 0;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-icon {\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n }\r\n\r\n .w-split.z-horizontal.z-tonext .w-split-icon {\r\n left: auto;\r\n right: 0;\r\n }\r\n\r\n .w-split-movable {\r\n position: absolute;\r\n }\r\n\r\n .w-split.z-vertical .w-split-movable {\r\n height: 100%;\r\n min-height: 5px;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n cursor: row-resize;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-movable {\r\n width: 100%;\r\n min-width: 5px;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n cursor: col-resize;\r\n }\r\n</style>\r\n","import script from \"./Split.vue?vue&type=script&lang=js\"\nexport * from \"./Split.vue?vue&type=script&lang=js\"\n\nimport \"./Split.vue?vue&type=style&index=0&id=64ffe5ca&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-rate',\r\n mixins: [FormBase],\r\n props: ['allowHalf', 'cancelable', 'sum', 'count', 'text'],\r\n data() {\r\n return {\r\n hoverWrap: false,\r\n hoverIndex: -1,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n sum: 5,\r\n count: 5,\r\n }\r\n },\r\n hoverItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.hoverIndex = i\r\n },\r\n clickItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.x.modelValue = this.x.cancelable && this.x.modelValue == i ? '' : i\r\n },\r\n html_star(i) {\r\n return h(Img, {\r\n class: ['w-rate-star-icon', {'z-hv': this.hoverWrap && i <= this.hoverIndex, 'z-on': !this.hoverWrap && i <= this.x.modelValue}],\r\n src: '.f-i .f-i-star-full', \r\n onMouseenter: e => this.hoverItem(e, i),\r\n onClick: e => this.clickItem(e, i),\r\n disabled: !this.isNormal\r\n })\r\n },\r\n html_input() {\r\n let half = this.x.allowHalf ? .5 : 1\r\n let sum = this.x.sum || 5\r\n let count = this.x.count || 5\r\n let step = sum * half / count \r\n let stars = []\r\n for (let i = step; i <= this.x.sum; i += step / half) {\r\n let icons = [this.html_star(i)]\r\n if (this.x.allowHalf) icons.push(this.html_star(i + step))\r\n stars.push(h('li', {class: 'w-rate-star'}, icons))\r\n }\r\n return [\r\n this.html_input_hidden(),\r\n h('ul', {\r\n class: 'w-rate-wrap',\r\n onMouseenter: e => this.isNormal && (this.hoverWrap = true),\r\n onMouseleave: e => this.isNormal && (this.hoverWrap = false),\r\n },\r\n stars\r\n ),\r\n this.x.text && this.x.modelValue && h('span', {class: 'w-rate-text'}, this.x.text[(this.x.modelValue - step) / half])\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {\r\n 'z-allow-half': this.x.allowHalf\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-rate-wrap {\r\n padding: 0 0 0 10px;\r\n margin: 0;\r\n display: flex;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star:last-child {\r\n margin-right: 0;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star-icon {\r\n position: relative;\r\n overflow: hidden;\r\n align-items: flex-start;\r\n color: #bbb;\r\n }\r\n .w-rate-star-icon:nth-child(2) {\r\n align-items: flex-end;\r\n margin-top: -100%;\r\n margin-left: 50%;\r\n }\r\n .w-rate-star-icon.z-hv,\r\n .w-rate-star-icon.z-on {\r\n color: gold;\r\n }\r\n \r\n .w-rate.z-allow-half .w-rate-star-icon {\r\n width: 50%;\r\n }\r\n \r\n .w-rate-text {\r\n margin-left: 10px;\r\n }\r\n\r\n</style>\r\n","import script from \"./Rate.vue?vue&type=script&lang=js\"\nexport * from \"./Rate.vue?vue&type=script&lang=js\"\n\nimport \"./Rate.vue?vue&type=style&index=0&id=54536848&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h, toRaw, Teleport, defineAsyncComponent, markRaw} from 'vue'\r\n import TemplateAlert from '../template/TemplateAlert.vue'\r\n import TemplateConfirm from '../template/TemplateConfirm.vue'\r\n import TemplateTip from '../template/TemplateTip.vue'\r\n import TemplateLoading from '../template/TemplateLoading.vue'\r\n\r\n const templateHooks = {\r\n Alert: TemplateAlert,\r\n Confirm: TemplateConfirm,\r\n Tip: TemplateTip,\r\n Loading: TemplateLoading\r\n }\r\n \r\n export default {\r\n name: 'w-pop',\r\n props: ['p'],\r\n methods: {\r\n get() {\r\n return new Promise((rs, rj) => this.$nextTick(() => {\r\n if (this.$refs.root) {\r\n rs(this.$refs.root)\r\n } else {\r\n this.$watch('asyncComp', c => this.$nextTick(() => {\r\n this.error ? rj(this.error) : (this.$refs.root && rs(this.$refs.root))\r\n }))\r\n }\r\n }))\r\n }\r\n },\r\n render() {\r\n if (this.p.hidden) return h(Teleport, {to: '#w-dfish-pops'})\r\n let props = $.lodash.omit(this.p.cmd, 'template')\r\n let t = this.p.cmd.template\r\n let com\r\n if (t) {\r\n if (typeof t === 'object') {\r\n com = toRaw(t)\r\n } else {\r\n let loader = t\r\n if (typeof t === 'string') {\r\n t = t.startsWith('@/') ? t.slice(2) : ($.x.templateDir || '') + t\r\n if (!t.endsWith('.vue')) t += '.vue'\r\n loader = () => import(/* @vite-ignore */`@/${t}`)\r\n }\r\n com = defineAsyncComponent({\r\n loader,\r\n errorComponent: () => h(TemplateAlert, {text: `${t} 不存在`, ref: 'error', icon: 'error', title: '操作提示', style: {width: 'auto', height: 'auto'}}),\r\n })\r\n }\r\n } else {\r\n com = toRaw(templateHooks[this.p.cmd.type])\r\n }\r\n return com && h(com, props)\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","import script from \"./Pop.vue?vue&type=script&lang=js\"\nexport * from \"./Pop.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n export default {\r\n name: 'w-column',\r\n props: ['width', 'minWidth'],\r\n }\r\n</script>\r\n\r\n","import script from \"./TableColumn.vue?vue&type=script&lang=js\"\nexport * from \"./TableColumn.vue?vue&type=script&lang=js\"\n\nexport default script","import {number} from './number.js'\r\nimport {strFrom, strTo} from './str.js'\r\n\r\nconst _css_camelize = (function() {\n\tlet b = {'float' : 'cssFloat'}\n\treturn function(s) {\n\t\treturn b[s] || s.replace(/-./g, function($0) {return $0.charAt(1).toUpperCase()});\n\t}\n})()\r\n\r\n// @o -> el, n -> name, v -> value\nconst _set_style = function(o, n, v) {\n\t// 如属性名前面带 += 号,则执行 += 操作\n\tif (typeof v === 'string' && v.charAt(1) === '=') {\n\t\tvar\tn = _css_camelize(n),\n\t\t\tc = o.style[n] || getComputedStyle(o, null)[n],\n\t\t\tv = number(v.replace('=', ''))\n\t\tif (n === 'width' || n === 'height') {\n\t\t\tc = number(c && c !== 'auto' ? c : n.charAt(0) === 'w' ? o.offsetWidth : o.offsetHeight);\n\t\t\tif (c < 0) c = 0;\n\t\t} else\n\t\t\tc = number(c);\n\t\to.style[n] = (c + v) + (n === 'zIndex' ? 0 : 'px');\n\t} else {\n\t\tn = _css_camelize(n);\n\t\tif (n === 'width' || n === 'height')\n\t\t\tv && v !== 'auto' && (v = Math.max(_number(v), 0));\n\t\tif (v && !isNaN(v) && n !== 'zIndex')\n\t\t\tv += 'px';\n\t\to.style[n] = v;\n\t}\n\treturn o;\n}\r\n\r\nconst css = function(o, s, n) {\n\tif (!o || !s)\n\t\treturn null;\n\tif (n != null) {\n\t\tfor (var i = 1, l = arguments.length; i < l; i += 2)\n\t\t\t_set_style(o, arguments[i], arguments[i + 1]);\n\t} else {\n\t\tif (typeof s === 'string') {\n\t\t\tif (s.indexOf(':') > 0) {\n\t\t\t\tfor (var i = 0, b = s.split(';'), l = b.length, k, v; i < l; i ++)\n\t\t\t\t\t(k = strTo(b[i], ':')) && (v = strFrom(b[i], ':')) && _set_style(o, k, v);\n\t\t\t} else\n\t\t\t\treturn o.style[s] || getComputedStyle(o, null)[s];\n\t\t}\n\t\tfor (var i in s) _set_style(o, i, s[i]);\n\t}\n}\r\n\r\nexport {css}","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-swiper',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['arrow', 'indicatorDots', 'duration'],\r\n data() {\r\n return {\r\n focusIndex: null,\r\n }\r\n },\r\n watch: {\r\n current(v) {\r\n this.setFocus(v)\r\n },\r\n },\r\n methods: {\r\n //@a -> key, index\r\n setFocus(a) {\r\n let s = this.slots_children()\r\n let c = s.findIndex(v => this.isCurrentChild(a, v))\r\n this.focusIndex = c\r\n },\r\n clickArrow(a) {\r\n this.focusIndex += a\r\n },\r\n clickIndicator(a) {\r\n this.focusIndex = a\r\n },\r\n html_slots() {\r\n if (this.focusIndex == null) {\r\n this.setFocus(this.x.current)\r\n }\r\n let v = this.x.vertical\r\n let a = v ? 'up' : 'left'\r\n let b = v ? 'down' : 'right'\r\n return [\r\n h('div', {\r\n class: 'w-swiper-cont',\r\n ref: 'cont',\r\n }, this.$slots),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + a,\r\n onclick: e => this.clickArrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + a\r\n })),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + b,\r\n onclick: e => this.clickArrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + b\r\n })),\r\n this.x.indicatorDots && h('div', {\r\n class: 'w-swiper-indicator f-flex-center',\r\n }, this.slots_children().map((v, i) => h('div', {\r\n class: 'w-swiper-indicator-dot' + (i == this.focusIndex ? ' z-on' : ''),\r\n onclick: e => this.clickIndicator(i)\r\n })))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n let i = this.focusIndex\r\n return {\r\n 'z-at-first': i == 0,\r\n 'z-at-last': i > -1 && i == this.slots_children().length - 1\r\n }\r\n },\r\n html_style() {\r\n let i = this.focusIndex\r\n return {\r\n '--w-swiper-translate-x': (-i * 100) + '%',\r\n '--w-swiper-transition': this.x.duration ? `transform ${this.x.duration}ms` : 0,\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.cont) {\r\n new MutationObserver(() => {\r\n this.setFocus(this.x.current)\r\n }).observe(this.$refs.cont, {\r\n childList: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-swiper {\r\n position: relative;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-swiper-cont {\r\n display: flex;\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n\r\n .w-swiper-item {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n left: var(--w-swiper-translate-x);\r\n transition: var(--w-swiper-transition);\r\n }\r\n\r\n .w-swiper-item>* {\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-left,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-right,\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-up,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-down {\r\n display: none\r\n }\r\n\r\n .w-swiper-arrow {\r\n position: absolute;\r\n margin: auto;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-arrow.z-left {\r\n width: 40px;\r\n right: auto\r\n }\r\n\r\n .w-swiper-arrow.z-right {\r\n width: 40px;\r\n left: auto\r\n }\r\n\r\n .w-swiper-arrow.z-up {\r\n height: 40px;\r\n bottom: auto\r\n }\r\n\r\n .w-swiper-arrow.z-down {\r\n height: 40px;\r\n top: auto\r\n }\r\n\r\n .w-swiper-arrow .f-i {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 36px;\r\n color: #ccc\r\n }\r\n\r\n .w-swiper-arrow:hover {\r\n background: rgba(0, 0, 0, .1)\r\n }\r\n\r\n .w-swiper-arrow:hover .f-i {\r\n color: #fff\r\n }\r\n\r\n .w-swiper-indicator {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: 10px;\r\n text-align: center\r\n }\r\n\r\n .w-swiper-indicator-dot {\r\n width: 9px;\r\n height: 9px;\r\n margin: 0 4px;\r\n background-color: #bbb;\r\n border-radius: 10px;\r\n vertical-align: middle;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-indicator-dot.z-on {\r\n background-color: #333\r\n }\r\n</style>\n","import script from \"./Swiper.vue?vue&type=script&lang=js\"\nexport * from \"./Swiper.vue?vue&type=script&lang=js\"\n\nimport \"./Swiper.vue?vue&type=style&index=0&id=385a8e70&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Progress.vue?vue&type=style&index=0&id=18056e88&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SVGIcon.vue?vue&type=style&index=0&id=a53c637e&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-thead',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['br', 'sort'],\r\n inject: ['_provideTable'],\r\n provide() {\r\n return {\r\n provideLeafLevel: -2,\r\n provideParentLeaf: null,\r\n provideInBody: false,\r\n _provideThead: this,\r\n _provideTBody: false,\r\n }\r\n },\r\n data() {\r\n return {\r\n rows: null,\r\n sortUID: null,\r\n }\r\n },\r\n methods: {\r\n isExpanded() {\r\n return true\r\n },\r\n slot_rows() {\r\n if (this.$slots.row) {\r\n let r\r\n let chd = this.x.children\r\n if (Array.isArray(chd)) {\r\n let i = 0\r\n r = chd.map(item => this.$slots.row({item}).map(t => $.lodash.set(t, 'props.rowIndex', i++)))\r\n }\r\n return r || []\r\n } else {\r\n return this.slots_children().map((vr, vi) => $.lodash.set(vr, 'props.rowIndex', vi))\r\n }\r\n },\r\n html_tbody() {\r\n let cg = this._provideTable.colgroup\r\n let rows = this.slot_rows()\r\n let style = {}\r\n if (!this._provideTable.fixed) {\r\n let mw = 0\r\n cg.forEach(c => {\r\n mw += $.number(c.width) || $.number(c['min-width'])\r\n })\r\n if (mw) {\r\n style.minWidth = $.unitSize(mw)\r\n }\r\n }\r\n this.rows = {}\r\n return h('div', {\r\n class: 'w-table-tbl-wrap'\r\n }, h('table', {\r\n ref: 'table',\r\n cellpadding: 0,\r\n cellspacing: 0,\r\n class: 'w-table-tbl',\r\n style,\r\n }, [\r\n //h('colgroup', null, cg.map(v => h('col', {style: {width: v.width == '*' ? null : $.unitSize(v.width)}}))),\r\n h('thead', null, h('tr', null, cg.map(v => h('td', {\r\n style: {\r\n width: v.width == '*' ? null : $.unitSize(v.width),\r\n minWidth: $.unitSize(v['min-width']),\r\n },\r\n 'w-fixed': v.fixed\r\n })))),\r\n h('tbody', rows)\r\n ]))\r\n },\r\n html_slots() {\r\n return this.html_tbody()\r\n }\r\n },\r\n computed: {\r\n isEscape() {\r\n return this.x.escape\r\n },\r\n }\r\n }\r\n</script>\n","import script from \"./TableTHead.vue?vue&type=script&lang=js\"\nexport * from \"./TableTHead.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-range',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideRangeParent: this\r\n }\r\n },\r\n props: ['compare'],\r\n methods: {\r\n getRangeError() {\r\n let f = this.forms()\r\n if (f && f.length) {\r\n return f[0].getCompareError(f[0].formVal(), {target: f[1], mode: this.x.mode})\r\n }\r\n },\r\n forms() {\r\n return this.ownerView.fAll(null, this.el('main'))\r\n },\r\n snapElem() {\r\n return this.forms()[0] || this.el('main')\r\n },\r\n html_form() {\r\n let c = this.slots_children()\r\n c.splice(1, 0, h('div', {class: 'w-range-to'}, $.loc.to))\r\n //c.push(h('input', {type: 'hidden', ref:'v', id: this.uid + 'hdn'}))\r\n return c\r\n },\r\n },\r\n computed: {\r\n html_on() {\r\n return {\r\n onclick: e => this.warnClass = ''\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-range.z-full > .w-input > .w-formbase:not(.z-fixed) {\r\n flex: 1;\r\n }\r\n .w-range > .w-input > .w-formbase {\r\n height: 100%;\r\n flex-basis: var(--w-input-width);\r\n }\r\n .w-range-to {\r\n width: 28px;\r\n min-width: 20px;\r\n text-align: center;\r\n }\r\n</style>\r\n","import script from \"./Range.vue?vue&type=script&lang=js\"\nexport * from \"./Range.vue?vue&type=script&lang=js\"\n\nimport \"./Range.vue?vue&type=style&index=0&id=8a31b61c&lang=css\"\n\nexport default script","let u = navigator.userAgent.toLowerCase()\r\nlet chrome = u.match(/\\bchrome\\/(\\d+)/)\r\nlet firefox = u.match(/\\bfirefox\\/(\\d+)/)\r\n\r\nconst r = {\r\n agent: u,\r\n chrome: chrome && parseFloat(chrome[1]),\r\n firefox: firefox && parseFloat(firefox[1]),\r\n safari: !chrome && u.indexOf('safari') > 0,\r\n ie: (navigator.appName === 'Microsoft Internet Explorer' || u.indexOf('trident') > 0) && document.documentMode,\r\n compat: {\r\n gap: false\r\n },\r\n}\r\n\r\nif (u.match(/\\bmobile\\b/)) {\r\n r.mobile = true\r\n r.app = location.protocol === 'file:';\r\n let wechat = u.match(/(MicroMessenger)\\/([\\d\\.]+)/i);\r\n if (wechat) r.wechat = {\r\n version: wechat[2].replace(/_/g, '.')\r\n };\r\n let android = u.match(/(Android);?[\\s\\/]+([\\d.]+)?/i);\r\n if (android) {\r\n r.android = true;\r\n r.version = android[2];\r\n r.isBadAndroid = !(/Chrome\\/\\d/.test(window.navigator.appVersion))\r\n }\r\n let iphone = u.match(/(iPhone\\sOS)\\s([\\d_]+)/i)\r\n if (iphone) {\r\n r.ios = r.iphone = true;\r\n r.version = iphone[2].replace(/_/g, '.')\r\n } else {\r\n let ipad = u.match(/(iPad).*OS\\s([\\d_]+)/i)\r\n if (ipad) {\r\n r.ios = r.ipad = true;\r\n r.version = ipad[2].replace(/_/g, '.')\r\n }\r\n }\r\n}\r\n\r\nif ((r.chrome && r.chrome < 84) || (r.firefox && r.firefox < 63)) {\r\n r.compat.gap = true\r\n}\r\n\r\nexport default r\n","<script>\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n\r\n export default {\r\n name: 'w-alert',\r\n mixins: [Dialog],\r\n props: ['text', 'yes', 'no', 'showButton'],\r\n mounted() {\r\n this.addEvent('close', () => this.$options.name == 'w-alert' ? this.cue(this.x.yes) : this.cue(this.x.no))\r\n },\r\n methods: {\r\n cueYes() {\r\n this.close()\r\n },\r\n cueNo() {\r\n this.close()\r\n },\r\n cue(a) {\r\n if ($.isCmd(a)) {\r\n this.commander.exec(a, this.args)\r\n } else if (typeof a === 'function') {\r\n a(this.args)\r\n }\r\n },\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-dialog w-vertical', this.animateClass, this.snapClass]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import script from \"./Alert.vue?vue&type=script&lang=js\"\nexport * from \"./Alert.vue?vue&type=script&lang=js\"\n\nexport default script","import {strFrom, strTo } from './str.js'\r\nimport {jsonArray} from './json.js'\r\nimport br from './browser.js'\r\nimport uid from './uid.js'\r\nimport lodash from 'lodash'\r\n\r\nconst _EventUser = {}\r\nconst _event_remove = function(k) {\r\n if (k.fn) {\r\n lodash.pull(_EventUser[k.id][k.type], k)\r\n k.type = k.fn = k.args = null\r\n }\r\n}\r\nconst _event_name = function(a) {\r\n return a.indexOf('.') > -1 ? strTo(a, '.') : a\r\n}\r\nconst _event_space = function(a) {\r\n return a.indexOf('.') > -1 ? '.' + strFrom(a, '.').split('.').sort().join('.') + '.' : ''\r\n}\r\nconst _event_handlers = function(a, b) {\r\n var c = _EventUser[uid(a)];\r\n if (!c) return;\r\n var type = _event_name(b),\r\n ns = _event_space(b);\r\n if (type) {\r\n return c[type] && (ns ? c[type].filter(v => v.ns.indexOf(ns) > -1) : c[type])\r\n }\r\n var r = [];\r\n for (type in c) {\r\n r.push.apply(r, c[type].filter(v => v.ns.indexOf(ns) > -1))\r\n }\r\n return r;\r\n}\r\n\r\nclass EventListener {\r\n constructor(ctx) {\r\n this.ctx = ctx\r\n }\r\n hasEvent(type) {\r\n let a = _event_handlers(this.ctx, type)\r\n return a && a.length\r\n }\r\n // type -> event type, fn -> fn, pvdr -> context, one -> exec once [T/F]\r\n addEvent(type, fn, one) {\r\n var k = {\r\n id: uid(this.ctx),\r\n type: _event_name(type),\r\n ns: _event_space(type),\r\n fn: fn,\r\n one: one\r\n };\r\n jsonArray(k, _EventUser, k.id, k.type).ori = true\r\n return this;\r\n }\r\n addEventOnce(type, fn) {\r\n return this.addEvent(type, fn, true)\r\n }\r\n // e -> event, r -> args[array]\r\n fireEvent(e, r) {\r\n var a = _event_handlers(this.ctx, e.type || e);\r\n if (a) {\r\n for (var i = 0, k, l = a.length, v; i < l; i++) {\r\n if ((k = a[i]) && k.fn) {\r\n v = k.fn.apply(this.ctx, r ? [e].concat(r) : [e]);\r\n if (k.one) {\r\n _event_remove(k);\r\n a.ori && (i--, l--);\r\n }\r\n if (v !== undefined)\r\n return v;\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n // a -> event type, b -> fn\r\n removeEvent(a, b) {\r\n if (a) {\r\n var d = _event_handlers(this.ctx, a);\r\n if (d) {\r\n var i = d.length;\r\n while (i--)\r\n if (!b || (d[i].fn === b)) _event_remove(d[i]);\r\n }\r\n } else {\r\n var c = _EventUser[uid(this.ctx)],\r\n i;\r\n for (i in c) this.removeEvent(i);\r\n delete _EventUser[uid(this.ctx)];\r\n }\r\n return this;\r\n }\r\n}\n\r\nconst eventX = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientX : e.clientX\r\n}\r\n\r\nconst eventY = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientY : e.clientY\r\n}\r\n\r\nconst moveup = function(moveCB, upCB, downEv) {\r\n let moveHdl, upHdl, dir = downEv == null,\r\n cvs = document.documentElement,\r\n evX = e => e.targetTouches ? e.targetTouches[0].clientX : e.clientX,\r\n evY = e => e.targetTouches ? e.targetTouches[0].clientY : e.clientY,\r\n prevent = e => e.preventDefault()\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = 'none'\r\n }\r\n cvs.addEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl = function(e) {\r\n dir ? moveCB(e) :\r\n downEv && (Math.abs(evX(e) - evX(downEv)) > 1 || Math.abs(evY(e) - evY(downEv)) > 1) && (dir = true)\r\n }, true);\r\n cvs.addEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl = function(e) {\r\n cvs.removeEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl, true)\r\n cvs.removeEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl, true)\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = ''\r\n }\r\n br.mobile && cvs.removeEventListener('touchmove', prevent, {passive: false});\r\n upCB && upCB(e, dir)\r\n }, true);\r\n // 业务拖动时禁用浏览器默认的拖动效果\r\n br.mobile && cvs.addEventListener('touchmove', prevent, {passive: false})\r\n}\r\n\r\nexport {EventListener, eventX, eventY, moveup}","<script>\r\n import Alert from './Alert.vue' \r\n\r\n export default {\r\n name: 'w-confirm',\r\n mixins: [Alert],\r\n methods: {\r\n cueYes() {\r\n this.cue(this.x.yes)\r\n this.x.no = null\r\n this.close()\r\n },\r\n cueNo() {\r\n this.close()\r\n },\r\n },\r\n computed: {\r\n html_prop_class() {\r\n return 'w-alert w-dialog w-vertical'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./Confirm.vue?vue&type=script&lang=js\"\nexport * from \"./Confirm.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import TabButton from './TabButton.vue'\r\n import Swiper from './Swiper.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-tabs',\r\n mixins: [WidgetBase],\r\n props: ['current', 'position', 'gap'],\r\n methods: {\r\n x_default() {\r\n return {\r\n position: 'top',\r\n gap: -1\r\n }\r\n },\r\n clickTab(tab) {\r\n this.x.current = tab.getKey()\r\n },\r\n html_slots() {\r\n let buttons = []\r\n let pages = []\r\n let pos = this.x.position\r\n this.slots_children().forEach((v, i) => {\r\n if (!v.props || v.props.key == null) {\r\n $.lodash.set(v, 'props.key', i)\r\n }\r\n buttons.push(h(TabButton, v.props))\r\n pages.push(h(SwiperItem, {lazy: v.props.lazy == null ? true : v.props.lazy, key: v.props.key}, v.children))\r\n })\r\n return [\r\n h(ButtonBar, {\r\n class: 'w-tabs-buttonbar',\r\n current: this.x.current,\r\n gap: this.x.gap,\r\n vertical: pos == 'left' || pos == 'right',\r\n scrollX: this.x.scrollX,\r\n scrollY: this.x.scrollY,\r\n clickTab: this.clickTab\r\n }, {default: () => buttons}),\r\n h(Swiper, {class: 'w-tabs-swiper f-flex-1 f-oh', current: this.x.current}, {default: () => pages}),\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n let pos = this.x.position\r\n return 'f-oh f-flex' + (pos == 'top' || pos == 'bottom' ? '-column' : '') + ' z-pos-' + pos\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n .w-tabs-buttonbar {\r\n position: relative;\r\n background: #f5f5f5;\r\n }\r\n \r\n .w-tabs-buttonbar:after {\r\n content: '';\r\n position: absolute;\r\n background: #ddd;\n }\r\n \r\n .w-tab.z-on {\r\n position: relative;\r\n z-index: 1;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar > .w-tab {\r\n border-top: 0;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-bottom-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar:after {\r\n width: 100%;\r\n height: 1px;\r\n bottom: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar {\r\n order: 1;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-swiper {\r\n order: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar:after {\r\n width: 100%;\r\n height: 1px;\r\n top: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar > .w-tab {\r\n border-bottom: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-top-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-right-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar:after {\r\n width: 1px;\r\n height: 100%;\r\n right: 0;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar > .w-tab {\r\n border-left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-top: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar {\r\n order: 1;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-swiper {\r\n order: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-left-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar:after {\r\n width: 1px;\r\n height: 100%;\r\n left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar > .w-tab {\r\n border-right: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-top: 0;\r\n }\r\n \r\n \r\n</style>\r\n","import script from \"./Tabs.vue?vue&type=script&lang=js\"\nexport * from \"./Tabs.vue?vue&type=script&lang=js\"\n\nimport \"./Tabs.vue?vue&type=style&index=0&id=554c0a38&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Horizontal from './Horizontal.vue'\r\n import PubParent from './PubParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-album',\r\n mixins: [Horizontal, PubParent],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n br: true,\r\n valign: 'top',\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-horizontal'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./Album.vue?vue&type=script&lang=js\"\nexport * from \"./Album.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Img.vue?vue&type=style&index=0&id=4b5feea2&lang=css\"","<template>\r\n <w-dialog class=\"w-jigsaw-dialog\">\r\n <img class=\"w-jigsaw-big\" :src=\"bigSrc\">\r\n <img class=\"w-jigsaw-small\" :src=\"smallSrc\" :width=\"smallWidth\" :style=\"{left: smallLeft + 'px'}\" @dragstart.prevent=\"dragstart\" @mousedown=\"mousedown\">\r\n <span @click=\"refresh\" class=\"w-jigsaw-refresh\">刷新</span>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n data() {\r\n return {\r\n smallLeft: 0\r\n }\r\n },\r\n watch: {\r\n 'context.x.modelValue': {\r\n handler(v) {\r\n let m = this.context.max()\r\n let n = this.context.min()\r\n this.smallLeft = (this.dialog.x.width - this.smallWidth) * (v / (m - n))\r\n }\r\n }\r\n },\r\n methods: {\r\n refresh(e) {\r\n this.context.refresh(e)\r\n },\r\n dragstart(e) {\r\n //\r\n },\r\n mousedown(e) {\r\n this.context.dragstart(e)\r\n }\r\n },\r\n computed: {\r\n dialog() {\r\n return $.dialog(this)\r\n },\r\n context() {\r\n return this.dialog.context\r\n },\r\n bigSrc() {\r\n return this.context.x.big.src\r\n },\r\n smallSrc() {\r\n return this.context.x.small.src\r\n },\r\n smallWidth() {\r\n return this.dialog.x.height * (this.context.x.small.width / this.context.x.small.height)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw-big {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-jigsaw-small {\r\n position: absolute;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-jigsaw-refresh {\r\n position: absolute;\r\n top: 5px;\r\n right: 5px;\r\n color: #fff;\r\n cursor: pointer;\r\n text-shadow: 0 0 3px #000;\r\n }\r\n</style>\n","import { render } from \"./TemplateJigsaw.vue?vue&type=template&id=2c16ab31\"\nimport script from \"./TemplateJigsaw.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateJigsaw.vue?vue&type=script&lang=js\"\n\nimport \"./TemplateJigsaw.vue?vue&type=style&index=0&id=2c16ab31&lang=css\"\nscript.render = render\n\nexport default script","<template>\r\n <w-img :class=\"['w-mediaupload-value', {'z-loading': item.loading, 'z-canplay': canPlay, 'z-err': item.error}]\" ref=\"thumbnail\" :src=\"src\" :data-url=\"dataURL\"\r\n :width=\"upload.x.thumbnailWidth\" :img-width=\"upload.x.thumbnailWidth-2\" :img-height=\"upload.x.thumbnailHeight-2\" :tip=\"tip\" @click=\"click\">\r\n <template v-if=\"upload.x.showFileName\" #default>\r\n <div class=\"f-line-1\">{{name}}</div>\r\n </template>\r\n <template #cover>\r\n <canvas v-if=\"item.loading\" ref=\"loading\" width=\"34\" height=\"34\" class=\"w-mediaupload-progress-loading f-abs-center\"></canvas>\r\n <i v-else-if=\"canPlay\" class=\"w-mediaupload-cover-play f-abs-center f-flex-center f-i f-i-play\"></i>\r\n <i v-if=\"upload.isNormal\" class=\"w-mediaupload-value-close f-flex-center f-i f-i-trash\" :title=\"title\" @click=\"remove\"></i>\r\n </template>\r\n </w-img>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['item'],\r\n inject: ['provideUpload'],\r\n data() {\r\n return {\r\n dataURL: null,\r\n }\r\n },\r\n methods: {\r\n click(e) {\r\n this.provideUpload.clickItem(e, this.item)\r\n },\r\n createImageThumbnail() {\r\n let r = new FileReader()\r\n r.onload = (e) => {\r\n if (this.item.loaded) return\r\n this.dataURL = e.target.result\r\n }\r\n r.readAsDataURL(this.item.file)\r\n },\r\n createVideoThumbnail() {\r\n let video = document.createElement('video')\r\n video.addEventListener('loadeddata', () => {\r\n setTimeout(() => {\r\n if (this.item.loaded) return\r\n let cvs = document.createElement('canvas')\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = video.videoWidth\r\n cvs.height = video.videoHeight\r\n ctx.drawImage(video, 0, 0)\r\n this.dataURL = cvs.toDataURL('image/png') \r\n video.pause()\r\n $.q(video).remove()\r\n }, 150)\r\n });\r\n video.src = URL.createObjectURL(this.item.file)\r\n video.muted = true\r\n video.play()\r\n },\r\n setProgress(a) {\r\n let cvs = this.$refs.loading\r\n if (!this.item.loading || !cvs) return\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = cvs.width\r\n ctx.beginPath()\r\n ctx.translate(17, 17)\r\n ctx.moveTo(0, 0)\r\n ctx.arc(0, 0, 15, -Math.PI * .5, Math.PI * ((2 * a / 100) - .5))\r\n ctx.closePath()\r\n ctx.fillStyle = 'rgba(255,255,255,.7)'\r\n ctx.fill()\r\n ctx.beginPath()\r\n ctx.arc(0, 0, 16, 0, Math.PI * 2)\r\n ctx.strokeStyle = '#fff'\r\n ctx.stroke()\r\n },\r\n remove(e) {\r\n this.upload.remove(this.item)\r\n e.stopPropagation()\r\n }, \r\n },\r\n computed: {\r\n upload() {\r\n return this.provideUpload\r\n },\r\n img() {\r\n return this.$refs.thumbnail.$refs.img\r\n },\r\n src() {\r\n return this.item.value ? $.urlServer(this.item.value.thumbnail || this.upload.x.thumbnailSrc, this.item.value,\r\n this.upload.x.data) : ''\r\n },\r\n name() {\r\n return this.item.value ? this.item.value.name : this.item.file.name\r\n },\r\n tip() {\r\n return this.item.error ? this.item.error.message : this.name\r\n },\r\n title() {\r\n return $.loc.remove\r\n },\r\n canPlay() {\r\n return this.item.value && (this.upload.isVideo(this.item) || this.upload.isAudio(this.item))\r\n }\r\n },\r\n mounted() {\r\n if (!this.item.loaded && this.item.file) {\r\n this.upload.isVideo(this.item) ? this.createVideoThumbnail() : this.upload.isImage(this.item) ? this.createImageThumbnail() : null\r\n this.$watch(() => this.item.progress, v => this.setProgress(v), {\r\n immediate: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload-value.z-loading .w-img-cover {\r\n background: rgba(0, 0, 0, .25);\r\n }\r\n\r\n .w-mediaupload-progress {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload-progress-img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: right top;\r\n }\r\n</style>\r\n","import { render } from \"./MediaUploadItem.vue?vue&type=template&id=07113717\"\nimport script from \"./MediaUploadItem.vue?vue&type=script&lang=js\"\nexport * from \"./MediaUploadItem.vue?vue&type=script&lang=js\"\n\nimport \"./MediaUploadItem.vue?vue&type=style&index=0&id=07113717&lang=css\"\nscript.render = render\n\nexport default script","import $ from '../dfish.js'\r\nimport '../assets/dfish.css'\r\n\r\nimport directive from '../directive/index.js'\r\n\r\nimport DocView from './DocView.vue'\r\nimport View from './View.vue'\r\nimport Pop from './Pop.vue'\r\nimport Dialog from './Dialog.vue'\r\nimport DialogMove from './DialogMove.vue'\r\nimport Alert from './Alert.vue'\r\nimport Confirm from './Confirm.vue'\r\nimport Tip from './Tip.vue'\r\nimport Menu from './Menu.vue'\r\nimport Loading from './Loading.vue'\r\n\r\nimport Vertical from './Vertical.vue'\r\nimport Horizontal from './Horizontal.vue'\r\nimport Table from './Table.vue'\r\nimport TableColumns from './TableColumns.vue'\r\nimport TableColumn from './TableColumn.vue'\r\nimport TableTBody from './TableTBody.vue'\r\nimport TableTHead from './TableTHead.vue'\r\nimport TableTR from './TableTR.vue'\r\nimport TableTD from './TableTD.vue'\r\nimport TableTH from './TableTH.vue'\r\nimport Grid from './Grid.vue'\r\nimport Swiper from './Swiper.vue'\r\nimport SwiperItem from './SwiperItem.vue'\r\nimport Tabs from './Tabs.vue'\r\nimport Tab from './Tab.vue'\r\n\r\nimport Album from './Album.vue'\r\nimport Img from './Img.vue'\r\nimport ButtonBar from './ButtonBar.vue'\r\nimport Button from './Button.vue'\r\nimport SubmitButton from './SubmitButton.vue'\r\nimport MenuButton from './MenuButton.vue'\r\nimport Html from './Html.vue'\r\nimport Tree from './Tree.vue'\r\nimport Leaf from './Leaf.vue'\r\nimport PageBar from './PageBar.vue'\r\nimport Split from './Split.vue'\r\nimport Toggle from './Toggle.vue'\r\nimport Video from './Video.vue'\r\nimport Progress from './Progress.vue'\r\nimport Calendar from './Calendar.vue'\r\nimport Timeline from './Timeline.vue'\r\nimport TimelineItem from './TimelineItem.vue'\r\nimport SlidePicker from './SlidePicker.vue'\r\n\r\nimport Label from './Label.vue'\r\nimport Hidden from './Hidden.vue'\r\nimport Text from './Text.vue'\r\nimport Textarea from './Textarea.vue'\r\nimport CheckBoxGroup from './CheckBoxGroup.vue'\r\nimport CheckBox from './CheckBox.vue'\r\nimport RadioGroup from './RadioGroup.vue'\r\nimport Radio from './Radio.vue'\r\nimport TripleBox from './TripleBox.vue'\r\nimport Switch from './Switch.vue'\r\nimport FileUpload from './FileUpload.vue'\r\nimport MediaUpload from './MediaUpload.vue'\r\nimport ImageUpload from './ImageUpload.vue'\r\nimport Option from './Option.vue'\r\nimport Spinner from './Spinner.vue'\r\nimport DatePicker from './DatePicker.vue'\r\nimport DropBox from './DropBox.vue'\r\nimport PickBox from './PickBox.vue'\r\nimport Password from './Password.vue'\r\nimport Range from './Range.vue'\r\nimport ComboBox from './ComboBox.vue'\r\nimport LinkBox from './LinkBox.vue'\r\nimport Jigsaw from './Jigsaw.vue'\r\nimport Form from './Form.vue'\r\nimport Rate from './Rate.vue'\r\n\r\n\r\nconst WIDGET = {\r\n DocView, View, Pop, Dialog, DialogMove, Alert, Confirm, Tip, Menu, Loading,\r\n Grid, Vertical, Horizontal, Table, TableColumns, TableColumn, TableTBody, TableTHead, TableTR, TableTD, TableTH, Swiper, SwiperItem, Tabs, Tab,\r\n Album, Img, ButtonBar, Button, SubmitButton, MenuButton, Html, Tree, Leaf, PageBar, Split, Toggle, Video, Progress, Calendar, Timeline, TimelineItem, SlidePicker,\r\n Label, Hidden, Text, Textarea, CheckBoxGroup, CheckBox, RadioGroup, Radio, TripleBox, Switch, FileUpload, MediaUpload, ImageUpload, Option,\r\n Spinner, DatePicker, DropBox, PickBox, Password, Range, ComboBox, LinkBox, Jigsaw, Form, Rate\r\n}\r\n\r\n//每个组件从这里曝露,以便在某些极端情境下,业务可以修改源码\r\n$.WIDGET = WIDGET\r\n\r\n//按Vue要求提供install接口\r\n$.install = (Vue) => {\r\n //注册组件\r\n Object.keys(WIDGET).forEach(k => Vue.component(WIDGET[k].name, WIDGET[k]))\r\n //注册指令\r\n Vue.use(directive)\r\n}\r\n\r\nexport default $\r\n","<template>\r\n <div ref=\"root\" v-bind=\"html_binds\">\r\n <div ref=\"options\" class=\"w-slidepicker-options\">\r\n <slot />\r\n </div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-top\"></div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-bottom\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n getCurrentInstance,\r\n onMounted,\r\n watch,\r\n computed,\r\n ref,\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-slidepicker',\r\n mixins: [WidgetBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['optionHeight', 'modelValue', 'minValue', 'maxValue', 'keepIndex', 'cover'],\r\n emits: ['update:modelValue', 'change'],\r\n setup(props, context) {\r\n const self = getCurrentInstance().ctx\r\n const root = ref()\r\n const options = ref()\r\n let startY, endY, minY, maxY, optY, optH, roll\r\n\r\n const onmousedown = function(downEv) {\r\n let downY = $.eventY(downEv)\r\n let moveY, lastY, lastTime\r\n let speed = 0\r\n let lastSpeed = null\r\n options.value.style.transition = ''\r\n $.moveup(e => {\r\n let nowY = $.eventY(e)\r\n let nowTime = e.timeStamp\r\n moveY = optY + nowY - downY\r\n if (lastY && lastTime && nowTime > lastTime) {\r\n lastSpeed = speed\r\n speed = (nowY - lastY) / (nowTime - lastTime)\r\n }\r\n lastY = nowY\r\n lastTime = nowTime\r\n moveY = $.numRange(moveY, minY - optH, maxY + optH)\r\n options.value.style.transform = `translateY(${moveY}px)`\r\n }, (e, moved) => {\r\n if (!moved) {\r\n return onclick(downEv)\r\n }\r\n if (moveY == null) return\r\n let minSpeed = 0.15 //speed大于这个值时,做惯性滚动\r\n if (Math.abs(speed) < minSpeed || (lastSpeed && Math.abs(lastSpeed) < minSpeed)) {\r\n speed = 0\r\n } else if (lastSpeed && Math.abs(lastSpeed) > Math.abs(speed)) {\r\n speed = lastSpeed //记录最后两个speed,选择其中一个最大的,此步骤可优化体验\r\n }\r\n let y = moveY + (speed * 200)\r\n let s = Math.abs(speed / 2)\r\n let yuH = (maxY - y) % optH\r\n y += yuH\r\n if (yuH > (optH / 2)) {\r\n y -= optH\r\n }\r\n optY = $.numRange(y, minY, maxY)\r\n if (optY != moveY) {\r\n if (moveY < minY || moveY > minY || s < minSpeed) {\r\n s = minSpeed\r\n }\r\n if (Math.abs(optY - moveY) < 10) {\r\n s = 0.05 // 移动范围很小时,过渡时间也相应缩短\r\n }\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform ${s}s ease-out`\r\n }\r\n }, downEv)\r\n }\r\n const onwheel = function(e) {\r\n optY += (e.wheelDelta < 0 ? -1 : 1) * optH\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform .12s ease-out`\r\n }\r\n const onclick = function(e) {\r\n let g = $(e)\r\n if (g.$options.name == 'w-option') {\r\n update(g.$props.value)\r\n focus(true)\r\n }\r\n }\r\n const focus = function(ease) {\r\n if (!root.value || !options.value) return\r\n let sc = self.slots_children()\r\n if (!sc.length) return\r\n let v = self.x.modelValue\r\n let nv = self.x.minValue\r\n let xv = self.x.maxValue\r\n if (nv || nv === 0 || xv || xv === 0) {\r\n v = $.numRange(v, nv, xv)\r\n if (v != self.x.modelValue) {\r\n update(v)\r\n }\r\n }\r\n let bcrRoot = $.bcr(root.value)\r\n let bcrOpt = $.bcr(options.value)\r\n let ni = -1\r\n let xi = -1\r\n let asc = true\r\n optH = self.x.optionHeight\r\n startY = maxY = (bcrRoot.height - optH) / 2\r\n endY = minY = startY - bcrOpt.height + optH\r\n if (nv || nv === 0) {\r\n ni = sc.findIndex(s => s.props.value == nv)\r\n }\r\n if (xv || xv === 0) {\r\n xi = sc.findIndex(s => s.props.value == xv)\r\n }\r\n if ((ni > -1 || xi > -1) && sc[0].props.value > sc[sc.length - 1].props.value) { // 判断是不是倒序\r\n asc = false\r\n }\r\n if (ni > -1) {\r\n if (asc) {\r\n maxY -= ni * optH\r\n } else {\r\n minY += ni * optH\r\n }\r\n }\r\n if (xi > -1) {\r\n if (asc) {\r\n minY += (sc.length - 1 - xi) * optH\r\n } else {\r\n maxY -= (sc.length - 1 - xi) * optH\r\n }\r\n }\r\n if (v != null) {\r\n let index = sc.findIndex(s => s.props.value == v)\r\n if (index === -1) {\r\n update(optY != null && optY < endY && self.keepIndex ? sc[sc.length - 1].props.value : sc[0].props.value)\r\n } else {\r\n optY = startY - (optH * index)\r\n }\r\n } else {\r\n optY = startY\r\n }\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transition = ''\r\n options.value.style.transform = `translateY(${optY}px)`\r\n if (ease) {\r\n options.value.style.transition = `transform .15s ease-out`\r\n }\r\n }\r\n\r\n const update = function(v) {\r\n roll = true\r\n self.x.modelValue = v\r\n }\r\n \r\n const getIndex = function() {\r\n return (startY - optY) / optH\r\n }\r\n \r\n const transEnd = function() {\r\n let ret = self.slots_children()[getIndex()]\r\n ret && update(ret.props.value)\r\n }\r\n \r\n const x_default = function() {\r\n return {\r\n optionHeight: 32,\r\n cover: true\r\n }\r\n }\r\n\r\n const html_props = computed(() => {\r\n return {\r\n style: {\r\n '--w-option-height': $.unitSize(self.x.optionHeight)\r\n },\r\n ...($.br.mobile ? {\r\n ontouchstart: onmousedown\r\n } : {\r\n onmousedown,\r\n onwheel,\r\n })\r\n }\r\n })\r\n\r\n onMounted(() => {\r\n watch(() => self.x.modelValue, v => {\r\n context.emit('update:modelValue', v)\r\n context.emit('change', v)\r\n })\r\n watch(() => self.x.minValue, focus)\r\n watch(() => self.x.maxValue, focus)\r\n new ResizeObserver(() => {\r\n if (options.value) {\r\n focus()\r\n transEnd()\r\n }\r\n }).observe(options.value)\r\n options.value.addEventListener('transitionend', transEnd)\r\n })\r\n\r\n return {\r\n root,\r\n options,\r\n x_default,\r\n onmousedown,\r\n onwheel,\r\n html_props,\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-slidepicker {\r\n position: relative;\r\n overflow: hidden;\r\n background: #fff;\r\n }\r\n\r\n .w-slidepicker-bg-top {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.9), rgba(245, 245, 245, 0.4));\r\n border-bottom: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker-bg-bottom {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.4), rgba(245, 245, 245, 0.9));\r\n border-top: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker .w-option {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n\r\n .w-slidepicker .w-option-checked {\r\n display: none;\r\n }\r\n\r\n .w-slidepicker-options {\r\n user-select: none;\r\n /* pointer-events: none; */\r\n }\r\n</style>\n","import { render } from \"./SlidePicker.vue?vue&type=template&id=2b33e34a\"\nimport script from \"./SlidePicker.vue?vue&type=script&lang=js\"\nexport * from \"./SlidePicker.vue?vue&type=script&lang=js\"\n\nimport \"./SlidePicker.vue?vue&type=style&index=0&id=2b33e34a&lang=css\"\nscript.render = render\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MediaUpload.vue?vue&type=style&index=0&id=5df6accd&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import TripleBox from './TripleBox.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-leaf',\r\n pubParentName: 'w-tree',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['text', 'expanded', 'expandedIcon', 'collapsedIcon', 'icon', 'boxSync', 'src', 'disabled'],\r\n inject: ['providePubParent', 'provideLevel', 'provideParentLeaf', 'provideParentTR'],\r\n provide() {\r\n return {\r\n provideParentLeaf: this,\r\n provideLevel: this.provideLevel + 1,\r\n provideBoxParent: this,\r\n }\r\n },\r\n data() {\r\n return {\r\n hover: false,\r\n loading: false,\r\n loaded: this.getInitLoaded()\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n let chd = (this.x || this.$props).children\r\n if (chd === true || (Array.isArray(chd) && chd.length)) return true\r\n },\r\n childrenList() {\r\n return $.lodash.map(this.$refs.cont.querySelectorAll(':scope > .w-leaf'), v => $(v))\r\n },\r\n getInitLoaded() {\r\n return this.hasChild() || !this.getSrc() ? true : false\r\n },\r\n isExpanded() {\r\n return this.provideParentTR ? this.provideParentTR.isExpanded() : this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n isFolder() {\r\n return this.hasChild() ? true : !!(this.getSrc() && !this.loaded)\r\n },\r\n toggle(exp, fn) {\r\n (this.provideParentTR || this).setExpanded(exp)\r\n if (this.isExpanded() && !this.loaded) {\r\n this.request(fn)\r\n } else {\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n onclick(e) {\r\n if (this.x.disabled) {\r\n if (!this.$refs.toggle || !this.$refs.toggle.contains(e.target))\r\n e.stopPropagation()\r\n return\r\n }\r\n if (this.boxProxy && this.x.boxSync) {\r\n this.boxProxy.check(!this.boxProxy.isChecked)\r\n this.triple()\r\n }\r\n },\r\n // triplebox 级联勾选\r\n triple() {\r\n if (!this.boxProxy || this.boxProxy.$options.name !== 'w-triplebox') return\r\n let p = this\r\n while ((p = p.provideParentLeaf) && p.$options.name === 'w-leaf') {\r\n if (p.boxProxy) {\r\n let c = p.childrenList()\r\n let m = [0, 0, 0]\r\n let l = c.length\r\n c.forEach(v => {\r\n let b = v.boxProxy\r\n if (b) m[b.checkstate()]++\r\n })\r\n p.boxProxy.check(m[0] === l ? 0 : m[1] === l ? 1 : 2)\r\n }\r\n }\r\n let c = this.boxProxy.checkstate()\r\n c != 2 && this.tripleAll(c)\r\n },\r\n tripleAll(a) {\r\n this.childrenList().forEach(v => {\r\n if (v.boxProxy) {\r\n v.boxProxy.check(a)\r\n v.tripleAll(a)\r\n }\r\n })\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentLeaf) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n html_self() {\r\n let exp = this.isExpanded()\r\n let ico = this.isFolder() ? (exp ? this.x.expandedIcon : this.x.collapsedIcon) : this.x.icon\r\n return h('div', mergeProps(this.html_attrs, this.html_props, this.$attrs), [\r\n this.loading ?\r\n h(Img, {\r\n src: '#f-svg-loading',\r\n class: 'w-leaf-loading'\r\n }) :\r\n h('div', {\r\n ref: 'toggle',\r\n class: ['w-leaf-toggle f-i', exp ? 'f-i-caret-down' : 'f-i-caret-right'],\r\n onclick: (e) => {\r\n e.stopPropagation(), this.toggle()\r\n }\r\n }),\r\n this.$slots.box && this.$slots.box(),\r\n ico && h(Img, {\r\n src: ico,\r\n class: 'w-leaf-icon'\r\n }),\r\n h('div', {\r\n class: 'w-leaf-text f-line-1',\r\n title: this.x.text,\r\n }, this.$slots.text ? this.$slots.text() : this.x.text)\r\n ])\r\n },\r\n html_cont() {\r\n let r\r\n let chd = this.x.children\r\n let tree = this.pubParent\r\n if (Array.isArray(chd) && tree) {\r\n r = chd.map(item => tree.$slots.default({item}))\r\n }\r\n return h('div', {\r\n id: this.uid + 'cont',\r\n ref: 'cont',\r\n class: 'w-leaf-cont',\r\n style: {\r\n display: this.x.expanded ? '' : 'none'\r\n },\r\n }, r)\r\n },\r\n html() {\r\n return [this.html_self(), this.html_cont()]\r\n }\r\n },\r\n computed: {\r\n tree() {\r\n return this.pubParent\r\n },\r\n level() {\r\n return this.provideParentTR ? this.provideParentTR.level : this.provideLevel + 1\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let exp = this.isExpanded()\r\n let fd = this.isFolder()\r\n let ds = this.x.disabled\r\n let prop = {\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': ds,\r\n 'z-folder': fd,\r\n 'z-expanded': fd && exp,\r\n 'z-collapse': fd && !exp\r\n },\r\n style: 'padding-left:' + $.unitSize(this.level * 16),\r\n }\r\n if (this.pubParent) {\r\n prop.onmouseenter = this.onmouseenter\r\n prop.onmouseleave = this.onmouseleave\r\n prop[`onClick${ds?'Capture':''}`] = this.onclick\r\n }\r\n return prop\r\n }\r\n },\r\n mounted() {\r\n if (this.x.expanded) this.toggle(true)\r\n if (this.isCurrent) this.pubParent.viewCurrent(this)\r\n if (this.boxProxy) {\r\n this.$nextTick(() => {\r\n if (!this.isFolder() && !this.$refs.cont.nextElementSibling) {\r\n this.triple()\r\n }\r\n })\r\n }\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-leaf {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n min-height: 30px;\r\n width: 100%;\r\n text-align: left;\r\n }\r\n\r\n .w-leaf-text {\r\n flex: 1;\r\n }\r\n\r\n .w-leaf-toggle {\r\n visibility: hidden;\r\n padding: 0 1px;\r\n margin-left: 1px;\r\n color: #777;\r\n opacity: #777;\r\n }\r\n \r\n .w-leaf.z-on .w-leaf-toggle,\r\n .w-leaf.z-on .f-svg {\r\n color: currentcolor;\r\n fill: currentcolor;\r\n }\r\n\r\n .w-leaf-loading {\r\n width: 20px;\r\n margin-left: 1px;\r\n }\r\n\r\n .w-leaf-icon {\r\n margin-right: 6px;\r\n }\r\n\r\n .w-leaf.z-folder .w-leaf-toggle {\r\n visibility: visible;\r\n }\r\n\r\n .w-leaf .w-triplebox,\r\n .w-leaf .w-checkbox, \r\n .w-leaf .w-radio {\r\n margin-right: 6px;\r\n }\r\n \r\n .w-leaf.z-hv {\r\n background: #f5faff;\r\n }\r\n \r\n .w-leaf.z-on {\r\n background: var(--w--focus-color);\r\n color: #fff\r\n }\r\n \r\n .w-leaf.z-ds {\r\n color: #999;\r\n }\r\n \r\n</style>\n","import script from \"./Leaf.vue?vue&type=script&lang=js\"\nexport * from \"./Leaf.vue?vue&type=script&lang=js\"\n\nimport \"./Leaf.vue?vue&type=style&index=0&id=1baf3a86&lang=css\"\n\nexport default script","<template>\r\n <w-vertical v-bind=\"html_binds\" :class=\"['f-rel', 'w-calendar-' + this.x.face]\">\r\n <w-vertical class=\"w-calendar-main\" v-if=\"!onlyTime\">\r\n <w-horizontal :class=\"['w-calendar-head', {'f-h-gap': dfish.br.compat.gap}]\" valign=\"middle\" align=\"center\">\r\n <i class=\"w-calendar-head-prev-year f-i f-i-angle-double-left f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(-12)\"></i>\r\n <i class=\"w-calendar-head-prev f-i f-i-angle-single-left f-pointer\" @click=\"clickStep(-1)\"></i>\r\n <w-horizontal :class=\"['w-calendar-head-pop', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <div class=\"w-calendar-head-year f-link\" ref=\"popYear\" @click=\"clickPopYear()\" v-html=\"headYear\"></div>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopYear\" :context=\"$refs.popYear\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"{target: $refs.popYear, position: 'cc'}\" @close=\"headPopYear=null\">\r\n <div class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(-1)\"><i class=\"f-i f-i-minus\"></i></div>\r\n <w-html height=\"*\" @wheel.passive=\"mousewheelPopYear\">\r\n <div v-for=\"item in headPopYear\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getFullYear()}]\"\r\n @click=\"clickPopYearItem(item)\">{{item}}</div>\r\n </w-html>\r\n <w-html class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(1)\"><i class=\"f-i f-i-plus\"></i>\r\n </w-html>\r\n </w-dialog>\r\n <w-html v-if=\"x.face == 'date'\" class=\"w-calendar-head-month f-link\" ref=\"popMonth\" @click=\"clickPopMonth\">\r\n {{headMonth}}\r\n </w-html>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopMonth\" :context=\"$refs.popMonth\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"{target: $refs.popMonth, position: 'cc'}\" @close=\"headPopMonth=null\">\r\n <w-html height=\"*\">\r\n <div v-for=\"item in headPopMonth\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getMonth() + 1}]\"\r\n @click=\"clickPopMonthItem(item)\">{{item}}</div>\r\n </w-html>\r\n </w-dialog>\r\n </w-horizontal>\r\n <i class=\"w-calendar-head-next f-i f-i-angle-single-right f-pointer\" @click=\"clickStep(1)\"></i>\r\n <i class=\"w-calendar-head-next-year f-i f-i-angle-double-right f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(12)\"></i>\r\n <div class=\"w-calendar-head-blank\"></div>\r\n </w-horizontal>\r\n <slot name=\"head\"></slot>\r\n <div class=\"w-calendar-body\">\r\n <template v-if=\"x.face == 'date'\">\r\n <div v-for=\"item in loc.calendar.day_title_1\" class=\"w-calendar-daytitle\">{{item}}</div>\r\n </template>\r\n <div v-for=\"item in bodyList\" :title=\"item.title\"\r\n :class=\"['w-calendar-item', {'z-on': item.focus && !item.disabled, 'z-pad': item.pad, 'z-ds': item.disabled}]\"\r\n @click=\"clickItem($event,item)\">\r\n <slot :item=\"item\">\r\n <div class=\"w-calendar-item-text\">{{item.text}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </w-vertical>\r\n <w-horizontal v-if=\"hasTime\" class=\"w-calendar-time\">\r\n <w-vertical v-if=\"focusHour!==false\" class=\"w-calendar-time-col w-calendar-time-hour\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.hour}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"hour\" :current=\"focusHour\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"h in bodyListHour\" :key=\"h\" :text=\"dfish.strPad(h)\"\r\n :disabled=\"isHourDisabled(h)\" @click=\"clickHour($event,h)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusMinute!==false\" class=\"w-calendar-time-col w-calendar-time-minute\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.minute}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"minute\" :current=\"focusMinute\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"m in bodyListMinute\" :key=\"m\" :text=\"dfish.strPad(m)\"\r\n :disabled=\"isMinuteDisabled(m)\" @click=\"clickMinute($event,m)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusSecond!==false\" class=\"w-calendar-time-col w-calendar-time-second\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.second}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"second\" :current=\"focusSecond\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"s in bodyListSecond\" :key=\"s\" :text=\"dfish.strPad(s)\"\r\n :disabled=\"isSecondDisabled(s)\" @click=\"clickSecond($event,s)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-horizontal>\r\n <w-horizontal v-if=\"success\" :class=\"['w-calendar-foot', {'f-h-gap': dfish.br.compat.gap}]\" align=\"between\"\r\n valign=\"middle\">\r\n <div class=\"w-calendar-button-now f-link\" @click=\"clickNow\">{{loc.calendar.now}}</div>\r\n <div class=\"w-calendar-button-confirm f-link\" @click=\"clickConfirm\">{{loc.confirm}}</div>\r\n </w-horizontal>\r\n </w-vertical>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-calendar',\r\n mixins: [WidgetBase],\r\n emits: ['click:item', 'change'],\r\n props: ['value', 'minValue', 'maxValue', 'current', 'pad', 'face', 'format', 'success', 'cg', 'start',\r\n 'enableHour', 'enableMinute', 'enableSecond', 'defaultHour', 'defaultMinute', 'defaultSecond'\r\n ],\r\n data() {\r\n let dt = this.value2date()\r\n return {\r\n dt,\r\n currentDate: null,\r\n headPopYear: null,\r\n headPopMonth: null,\r\n }\r\n },\r\n watch: {\r\n value(v) {\r\n this.dt = this.value2date()\r\n },\r\n dt(nv, ov) {\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.trigger('change', nv)\r\n } else if (this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.trigger('change', nv)\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.trigger('change', nv)\r\n }\r\n },\r\n current(nc) {\r\n if (!nc) return\r\n let nv = typeof nc === 'string' ? $.dateParse(nc, this.formatter) : nc\r\n let ov = this.dt\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.dt = nv\r\n } else if (this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.dt = nv\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.dt = nv\r\n }\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n let b = this.format || ''\r\n return {\r\n face: b === 'yyyy' ? 'year' : b.includes('MM') && !b.includes('dd') ? 'month' : b\r\n .includes('ww') ? 'week' : 'date'\r\n }\r\n },\r\n value2date() {\r\n let dt = this.value\r\n let bd = this.minValue\r\n let ed = this.maxValue\r\n let f = this.format || ''\r\n if (bd && (!dt || dt < bd)) {\r\n dt = bd\r\n }\r\n if (ed && (!dt || dt > ed)) {\r\n dt = ed\r\n }\r\n dt = dt ? $.dateParse(dt, f) : new Date()\r\n if (!this.value) this.setDefaultTime(dt)\r\n return dt\r\n },\r\n weekday(d) {\r\n let w = d.getDay()\r\n return w == 0 ? 6 : w - 1\r\n },\r\n setDefaultTime(d) {\r\n let dh = this.defaultHour == null ? d.getHours() : parseFloat(this.defaultHour)\r\n if (this.enableHour) {\r\n let eh = $.arrayNumber(this.enableHour)\r\n if (!eh.includes(dh)) dh = eh[0]\r\n }\r\n d.setHours(dh)\r\n let dm = this.defaultMinute == null ? d.getMinutes() : parseFloat(this.defaultMinute)\r\n if (this.enableMinute) {\r\n let em = $.arrayNumber(this.enableMinute)\r\n if (!em.includes(dm)) dm = em[0]\r\n }\r\n d.setMinutes(dm)\r\n let ds = this.defaultSecond == null ? d.getSeconds() : parseFloat(this.defaultSecond)\r\n if (this.enableSecond) {\r\n let es = $.arrayNumber(this.enableSecond)\r\n if (!es.includes(ds)) ds = es[0]\r\n }\r\n d.setSeconds(ds)\r\n return d\r\n },\r\n fixDate(d) {\r\n if (this.beginDate && d < this.beginDate) d = this.beginDate\r\n if (this.endDate && d > this.endDate) d = this.endDate\r\n return this.setDefaultTime(new Date(d.getTime()))\r\n },\r\n clickStep(a) {\r\n let d = new Date(this.dt.getTime())\r\n if (this.x.face == 'year') {\r\n d = $.dateAdd(d, 'y', 10 * a)\r\n } else if (this.x.face == 'month') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'date') {\r\n d = $.dateAdd(d, 'M', a)\r\n } else if (this.x.face == 'week') {\r\n d = $.dateAdd(d, 'y', a)\r\n }\r\n this.dt = d\r\n },\r\n clickPopYear(y) {\r\n y = y || (this.dt.getFullYear() - 4)\r\n if (y < 1000) y = 1000\r\n this.headPopYear = Array.from(Array(10)).map((v, i) => y + i)\r\n },\r\n clickPopYearItem(year) {\r\n let d = new Date(this.dt.getTime())\r\n d.setFullYear(year)\r\n this.dt = d\r\n this.headPopYear = null\r\n },\r\n clickPopYearStep(a) {\r\n let r = this.headPopYear\r\n let y = a < 0 ? r[0] - 10 : r[r.length - 1] + 1\r\n this.clickPopYear(y)\r\n },\r\n mousewheelPopYear(e) {\r\n this.clickPopYearStep(e.wheelDelta > 0 ? -1 : 1)\r\n },\r\n clickPopMonth() {\r\n this.headPopMonth = Array.from(Array(12)).map((v, i) => i + 1)\r\n },\r\n clickPopMonthItem(month) {\r\n let m = this.dt.getMonth()\r\n this.dt = $.dateAdd(this.dt, 'M', month - 1 - this.dt.getMonth())\r\n this.headPopMonth = null\r\n },\r\n clickItem(e, item) {\r\n if (item.disabled) return\r\n if (this.x.current !== undefined) {\r\n this.dt = this.fixDate(item.date)\r\n }\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n if (!this.hasTime)\r\n this.callback(item.value)\r\n },\r\n clickNow() {\r\n this.callback(this.fixDate(new Date()))\r\n },\r\n clickConfirm(s) {\r\n let d = this.dt\r\n let f = this.focusDate\r\n this.callback(this.fixDate(new Date(f.getFullYear(), f.getMonth(), f.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())))\r\n },\r\n callback(v) {\r\n if (typeof v === 'object') {\r\n v = this.fm(v)\r\n }\r\n this.x.success && this.x.success(v)\r\n },\r\n clickHour(e, v) {\r\n this.dt.setHours(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.hour.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickMinute(e, v) {\r\n this.dt.setMinutes(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.minute.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickSecond(e, v) {\r\n this.dt.setSeconds(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.second.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n fm(a) {\r\n return $.dateFormat(typeof a === 'string' ? $.dateParse(a, this.formatter) : a, this.formatter)\r\n },\r\n isHourDisabled(v) {\r\n let n = this.minHour\r\n let m = this.maxHour\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isMinuteDisabled(v) {\r\n let n = this.minMinute\r\n let m = this.maxMinute\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isSecondDisabled(v) {\r\n let n = this.minSecond\r\n let m = this.maxSecond\r\n return (n && n > v) || (m && m < v)\r\n },\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n formatter() {\r\n return this.x.format || 'yyyy-MM-dd'\r\n },\r\n hasTime() {\r\n return /[Hms]/.test(this.formatter)\r\n },\r\n onlyTime() {\r\n return this.hasTime && !/[yMd]/.test(this.formatter)\r\n },\r\n focusValue() {\r\n let d = this.focusDate\r\n return d && this.fm(d)\r\n },\r\n focusDate() {\r\n let c = this.x.current\r\n if (c) {\r\n return $.dateParse(c, this.x.format)\r\n } else if (!this.x.value && this.x.success) {\r\n return this.x.format && this.dt\r\n }\r\n },\r\n beginDate() {\r\n return this.x.minValue && $.dateParse(this.x.minValue, this.formatter)\r\n },\r\n endDate() {\r\n return this.x.maxValue && $.dateParse(this.x.maxValue, this.formatter)\r\n },\r\n focusHour() {\r\n return this.x.format.includes('H') && this.dt.getHours()\r\n },\r\n focusMinute() {\r\n return this.x.format.includes('m') && this.dt.getMinutes()\r\n },\r\n focusSecond() {\r\n return this.x.format.includes('s') && this.dt.getSeconds()\r\n },\r\n minHour() {\r\n if (this.beginDate) {\r\n let d = this.beginDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n maxHour() {\r\n if (this.endDate) {\r\n let d = this.endDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n minMinute() {\r\n if (this.minHour === this.dt.getHours()) {\r\n return this.beginDate.getMinutes()\r\n }\r\n },\r\n maxMinute() {\r\n if (this.maxHour === this.dt.getHours()) {\r\n return this.endDate.getMinutes()\r\n }\r\n },\r\n minSecond() {\r\n if (this.minMinute === this.dt.getMinutes()) {\r\n return this.beginDate.getSeconds()\r\n }\r\n },\r\n maxSecond() {\r\n if (this.maxMinute === this.dt.getMinutes()) {\r\n return this.endDate.getSeconds()\r\n }\r\n },\r\n headYear() {\r\n let y = this.dt.getFullYear()\r\n if (this.x.face === 'year') {\r\n y = this.dt.getFullYear() - (this.dt.getFullYear() % 10)\r\n y += ' - ' + (y + 9)\r\n }\r\n return $.loc.ps($.loc.calendar.y, y)\r\n },\r\n headMonth() {\r\n return $.loc.calendar.monthname[this.dt.getMonth()]\r\n },\r\n bodyList() {\r\n return this.x.face === 'year' ? this.bodyListYear : this.x.face === 'month' ? this.bodyListMonth :\r\n this.x.face === 'week' ? this.bodyListWeek : this.bodyListDate\r\n },\r\n bodyListYear() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear() - (this.dt.getFullYear() % 10) - 1\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setFullYear(y)\r\n for (let i = 0; i < 12; i++) {\r\n let v = y + i\r\n let g = {\r\n value: v,\r\n text: v,\r\n date: new Date(b.getTime()),\r\n pad: i == 0 || i == 11,\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n r.push(g)\r\n b.setFullYear(b.getFullYear() + 1)\r\n }\r\n return r\r\n },\r\n bodyListMonth() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 0; i < 12; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: $.loc.calendar.monthname[i],\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 1)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListWeek() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let w = $.dateWeek(this.dt)\r\n let y = w[0]\r\n let b = $.dateWeekLast(y)\r\n let c = $.dateWeekFirst(y)\r\n let d = c[2]\r\n for (let i = 1, l = b[1]; i <= l; i++) {\r\n let v = this.fm(d)\r\n let g = {\r\n text: i,\r\n value: y + '-' + $.strPad(i),\r\n date: new Date(d.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v,\r\n title: $.loc.ps($.loc.calendar.from_to, $.dateFormat(d, 'yyyy-MM-dd'), $.dateFormat($.dateAdd(d, 'd', 6),\r\n 'yyyy-MM-dd'))\r\n }\r\n d.setDate(d.getDate() + 7)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListDate() {\r\n let b = new Date(this.dt.getTime())\r\n let c = b.getMonth()\r\n let d = new Date(b.getTime())\r\n let f = this.focusValue\r\n let fd = f && $.dateFormat($.dateParse(f, this.x.format), 'yyyy-MM-dd')\r\n let fn = this.beginDate && $.dateFormat(this.beginDate, 'yyyy-MM-dd')\r\n let fm = this.endDate && $.dateFormat(this.endDate, 'yyyy-MM-dd')\r\n let cell = []\r\n b.setDate(1)\r\n d.setDate(new Date(b.getFullYear(), c + 1, 0).getDate())\r\n let g = 7 - (this.weekday(b) + d.getDate()) % 7\r\n if (g && g < 7)\r\n d.setDate(d.getDate() + g)\r\n if (this.weekday(b) > 0)\r\n b.setDate(1 - this.weekday(b))\r\n if (this.x.pad) {\r\n g = 1 + (d.getTime() - b.getTime()) / 86400000\r\n g < 42 && d.setDate(d.getDate() + 42 - g)\r\n }\r\n while (b <= d) {\r\n let v = this.fm(b)\r\n let fv = $.dateFormat(b, 'yyyy-MM-dd')\r\n let t = {\r\n text: b.getDate(),\r\n value: v,\r\n date: new Date(b.getTime()),\r\n pad: b.getMonth() !== c,\r\n disabled: (fn && fn > fv) || (fm && fm < fv) ? true : false,\r\n focus: fd === fv,\r\n }\r\n cell.push(t)\r\n b.setDate(b.getDate() + 1)\r\n }\r\n return cell\r\n },\r\n bodyListHour() {\r\n return this.enableHour ? $.arrayNumber(this.enableHour) : Array.from(Array(24).keys())\r\n },\r\n bodyListMinute() {\r\n return this.enableMinute ? $.arrayNumber(this.enableMinute) : Array.from(Array(60).keys())\r\n },\r\n bodyListSecond() {\r\n return this.enableSecond ? $.arrayNumber(this.enableSecond) : Array.from(Array(60).keys())\r\n },\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-calendar-dialog {\r\n line-height: 1.5;\r\n --w-datepicker-dialog-width: 260px;\r\n --w-datepicker-dialog-time-width: 66px;\r\n width: calc(var(--w-datepicker-dialog-width) + calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0)));\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime {\r\n --w-datepicker-dialog-width: 2px;\r\n --w-datepicker-dialog-time-height: 254px;\r\n }\r\n\r\n .w-calendar-dialog.z-hastime .w-calendar-head,\r\n .w-calendar-dialog.z-hastime .w-calendar-body {\r\n box-sizing: border-box;\r\n width: calc(var(--w-datepicker-dialog-width) - 2px);\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-head {\r\n box-sizing: border-box;\r\n width: var(--w-datepicker-dialog-width);\r\n }\r\n\r\n .w-calendar-dialog .w-calendar-body {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-calendar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-calendar-head,\r\n .w-calendar-foot {\r\n height: 36px;\r\n padding: 0 5px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-pop {\r\n padding: 0 10px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-blank {\r\n display: none;\r\n flex: 1;\r\n }\r\n\r\n .w-calendar-head-month {\r\n margin-left: 3px;\r\n }\r\n\r\n .w-calendar-body {\r\n display: grid;\r\n }\r\n\r\n .w-calendar-date .w-calendar-body,\r\n .w-calendar-week .w-calendar-body {\r\n grid-template-columns: repeat(7, 1fr);\r\n }\r\n\r\n .w-calendar-body {\r\n grid-template-columns: repeat(4, 1fr);\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n\r\n .w-calendar-dialog .w-calendar-month .w-calendar-body,\r\n .w-calendar-dialog .w-calendar-year .w-calendar-body {\r\n min-height: 120px;\r\n }\r\n\r\n .w-calendar-item {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .w-calendar-item,\r\n .w-calendar-daytitle {\r\n text-align: center;\r\n padding: 5px;\r\n cursor: default;\r\n }\r\n\r\n .w-calendar-item:not(.z-ds):not(.z-on):hover,\r\n .w-calendar-head-year-item:hover {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-calendar-item.z-on {\r\n background: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n \r\n .w-calendar-item.z-ds {\r\n background: #f9f9f9;\r\n }\r\n\r\n .w-calendar-item.z-ds,\r\n .w-calendar-item.z-pad {\r\n color: #999;\r\n }\r\n\r\n .w-calendar-item-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-calendar-foot {\r\n position: relative;\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n position: static;\r\n height: var(--w-datepicker-dialog-time-height);\r\n }\r\n\r\n .w-calendar-time {\r\n position: absolute;\r\n top: 0;\r\n bottom: 35px;\r\n right: 0;\r\n width: calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0));\r\n border-left: 1px solid #ddd;\r\n }\r\n \r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n border-left: 0;\r\n }\r\n\r\n .w-calendar-time-th,\r\n .w-calendar-time-item {\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-time-th {\r\n line-height: 36px;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-time-item {\r\n height: 30px;\r\n border: 0;\r\n }\r\n\r\n .w-calendar-time-item.z-on,\r\n .w-calendar-head-year-item.z-on {\r\n background: var(--w--focus-light-color);\r\n }\r\n\r\n .w-calendar-head-year-item {\r\n height: 24px;\r\n line-height: 24px;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-head .f-i {\r\n font-size: 20px;\r\n color: #aaa;\r\n }\r\n\r\n .w-calendar-head .f-i:hover {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-calendar-time-body .w-scroll-cont {\r\n padding: 94px 0;\r\n }\r\n \r\n .w-calendar-time-body .w-button.z-ds {\r\n background: #fff;\r\n color: #aaa;\r\n }\r\n \r\n .w-calendar-button-now,\r\n .w-calendar-button-confirm {\r\n padding: 2px 10px;\r\n cursor: pointer;\r\n }\r\n</style>\n","import { render } from \"./Calendar.vue?vue&type=template&id=7377352c\"\nimport script from \"./Calendar.vue?vue&type=script&lang=js\"\nexport * from \"./Calendar.vue?vue&type=script&lang=js\"\n\nimport \"./Calendar.vue?vue&type=style&index=0&id=7377352c&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n export default {\r\n name: 'w-tab',\r\n }\r\n</script>\r\n\r\n","import script from \"./Tab.vue?vue&type=script&lang=js\"\nexport * from \"./Tab.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n Teleport,\r\n mergeProps\r\n } from 'vue'\r\n import View from './View.vue'\r\n import Pop from './Pop.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n const O = {},\r\n T = true,\r\n F = false,\r\n N = null\r\n\r\n const _dialogSnapHooks = {\r\n t: 'tb',\r\n r: 'rl',\r\n b: 'bt',\r\n l: 'lr',\r\n c: 'cc',\r\n tl: '14',\r\n tr: '23',\r\n rt: '21',\r\n rb: '34',\r\n bl: '41',\r\n br: '32',\r\n lt: '12',\r\n lb: '43',\r\n '-t': 'tb',\r\n '-r': 'rl',\r\n '-b': 'bt',\r\n '-l': 'lr',\r\n '-c': 'cc',\r\n '-tl': '11',\r\n '-tr': '22',\r\n '-rt': '22',\r\n '-rb': '33',\r\n '-bl': '44',\r\n '-br': '33',\r\n '-lt': '11',\r\n '-lb': '44',\r\n }\r\n\r\n const _dialogSnap = function(a) {\r\n let b = a && (a.position || a)\r\n return typeof b === 'string' && b.split(',').map(v => _dialogSnapHooks[v] || v).join()\r\n }\r\n\r\n export default {\r\n name: 'w-dialog',\r\n mixins: [View],\r\n props: ['title', 'snap', 'autoHide', 'context', 'prong', 'independent', 'timeout',\r\n 'cover', 'position', 'local', 'fullScreen', 'dropClass', 'dropPosition', 'dropHover',\r\n ],\r\n emits: ['close', 'click:cover'],\r\n watch: {\r\n position(v) {\r\n this.axis()\r\n },\r\n },\r\n data() {\r\n return {\r\n isDialog: true,\r\n animateClass: '',\r\n snapClass: '',\r\n keepHover: false,\r\n hoverTimer: null,\r\n hoverMove: null,\r\n closed: false,\r\n animating: false,\r\n isDeactivated: false,\r\n _pos: null,\r\n snapStyle: null,\r\n maxHeight: null,\r\n }\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n methods: {\r\n getKey() {\r\n return null\r\n },\r\n getSrc() {\r\n let src = this.x.src\r\n if (!src) return ''\r\n const feat = this.getOptions()\r\n if (feat.args)\r\n src = $.urlFormat(src, feat.args)\r\n if (src.includes('$'))\r\n src = $.urlFormat(src, this.x.data, this.x)\r\n return src\r\n },\r\n _dft_pos() {\r\n let width = this.el().offsetWidth\r\n let height = this.el().offsetHeight\r\n return {\r\n left: Math.ceil((document.documentElement.clientWidth - width) / 2),\r\n top: Math.ceil((document.documentElement.clientHeight - height) / 2),\r\n width, height\r\n };\r\n },\r\n getLocalElem() {\r\n let c = this.getCommander()\r\n return c && c.el()\r\n },\r\n snapTargetElem() {\r\n let d = this.x.snap && this.x.snap.target\r\n if (typeof d === 'string') {\r\n let e = this.ownerView.find(d)\r\n return e && e.snapElem()\r\n } else if (typeof d === 'function') {\r\n return d()\r\n } else if (d) {\r\n return d.isWidget ? d.snapElem() : d\r\n } else {\r\n return this.x.local ? this.getLocalElem() : this.defaultSnapTargetElem\r\n }\r\n },\r\n snapCls(a) {\r\n let d = this.snapTargetElem()\r\n let r = this._pos\r\n if (d) {\r\n $.classAdd(d, 'z-drop', a)\r\n if (r && r.type) {\r\n var m = 'z-mag-' + (r.mag_t ? 't' : r.mag_l ? 'l' : r.mag_b ? 'b' : 'r')\r\n $.classAdd(this.el(), m + ' z-snap z-snap-' + r.type, a)\r\n $.classAdd(d, m, a)\r\n }\r\n }\r\n },\r\n fixSnapStyle() {\r\n let r = this._pos\r\n let s = {}\r\n if (r.type) {\r\n if (r.pix_r) {\r\n s.right = r.right\r\n } else {\r\n s.left = r.left\r\n }\r\n if (r.pix_b) {\r\n s.pix_b = true\r\n s.bottom = r.bottom + (r.layBottom || 0)\r\n } else {\r\n s.top = r.top + (r.layTop || 0)\r\n }\r\n s.type = r.type\r\n } else {\r\n s = r\r\n }\r\n this.snapStyle = s\r\n },\r\n axis() {\r\n let el = this.el()\r\n if (!el || this.x.fullScreen) return;\r\n let f = this.x.position || false\r\n let c = this.x.local\r\n let d = this.x.snap || O\r\n let g = this.snapTargetElem()\r\n // 如果有指定 snap,采用 snap 模式\r\n let w = el.offsetWidth\r\n let h = el.offsetHeight\r\n let r\r\n if (f == 'c') f = null\r\n if (typeof f === 'string') { // 八方位浮动的起始位置\r\n let e = f.charAt(0)\r\n if (e == '-') {\r\n e = f.charAt(1)\r\n }\r\n r = $.snap(w, h, c && g, _dialogSnap(f), this._fitpos, d.indent, c && g)\r\n let lp = $.q(`.w-dialog-ani-position-${f}:not([id=\"${this.uid}\"]):last`)[0]\r\n if (lp && r.type != 'rl' && r.type != 'lr') { // 同一浮动位置出现的对话框,实现排队效果\r\n let lc = lp.getBoundingClientRect()\r\n if (r.pix_b) r.layBottom = r.mag_t ? -(lc.bottom + 5) : (document.documentElement.clientHeight - lc.top + 5)\r\n else r.layTop = r.mag_b ? -(document.documentElement.clientHeight - lc.top + 5) : lc.bottom + 5\r\n }\r\n } else if (g) {\r\n r = $.snap(w, h, g, _dialogSnap(d) || this.defaultSnapPosition || f, this._fitpos, d.indent != N ? d\r\n .indent : (this.x.prong && -9), c && g)\r\n }\r\n if (!r)\r\n r = this._dft_pos()\r\n this._pos && this.snapCls(F)\r\n this._pos = r\r\n this.fixSnapStyle()\r\n // 八方位浮动效果\r\n if (f) {\r\n if (typeof f === 'string')\r\n this.animateClass = 'w-dialog-ani-position-' + f\r\n } else {\r\n //this.animateClass = 'f-animated f-ani-dropIn'\r\n }\r\n this.snapCls()\r\n if (this.x.position && typeof this.x.position === 'string') {\r\n this.setMaxHeight('100%')\r\n } else {\r\n if (r.type) {\r\n this.checkOutScreen()\r\n } else {\r\n this.setMaxHeight('100%')\r\n }\r\n }\r\n },\r\n setPosition(s) {\r\n this.x.position = s\r\n },\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.bottom < 0) {\r\n this.setMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.setMaxHeight(c.height + c.top)\r\n }\r\n },\r\n close() {\r\n if (this.closed) return\r\n this.closeRelease()\r\n this.trigger('close')\r\n this.ownerView.removeDialog(this.uid)\r\n },\r\n closeRelease() {\r\n this.x.autoHide && this.listenHide(F)\r\n this.snapCls(F)\r\n this.closed = true\r\n let f = this.x.position\r\n if (f && typeof f === 'string' && this.el()) { // 当前窗口关闭后,有相同position的dialog依次移动补空位\r\n let ps = $.q(`~.w-dialog-ani-position-${f}`, this.el())\r\n let indent = this.el().offsetHeight + 5\r\n ps.each((i, el) => {\r\n el.classList.add(`w-dialog-ani-indent`)\r\n let s = $(el).snapStyle\r\n let t = s.type.charAt(0)\r\n if (s.top != null) {\r\n s.top += (t == 1 || t == 2 ? -1 : 1) * indent\r\n } else if (s.bottom != null) {\r\n s.bottom += (t == 3 || t == 4 ? -1 : 1) * indent\r\n }\r\n setTimeout(() => el.classList.remove(`w-dialog-ani-indent`), 200)\r\n })\r\n }\r\n },\r\n // 绑定鼠标监听 /@a -> 为 false 时解除监听\r\n listenHide(a) {\r\n if (a === F) {\r\n this.setListenHide(a)\r\n } else {\r\n setTimeout(() => {\r\n if (!this.closed) {\r\n this.setListenHide(a)\r\n }\r\n }, 100) // 延时处理,避免出现后立即消失的情况\r\n }\r\n },\r\n hoverOver() {\r\n clearTimeout(this.hoverTimer)\r\n this.hoverTimer = null\r\n },\r\n setListenHide(a) {\r\n let d = this.x.dropHover\r\n let n = a ? 'addEventListener' : 'removeEventListener'\r\n let evs = $.br.mobile ? ['touchend'] : ['mousedown', $.br.firefox ? 'DOMMouseScroll' : 'mousewheel']\r\n evs.forEach(v => document[n](v, this.bind('listenHideClose', (e) => {\r\n if (!this.closed && (e.target.classList.contains('w-dialog-cover') || !(this.hasBubble(e.target) || (!\r\n this.x\r\n .independent && (this.commander.isWidget ? this.commander.hasBubble(e.target) : this.commander\r\n .contains(e.target)))))) {\r\n if (e.target.id == this.id + 'cvr') e.stopPropagation()\r\n this.close()\r\n }\r\n }), T))\r\n window.plus && plus.key[n]('backbutton', this.bind('close'), F)\r\n if (d) {\r\n let o = d === T ? (this.x.snap && this.x.snap.target ? this.snapTargetElem() : $.el(this.commander)) : $.el(d)\r\n let hvOver = this.bind('listenHideHoverOver', e => {\r\n clearTimeout(this.hoverTimer), this.hoverTimer = null\r\n });\r\n let hvMove = this.bind('listenHideHoverMove', e => {\r\n if (!o.contains(e.target) && !this.hasBubble(e.target) && !this.keepHover) {\r\n if (!this.hoverTimer)\r\n this.hoverTimer = setTimeout(this.close, 300)\r\n } else\r\n hvOver()\r\n });\r\n [o, this.el()].forEach(v => v[n]('mouseenter', hvOver))\r\n document[n]('mousemove', hvMove)\r\n }\r\n },\r\n setMaxHeight(h) {\r\n this.maxHeight = h\r\n },\r\n getOptions() {\r\n return this.ownerView.getDialogOptions(this.uid)\r\n },\r\n getCommander() {\r\n let o = this.getOptions()\r\n return (o && o.commander) || this.context || this.ownerView\r\n },\r\n resolve(v) {\r\n let o = this.getOptions()\r\n o && o.resolve && o.resolve(v)\r\n },\r\n reject(v) {\r\n let o = this.getOptions()\r\n o && o.reject && o.reject(v)\r\n },\r\n html_slots() {\r\n let prong\r\n let r = this._pos\r\n if (this.x.prong && r) {\r\n let m = r.inner ? (r.mag_b ? 'b' : r.mag_t ? 't' : r.mag_l ? 'l' : 'r') : (r.mag_b ? 't' : r.mag_t ? 'b' : r\r\n .mag_l ? 'r' : 'l')\r\n prong = h('div', {\r\n class: 'w-dialog-prong z-' + m,\r\n }, [\r\n h('i', {\r\n class: 'w-dialog-prong-out f-arw f-arw-' + m + '5'\r\n }),\r\n h('i', {\r\n class: 'w-dialog-prong-in f-arw f-arw-' + m + '4'\r\n }),\r\n ])\r\n }\r\n return [prong || [], this.html_scroll_slots()]\r\n },\r\n html() {\r\n let to = this.x.local ? this.getLocalElem() : '#w-dfish-pops'\r\n let cover = this.x.cover && !this.closed && !this.isDeactivated ? h('div', {\r\n ref: 'cover',\r\n class: 'w-dialog-cover f-abs-full',\r\n onclick: e => this.trigger('click:cover', e)\r\n }) : null\r\n return [\r\n cover ? (to ? h(Teleport, {to}, cover) : cover) : [],\r\n // 套一层w-dialog-teleport的原因是为了让对话框里面的 $(this) 能正确返回\r\n to ? h('div', {class: 'w-dialog-teleport', id: this.uid + 'teleport'}, h(Teleport, {to}, this.html_self(true))) : this.html_self(true),\r\n this.html_pops()\r\n ]\r\n }\r\n },\r\n computed: {\r\n commander() {\r\n return this.getCommander()\r\n },\r\n args() {\r\n let o = this.getOptions()\r\n return o && o.args\r\n },\r\n defaultSnapTargetElem() {\r\n //implement\r\n },\r\n defaultSnapPosition() {\r\n return 'cc'\r\n },\r\n html_class() {\r\n return ['w-vertical', this.animateClass, this.snapClass, {\r\n 'z-hide': this.isDeactivated,\r\n 'z-full': this.x.fullScreen,\r\n }]\r\n },\r\n html_style() {\r\n if (this.x.fullScreen) {\r\n return {\r\n width: '100%',\r\n height: '100%',\r\n top: 0,\r\n left: 0,\r\n }\r\n } else {\r\n let f = this.x.position\r\n let n = this.snapStyle\r\n let s = {}\r\n if (f && typeof f === 'object') {\r\n $.extend(s, f)\r\n if (n) {\r\n if (s.top == null && s.bottom == null) $.extend(s, $.lodash.pick(n, 'top', 'bottom'))\r\n if (s.left == null && s.right == null) $.extend(s, $.lodash.pick(n, 'left', 'right'))\r\n }\r\n } else {\r\n if (n) $.extend(s, n)\r\n }\r\n for (let k in s) {\r\n s[k] = $.unitSize(s[k])\r\n }\r\n if (this.maxHeight) {\r\n s.maxHeight = $.unitSize(this.maxHeight)\r\n }\r\n return s\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.x.local) {\r\n $.q(this.getLocalElem()).addClass('f-dialog-local-wrap')\r\n }\r\n this.$nextTick(() => {\r\n this.x.autoHide && this.listenHide(T)\r\n setTimeout(this.axis)\r\n const observe = (o) => {\r\n if (this.closed || this.animateClass || !this.el()) return\r\n this.axis()\r\n }\r\n new ResizeObserver(observe).observe(this.el())\r\n if (this.x.timeout) {\r\n setTimeout(this.close, this.x.timeout)\r\n }\r\n })\r\n },\r\n unmounted() {\r\n if (!this.closed) {\r\n this.closeRelease()\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-dialog {\r\n display: inline-flex;\r\n position: absolute;\r\n box-shadow: 0px 0px 8px #bbb;\r\n z-index: 100;\r\n box-sizing: border-box;\r\n --w-dialog-ani-duration: 200ms;\r\n }\r\n\r\n .w-dialog.z-hide {\r\n display: none;\r\n }\r\n\r\n .w-dialog.z-full {\r\n transform: none;\r\n transition: none;\r\n }\r\n\r\n .w-dialog-cover {\r\n background: rgba(0, 0, 0);\r\n opacity: .35;\r\n z-index: 100;\r\n animation: w-dialog-cover-ani 200ms;\r\n }\r\n \r\n @keyframes w-dialog-cover-ani {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: .35;\r\n }\r\n }\r\n\r\n .w-dialog-prong {\r\n position: absolute;\r\n }\r\n\r\n .w-dialog-prong .f-arw {\r\n position: absolute;\r\n margin: 0\r\n }\r\n\r\n .w-dialog-prong.z-b {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n bottom: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-in {\r\n top: 0;\r\n left: 1px;\r\n border-top-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-out {\r\n top: 0;\r\n left: 0;\r\n border-top-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-t {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n top: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-in {\r\n bottom: 0;\r\n left: 1px;\r\n border-bottom-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-out {\r\n bottom: 0;\r\n left: 0;\r\n border-bottom-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-l {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n left: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-in {\r\n right: 0;\r\n top: 1px;\r\n border-right-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-out {\r\n right: 0;\r\n top: 0;\r\n border-right-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-r {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n right: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-in {\r\n left: 0;\r\n top: 1px;\r\n border-left-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-out {\r\n left: 0;\r\n top: 0;\r\n border-left-color: #d5d5d5\r\n }\r\n \r\n .w-dialog-teleport {\r\n display: none;\r\n }\r\n\r\n .w-dialog-ani-position-br,\r\n .w-dialog-ani-position-bl,\r\n .w-dialog-ani-position-b {\r\n transform: translateY(-100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position--br,\r\n .w-dialog-ani-position--bl,\r\n .w-dialog-ani-position--b {\r\n transform: translateY(0);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position-tr,\r\n .w-dialog-ani-position-tl,\r\n .w-dialog-ani-position-t {\r\n transform: translateY(100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position-lt,\r\n .w-dialog-ani-position-lb,\r\n .w-dialog-ani-position-l {\r\n transform: translateX(100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position-rt,\r\n .w-dialog-ani-position-rb,\r\n .w-dialog-ani-position-r {\r\n transform: translateX(-100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position--rt,\r\n .w-dialog-ani-position--rb,\r\n .w-dialog-ani-position--r {\r\n transform: translateX(0);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-indent {\r\n transition: top var(--w-dialog-ani-duration), bottom var(--w-dialog-ani-duration);\r\n }\r\n \r\n .w-dialog-move-helper {\r\n position: fixed;\r\n background: #fff;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n opacity: 0;\r\n z-index: 101;\r\n }\r\n</style>\n","import script from \"./Dialog.vue?vue&type=script&lang=js\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js\"\n\nimport \"./Dialog.vue?vue&type=style&index=0&id=7be3cf9d&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-toggle',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['collapsedIcon', 'expandedIcon', 'expanded', 'align', 'valign'],\r\n methods: {\r\n x_default() {\r\n return {\r\n expanded: true,\r\n valign: 'middle',\r\n }\r\n },\r\n toggle(e = true) {\r\n let exp = typeof e === 'boolean' ? e : !this.x.expanded\r\n this.x.expanded = exp\r\n $.q(this.el()).nextUntil('.w-toggle').toggle(exp)\r\n },\r\n html_slots() {\r\n let exp = this.x.expanded\r\n let ico = exp ? this.x.expandedIcon : this.x.collapsedIcon\r\n return [ico && h(Img, {\r\n src: ico,\r\n class: 'w-toggle-icon',\r\n }), h('div', {class: 'w-toggle-main'}, this.$slots.default())]\r\n }\r\n },\r\n computed: {\r\n html_props() {\r\n let exp = this.x.expanded\r\n return {\r\n class: ['w-horizontal f-pointer',\r\n {\r\n 'z-expanded': exp,\r\n 'z-collapse': !exp,\r\n },\r\n this.html_align_class],\r\n onclick: this.toggle\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-toggle-icon {\r\n margin-right: 5px;\r\n flex-shrink: 0;\r\n }\r\n</style>\r\n","import script from \"./Toggle.vue?vue&type=script&lang=js\"\nexport * from \"./Toggle.vue?vue&type=script&lang=js\"\n\nimport \"./Toggle.vue?vue&type=style&index=0&id=431717dc&lang=css\"\n\nexport default script","<template>\r\n <w-confirm>\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-dialog-move>\r\n <div class=\"w-alert-move\" w-width=\"*\"><div class=\"w-alert-title\" v-if=\"title\">{{title}}</div></div>\r\n </w-dialog-move>\r\n <i class=\"w-alert-close f-i f-i-close\" @click=\"cancel\"></i>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\" valign=\"middle\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot>\r\n <div w-width=\"*\" class=\"w-alert-text\" v-html=\"text\"></div>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar :class=\"['w-alert-buttonbar', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\"\r\n :ownproperty=\"true\"/>\r\n <w-button class=\"w-alert-button\" text=\"取消\" @click=\"cancel\" :ownproperty=\"true\"/>\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-confirm>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import TemplateAlert from './TemplateAlert.vue'\r\n \r\n export default {\r\n mixins: [TemplateAlert],\r\n data() {\r\n return {\r\n defaultIconType: 'question'\r\n }\r\n },\r\n methods: {\r\n save(e) {\r\n $.dialog(e).cueYes()\r\n },\r\n cancel(e) {\r\n $.dialog(e).cueNo()\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import { render } from \"./TemplateConfirm.vue?vue&type=template&id=2a9563f5\"\nimport script from \"./TemplateConfirm.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateConfirm.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\r\n <w-dialog class=\"f-datesheet\">\r\n <w-buttonbar class=\"f-datesheet-bbr\" align=\"between\" height=\"52\" style=\"padding:0 10px\">\r\n <w-button text=\"取消\" @click=\"clickCancel\"></w-button>\r\n <w-submitbutton text=\"确定\" @click=\"clickOK\"></w-submitbutton>\r\n </w-buttonbar>\r\n <w-horizontal height=\"*\">\r\n <w-vertical width=\"*\" v-if=\"hasYear\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">年</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusYear\" :min-value=\"minYear\" :max-value=\"maxYear\" :keep-index=\"true\"\r\n :data=\"{mode: 'year'}\">\r\n <w-option v-for=\"y in yearList\" :key=\"y\" :value=\"y\" :text=\"y\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMonth\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">月</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMonth\" :min-value=\"minMonth\" :max-value=\"maxMonth\" :keep-index=\"true\"\r\n :data=\"{mode: 'month'}\">\r\n <w-option v-for=\"m in monthList\" :key=\"m\" :value=\"m\" :text=\"dfish.strPad(m+1)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasDate\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">日</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusDate\" :min-value=\"minDate\" :max-value=\"maxDate\" :keep-index=\"true\"\r\n :data=\"{mode: 'date'}\">\r\n <w-option v-for=\"d in dateList\" :key=\"d\" :value=\"d\" :text=\"dfish.strPad(d)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasHour\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">时</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusHour\" :min-value=\"minHour\" :max-value=\"maxHour\" :keep-index=\"true\">\r\n <w-option v-for=\"h in hourList\" :key=\"h\" :value=\"h\" :text=\"dfish.strPad(h)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMinute\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">分</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMinute\" :min-value=\"minMinute\" :max-value=\"maxMinute\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"i in minuteList\" :key=\"i\" :value=\"i\" :text=\"dfish.strPad(i)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasSecond\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">秒</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusSecond\" :min-value=\"minSecond\" :max-value=\"maxSecond\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"s in secondList\" :key=\"s\" :value=\"s\" :text=\"dfish.strPad(s)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasWeek\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">周</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusWeek\" :min-value=\"minWeek\" :max-value=\"maxWeek\" :keep-index=\"true\">\r\n <w-option v-for=\"w in weekList\" :key=\"w.value\" :value=\"w.value\" :text=\"w.text\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n </w-horizontal>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n let f = this.data.format || 'yyyy-MM-dd'\r\n let d = this.data && this.data.value ? $.dateParse(this.data.value, f) : new Date\r\n let nd = this.data && this.data.minValue && $.dateParse(this.data.minValue, f)\r\n let xd = this.data && this.data.maxValue && $.dateParse(this.data.maxValue, f)\r\n d = $.numRange(d, nd, xd)\r\n let focusYear = d.getFullYear()\r\n let focusWeek, weekFirst, weekLast\r\n if (f.includes('w')) {\r\n focusWeek = $.dateWeek(d)[1]\r\n weekFirst = $.dateWeekFirst(focusYear)\r\n weekLast = $.dateWeekLast(focusYear)\r\n }\r\n return {\r\n focusYear,\r\n focusMonth: d.getMonth(),\r\n focusDate: d.getDate(),\r\n focusHour: d.getHours(),\r\n focusMinute: d.getMinutes(),\r\n focusSecond: d.getSeconds(),\r\n startYear: $.numRange(d.getFullYear() - 30, nd && nd.getFullYear()),\r\n endYear: $.numRange(d.getFullYear() + 30, null, xd && xd.getFullYear()),\r\n monthDays: new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\r\n focusWeek,\r\n weekFirst,\r\n weekLast,\r\n minTime: nd,\r\n maxTime: xd,\r\n format: f\r\n }\r\n },\r\n watch: {\r\n focusYear(y) {\r\n if (y == this.yearList[0] && y > 1030) {\r\n this.startYear = $.numRange(this.startYear - 30, this.minYear)\r\n } else if (y == this.yearList[this.yearList.length - 1]) {\r\n this.endYear = $.numRange(this.endYear + 30, null, this.maxYear)\r\n }\r\n this.monthDays = new Date(y, this.focusMonth + 1, 0).getDate()\r\n if (this.hasWeek) {\r\n this.weekFirst = $.dateWeekFirst(y)\r\n this.weekLast = $.dateWeekLast(y)\r\n }\r\n },\r\n focusMonth(m) {\r\n this.monthDays = new Date(this.focusYear, m + 1, 0).getDate()\r\n }\r\n },\r\n methods: {\r\n weekText(w) {\r\n \r\n },\r\n clickCancel() {\r\n $.close(this)\r\n },\r\n clickOK() {\r\n if (this.data.success) {\r\n let d = this.hasWeek ? $.dateParse(`${this.focusYear}-${this.focusWeek}`, 'yyyy-ww') :\r\n new Date(this.focusYear, this.focusMonth, this.focusDate, this.focusHour, this.focusMinute, this.focusSecond)\r\n this.data.success($.dateFormat(d, this.format))\r\n }\r\n $.close(this)\r\n },\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n yearList() {\r\n return Array.from(Array(this.endYear - this.startYear + 1)).map((v, i) => this.startYear + i)\r\n },\r\n monthList() {\r\n return Array.from(Array(12)).map((v, i) => i)\r\n },\r\n dateList() {\r\n return Array.from(Array(this.monthDays)).map((v, i) => i + 1)\r\n },\r\n hourList() {\r\n return Array.from(Array(24)).map((v, i) => i)\r\n },\r\n minuteList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n secondList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n weekList() {\r\n let d = this.weekFirst[2]\r\n return Array.from(Array(this.weekLast[1])).map((v, i) => {\r\n let startDate = d\r\n let endDate = $.dateAdd(d, 'd', 6)\r\n d = $.dateAdd(d, 'd', 7)\r\n return {\r\n value: i + 1,\r\n text: `${$.strPad(i + 1)} (${$.dateFormat(startDate, 'MM.dd')} - ${$.dateFormat(endDate, 'MM.dd')})`,\r\n }\r\n })\r\n },\r\n hasYear() {\r\n return this.format.includes('y')\r\n },\r\n hasMonth() {\r\n return this.format.includes('M')\r\n },\r\n hasDate() {\r\n return this.format.includes('d')\r\n },\r\n hasHour() {\r\n return this.format.includes('H')\r\n },\r\n hasMinute() {\r\n return this.format.includes('m')\r\n },\r\n hasSecond() {\r\n return this.format.includes('s')\r\n },\r\n hasWeek() {\r\n return this.format.includes('w')\r\n },\r\n minYear() {\r\n return this.minTime && this.hasYear && this.minTime.getFullYear()\r\n },\r\n maxYear() {\r\n return this.maxTime && this.hasYear && this.maxTime.getFullYear()\r\n },\r\n minMonth() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && this.minTime.getMonth()\r\n },\r\n maxMonth() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && this.maxTime.getMonth()\r\n },\r\n minDate() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) && this.minTime.getDate()\r\n },\r\n maxDate() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) && this.maxTime.getDate()\r\n },\r\n minHour() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && this.minTime.getHours()\r\n },\r\n maxHour() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && this.maxTime.getHours()\r\n },\r\n minMinute() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && this\r\n .minTime.getMinutes()\r\n },\r\n maxMinute() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && this\r\n .maxTime.getMinutes()\r\n },\r\n minSecond() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && (!\r\n this.hasMinute || this.minMinute == this.focusMinute) && this.minTime.getSeconds()\r\n },\r\n maxSecond() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && (!\r\n this.hasMinute || this.maxMinute == this.focusMinute) && this.maxTime.getSeconds()\r\n },\r\n minWeek() {\r\n\r\n },\r\n maxWeek() {\r\n\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-datesheet {\r\n background: #f9f9f9;\r\n }\r\n\r\n .f-datesheet-ok {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .f-datesheet-head {\r\n height: 36px;\r\n border-top: 1px solid #ddd;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n</style>\n","import { render } from \"./TemplateDateSheet.vue?vue&type=template&id=e271d2a6\"\nimport script from \"./TemplateDateSheet.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateDateSheet.vue?vue&type=script&lang=js\"\n\nimport \"./TemplateDateSheet.vue?vue&type=style&index=0&id=e271d2a6&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps,\r\n } from 'vue'\r\n\r\n const bindCache = {}\r\n\r\n export default {\r\n props: ['data', 'width', 'height', 'colspan', 'rowspan', 'ownproperty', 'orientUid'],\r\n data() {\r\n return {\r\n isWidget: true,\r\n uid: this.orientUid || $.uid(),\r\n runtimeX: {},\r\n events: null,\r\n }\r\n },\r\n created() {\r\n $.vueMap.set(this.uid, this)\r\n let dftX = this.getDefaultProp()\r\n let cuid = $.config_uid\r\n let watchs = {}\r\n this.x = new Proxy(this.runtimeX, {\r\n get: (obj, prop) => {\r\n if (prop in obj) return obj[prop]\r\n if (this.$props[prop] !== undefined) return this.$props[prop]\r\n if (cuid != $.config_uid) {\r\n cuid = $.config_uid\r\n dftX = this.getDefaultProp()\r\n }\r\n return dftX[prop]\r\n },\r\n set: (obj, prop, newval) => {\r\n if (!watchs[prop]) {\r\n watchs[prop] = this.$watch(prop, (v) => obj[prop] = v)\r\n }\r\n obj[prop] = newval\r\n return true\r\n }\r\n })\r\n },\r\n unmounted() {\r\n $.vueMap.delete(this.uid)\r\n },\r\n methods: {\r\n x_default() {\r\n //implement\r\n },\r\n getDefaultProp() {\r\n let dftopt\r\n if (!this.ownproperty) {\r\n let b = this.$options.name\r\n dftopt = $.x.defaultOptions[b]\r\n if ($.dfclsCache[b]) {\r\n let c = this.$options.name + (this.$attrs.class ? ' ' + this.$attrs.class : '')\r\n let d = $.dfclsCache[b]\r\n let z\r\n for (let k in d) {\r\n $.idsAll(c, k, ' ') && $.mergeDeep(z || (z = {}), d[k])\r\n }\r\n z && (dftopt = $.extendDeep(z, dftopt))\r\n }\r\n }\r\n return {\r\n ...this.x_default(),\r\n ...dftopt,\r\n }\r\n },\r\n cmd(o, ...args) {\r\n return this.exec(o, args)\r\n },\r\n exec(cmd, args, feat) {\r\n if (typeof cmd === 'string') {\r\n cmd = $.vm(this).commands[cmd]\r\n }\r\n if (cmd) {\r\n if (typeof cmd === 'function') {\r\n return cmd(args, this)\r\n } else if (typeof cmd === 'object') {\r\n let ncm = $.extendDeep({}, cmd)\r\n feat && $.merge(ncm, feat)\r\n if ($.cmdHooks[ncm.type]) {\r\n return $.cmdHooks[ncm.type].call(this, ncm, args)\r\n }\r\n }\r\n }\r\n },\r\n trigger(ev, ...args) {\r\n let type = ev.runType || ev.type || ev\r\n let f = this.getOn(type)\r\n if (f) {\r\n if (typeof ev === 'string') {\r\n ev = {type, uid: this.uid}\r\n }\r\n if (Array.isArray(f)) f.forEach(n => n(ev, ...args))\r\n else f(ev, ...args)\r\n }\r\n this.events && this.events.fireEvent(type)\r\n },\r\n addEvent(type, fn, once) {\r\n if (!this.events) this.events = new $.EventListener(this)\r\n this.events.addEvent(type, fn, once)\r\n },\r\n fireEvent(type, args) {\r\n return this.events && this.events.fireEvent(type, args)\r\n },\r\n removeEvent(type, fn) {\r\n this.events && this.events.removeEvent(type, fn)\r\n },\r\n getOn(type) {\r\n let n = 'on' + type.charAt(0).toUpperCase() + type.slice(1)\r\n return (this.$.vnode.props && this.$.vnode.props[n]) || this.x[n]\r\n },\r\n getKey() {\r\n return this.$.vnode.key\r\n },\r\n closest(a) {\r\n let p = this\r\n let b = typeof a\r\n do {\r\n if (b === 'string') {\r\n if ($.idsAny(a, p.$options.name))\r\n return p\r\n } else if (b === 'function') {\r\n if (a(p))\r\n return p\r\n }\r\n } while (p = p.$parent)\r\n },\r\n query(sel) {\r\n if (this.el()) {\r\n let o = $.q(sel, this.el())[0]\r\n return o && $(o)\r\n }\r\n },\r\n contains(a) {\r\n return a && this.el().contains(a.isWidget ? a.el() : a)\r\n },\r\n el(a) {\r\n return a && /\\W/.test(a) ? $.q(a, this.el())[0] : document.getElementById(this.uid + (a || ''))\r\n },\r\n next() {\r\n const e = this.el().nextElementSibling\r\n return e && $(e)\r\n },\r\n prev() {\r\n const e = this.el().previousElementSibling\r\n return e && $(e)\r\n },\r\n createEvent(name, data) {\r\n let e = new CustomEvent(name)\r\n e.value = data\r\n e.uid = this.uid\r\n return e\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n scrollIntoView(opt = false) {\r\n const next = (dir, fn) => {\r\n let c = 'scroll' + dir.toUpperCase()\r\n let t = this.closest(p => p.x && p.x[c] && (p.scrollState() || false)[dir])\r\n if (t) {\r\n t.scrollTo(this, opt.y || 'auto', opt.x || 'auto', opt.ease == null ? 200 : opt.ease, opt.divide, fn)\r\n } else\r\n fn && fn()\r\n }\r\n next('y', () => next('x', opt.success))\r\n },\r\n hasBubble(a) {\r\n if (!a) return false\r\n if (this.contains(a)) return true\r\n let d = $.dialog(a)\r\n if (d && d.commander) return this.hasBubble(d.commander)\r\n },\r\n bind(name, fn) {\r\n let c = bindCache[this.uid] || (bindCache[this.uid] = {})\r\n if (!c[name]) c[name] = fn || this[name]\r\n return c[name]\r\n },\r\n slots_children(name) {\r\n return $.slotsChildren(this.$slots, name)\r\n },\r\n html_icon(src, cls, onclick) {\r\n let font = src.startsWith('.') && !src.includes('/')\r\n return font ? h('i', {\r\n class: [cls, src.replace(/\\./g, '')],\r\n onclick,\r\n }) : h('img', {\r\n src,\r\n onclick,\r\n class: cls\r\n })\r\n },\r\n slot(name = 'default') {\r\n return this.$slots[name] ? this.$slots[name]() : []\r\n },\r\n html_slots() {\r\n return this.$slots\r\n },\r\n html_self(a) {\r\n return h(this.tagName || 'div', a ? mergeProps(this.html_attrs, this.html_props, this.$attrs) : mergeProps(this\r\n .html_attrs, this.html_props), this.html_slots())\r\n },\r\n html() {\r\n return this.html_self()\r\n }\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n ownerView() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n pubParent() {\r\n return this.providePubParent && $.idsAny(this.$options.pubParentName, this.providePubParent.$options.name) &&\r\n this.providePubParent\r\n },\r\n parentNode() {\r\n return $(this.el().parentElement)\r\n },\r\n tagName() {\r\n return 'div'\r\n },\r\n html_attrs() {\r\n return {\r\n id: this.uid,\r\n class: [this.$options.name, this.html_class],\r\n style: [{\r\n width: this.x.width && $.unitSize(this.x.width),\r\n height: this.x.height && $.unitSize(this.x.height),\r\n '--w-grid-colspan': !this.x.colspan || this.x.colspan == -1 ? null : `span ${this.x.colspan}`,\r\n '--w-grid-rowspan': !this.x.rowspan || this.x.rowspan == -1 ? null : `span ${this.x.rowspan}`,\r\n }, this.html_style],\r\n 'w-key': this.getKey(),\r\n 'w-width': this.x.width === '*' ? '*' : null,\r\n 'w-height': this.x.height === '*' ? '*' : null,\r\n }\r\n },\r\n html_style() {\r\n // implements\r\n },\r\n html_class() {\r\n // implements\r\n },\r\n html_props() {\r\n // implements\r\n },\r\n html_binds() {\r\n return mergeProps(this.html_attrs, this.html_props, this.$attrs)\r\n }\r\n },\r\n render() {\r\n return this.html()\r\n }\r\n }\r\n</script>\n","import script from \"./WidgetAbs.vue?vue&type=script&lang=js\"\nexport * from \"./WidgetAbs.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n\r\n export default {\r\n name: 'w-tr',\r\n pubParentName: 'w-tbody,w-thead',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['rowIndex', 'expanded', 'children'],\r\n inject: ['_provideTable', 'providePubParent', 'provideInBody', '_provideTBody', 'provideLevel', 'provideParentTR'],\r\n provide() {\r\n return {\r\n provideParentTR: this,\r\n provideLevel: this.provideLevel + 1,\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n return $.hasChild(this.$slots, 'rows')\r\n },\r\n isDisplay() {\r\n if (!this.provideParentTR) return true\r\n let p = this\r\n while (p = p.provideParentTR) {\r\n if (!p.isExpanded()) return false\r\n }\r\n return true\r\n },\r\n isExpanded() {\r\n return this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentTR) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n toggle(exp, fn) {\r\n let leaf = this.query('.w-leaf')\r\n if (leaf) {\r\n leaf.toggle(exp, fn)\r\n } else {\r\n this.setExpanded(exp)\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n html_slots() {\r\n let ri = this.rowIndex\r\n let rs = this.pubParent.rows\r\n let ci = 0\r\n return this.slots_children().map(td => {\r\n if (rs[ri] && rs[ri][ci]) {\r\n ci += rs[ri][ci]\r\n }\r\n td.dfishColIndex = ci\r\n if (td.props) {\r\n if (td.props.rowspan > 1) {\r\n for (let j = 1, r; j < td.props.rowspan; j++) {\r\n r = rs[ri + j] || (rs[ri + j] = {})\r\n r[ci] = $.number(td.props.colspan) || 1\r\n }\r\n }\r\n if (td.props.colspan > 1) ci += td.props.colspan - 1\r\n }\r\n ci++;\r\n return td\r\n })\r\n },\r\n html() {\r\n if (this.x.children && Array.isArray(this.x.children) && this._provideTBody && this._provideTBody.$slots.row) {\r\n return [this.html_self(true), this.x.children.map(item => this._provideTBody.$slots.row({item}))]\r\n }\r\n return this.$slots.row ? [this.html_self(true), this.$slots.row()] : this.html_self()\r\n },\r\n },\r\n computed: {\r\n tagName() {\r\n return 'tr'\r\n },\r\n level() {\r\n return this.provideLevel + 1\r\n },\r\n isEscape() {\r\n return this.pubParent.x.escape\r\n },\r\n inCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n if (this.provideInBody) {\r\n return {\r\n class: {\r\n 'z-on': this.inCurrent,\r\n 'z-expanded': this.isExpanded(),\r\n 'f-hide': !this.isDisplay()\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: this.onmouseleave\r\n }\r\n }\r\n \r\n }\r\n },\r\n mounted() {\r\n if (this.inCurrent) this.pubParent.viewCurrent(this)\r\n }\r\n\r\n }\r\n</script>\n","import script from \"./TableTR.vue?vue&type=script&lang=js\"\nexport * from \"./TableTR.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Dialog.vue?vue&type=style&index=0&id=7be3cf9d&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PageBar.vue?vue&type=style&index=0&id=a0cae56c&lang=css\"","import lodash from 'lodash'\r\nimport jquery from 'jquery'\r\nimport http from 'axios'\r\nimport Qs from 'qs'\r\n\r\nimport br from './util/browser.js'\r\nimport uid from './util/uid.js'\r\nimport loc from './util/loc/zh-CN.js'\r\nimport {number, isNumber, numRange, numAdd, numFormat, numDecimal} from './util/number.js'\r\nimport {string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strFormat, strHighlight} from './util/str.js'\r\nimport {dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast} from './util/date.js'\r\nimport {rngSelection, rngElement, rngCursor, rngCursorOffset, rngText} from './util/range.js'\r\nimport {el, html, append, prepend, before, after, replaceWith} from './util/elem.js'\r\nimport {bcr, offset, snap, snapTo} from './util/snap.js'\r\nimport {EventListener, eventX, eventY, moveup} from './util/event.js'\r\n\r\n\r\nfunction $(o) {\r\n if (!o || o.isWidget) return o\r\n if (typeof o === 'string' || o.uid) return $.vueMap.get(o.uid || o)\r\n if (o instanceof Event) {\r\n o = o.currentTarget || o.target\r\n }\r\n if (o.$el) {\r\n o = o.$el\r\n if (o.nodeType === 3)\r\n o = o.nextElementSibling\r\n }\r\n if (lodash.isElement(o)) {\r\n do {\r\n if (o.id) {\r\n if ($.vueMap.has(o.id)) return $.vueMap.get(o.id)\r\n let d = $.strTo(o.id, ':') + ':'\r\n if($.vueMap.has(d)) return $.vueMap.get(d)\r\n }\r\n } while (o = o.parentNode)\r\n }\r\n while (o && !o.isWidget) o = o.$parent\r\n return o || $.docView\r\n}\r\n\r\nObject.assign($, {\r\n x: {defaultOptions: {}},\r\n vueMap: new Map(),\r\n dfclsCache: {},\r\n q: jquery, lodash, http,\r\n br, loc, uid, EventListener, eventX, eventY,\r\n number, isNumber, numRange, numAdd, numFormat, numDecimal,\r\n string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strFormat, strHighlight,\r\n dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast,\r\n rngSelection, rngElement, rngCursor, rngCursorOffset, rngText,\r\n el, html, append, prepend, before, after, replaceWith,\r\n moveup, bcr, offset, snap, snapTo,\r\n})\r\n\r\n// a继承b的属性。不覆盖a的既有同名属性\r\n$.extend = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c)\r\n if (!(k in a) && c[k] !== undefined) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n// 递归继承\r\n$.extendDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null && c.constructor === Object) {\r\n for (let i in c) {\r\n if (!(i in a)) {\r\n if (c[i] != null && c[i].constructor === Object) {\r\n $.extendDeep(a[i] = {}, c[i])\r\n } else\r\n a[i] = c[i]\r\n } else if (a[i] != null && a[i].constructor === Object)\r\n $.extendDeep(a[i], c[i])\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.merge = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n$.mergeDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null) {\r\n for (let k in c) {\r\n if (typeof a[k] === 'object')\r\n $.mergeDeep(a[k], c[k])\r\n else\r\n a[k] = c[k]\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.cloneDeep = lodash.cloneDeep\r\n\r\n$.eval = function(str, opt) {\r\n if (opt) {\r\n let keys = Object.keys(opt)\r\n return Function(keys.map(k => k), `return (${str})`)(...keys.map(k => opt[k]))\r\n }\r\n return Function(`return (${str})`)()\r\n}\r\n\r\n// a -> object, b -> concat?\r\n$.array = function(a, b) {\r\n return Array.isArray(a) ? (b ? a.concat() : a) : a == null || a === '' ? [] : typeof a === 'string' ? a.split(',') : [a]\r\n}\r\n// 把数组内的文本转为数字\r\n$.arrayNumber = function(a) {\r\n return $.array(a).map(v => parseFloat(v))\r\n}\r\n\r\n// 数字转为像素单位。如果自带单位则保留单位\r\n$.unitSize = (size, allowMinus) => size == null || size === '' ? '' : size === '*' ? '' : (size == -1 && !allowMinus)|| size == 'auto' ?\r\n 'auto' : isNaN(size) ? size : `${size}px`\r\n\r\n// 添加一个ID\r\n$.idsAdd = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s || n\r\n for (var i = 0, n = n.split(p), l = n.length; i < l; i++) {\r\n if ((p + s + p).indexOf(p + n[i] + p) < 0) s += (s ? p : '') + n[i];\r\n }\r\n return s\r\n}\r\n// 删除一个ID\r\n$.idsRemove = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s\r\n for (var i = 0, e, n = n.split(p), l = n.length; i < l; i++) {\r\n do {\r\n e = (p + s + p).indexOf(p + n[i] + p);\r\n if (e > -1) s = s.slice(0, e ? e - 1 : e) + s.slice(e + n[i].length + (e ? 0 : 1));\r\n } while (s && e > -1);\r\n }\r\n return s\r\n}\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAny = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return false\r\n if (s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) > -1) return true\r\n return false\r\n}\r\n\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAll = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = s == null ? '' : '' + s\r\n n = n == null ? '' : '' + n\r\n p = p == null ? ',' : '' + p\r\n if (!s) return false\r\n if (!n || s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) < 0) return false\r\n return true\r\n}\r\n\r\n// 添加一个class /@ a -> el, b -> className, c -> add?(默认添加)\r\n$.classAdd = function(a, b, c) {\r\n if (!a) return\r\n let s = a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $.strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b[i], ' ')\r\n } else\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b, ' ')\r\n a.className = s\r\n}\r\n\r\n// 删除一个class /@ a -> el, b -> className\r\n$.classRemove = function(a, b) {\r\n if (!a) return\r\n if (b.indexOf(' ') > -1) {\r\n $.classAdd(a, b, false)\r\n } else\r\n a.className = $.idsRemove(a.className, b, ' ')\r\n}\r\n\r\n// 是否包含任意一个class(多个是“或”的关系) /@ a -> el or className\r\n$.classAny = function(a, b) {\r\n if (!a) return\r\n let s = typeof a === 'string' ? a : a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n if ($.idsAny(s, b[i], ' ')) return i + 1\r\n } else\r\n return $.idsAny(s, b, ' ')\r\n}\r\n\r\n// url 编码\r\n$.urlEncode = (a) => {\r\n return a == null ? '' : encodeURIComponent(typeof a === 'object' ? JSON.stringify(a) : a)\r\n}\r\n \r\n// url 解码\r\n$.urlDecode = (a) => {\r\n return a == null ? '' : decodeURIComponent(a.replace(/\\+/g, ' '))\r\n}\r\n// 替换带$变量的url,如 \"a.sp?id=$0\" /@a -> url, b -> array/object\r\n$.urlFormat = (a, ...args) => {\r\n args.forEach((v, i) => v != null && (a = $.strFormat(a, v, true, i < args.length - 1)))\r\n return a\r\n}\r\n$.urlParam = function(a, b) {\r\n var r = a.split('#'),\r\n u = r[0],\r\n h = r[1];\r\n if (typeof b === 'string') {\r\n return b === '#' ? (h || '') : $.urlDecode((u.match(new RegExp('[\\\\?&]' + b + '=([^&]*)'), 'g') || A)[1]);\r\n } else if (b && typeof b === 'object') {\r\n for (var k in b) {\r\n if (k === '#') {\r\n h = b[k];\r\n } else {\r\n var c = $.urlEncode(b[k]),\r\n d = new RegExp('\\\\b' + k + '=[^&]*');\r\n u = d.test(u) ? u.replace(d, k + '=' + c) : u + (u.indexOf('?') < 0 ? '?' : '&') + k + '=' + c;\r\n }\r\n }\r\n } else if (arguments.length === 1) {\r\n var r = {},\r\n c = u.split('?');\r\n c = c[c.length - 1];\r\n\r\n if (c) {\r\n c = c.split('&');\r\n for (var d = 0, e, f, g; d < c.length; d++) {\r\n e = c[d].indexOf('=');\r\n if (e == -1) continue;\r\n f = c[d].substring(0, e);\r\n g = c[d].substring(e + 1);\r\n r[f] = $.urlDecode(g.replace(/\\+/g, ' '));\r\n }\r\n }\r\n return r\r\n }\r\n return u + (h ? '#' + h : '')\r\n}\r\n// 把相对路径url和baseURL拼接为完整地址\r\n$.urlServer = function(src, ...args) {\r\n if (!src) return\r\n if (!(src.startsWith('http://') || src.startsWith('https://'))) {\r\n let b = lodash.get($.x, 'http.baseURL')\r\n if (b) {\r\n src = b + (b.endsWith('/') ? '' : '/') + src\r\n }\r\n }\r\n return $.strFormat(src, ...args)\r\n}\r\n\r\n$.urlComplete = function(a) {\n\tif (a.indexOf('data:') !== 0) {\n\t\ta = $.urlServer(a)\r\n let r = lodash.get($.x, 'http.params')\n\t\tr && (a = $.urlParam(a, r))\n\t}\n\treturn a\n},\r\n\t// @a -> src, b -> options\n$.download = function(a, b) {\r\n a = $.urlComplete(a)\n\tif (br.app) {\n\t\t$.wifiConfirm(function() {\n\t\t\tlet dtask = plus.downloader.createDownload(a, b)\n\t\t\tplus.nativeUI.showWaiting()\n\t\t\tdtask.addEventListener(\"statechanged\", function(task, status) {\n\t\t\t\tswitch (task.state) {\n\t\t\t\t\tcase 1: // 开始\n\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_start)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 4: // 下载完成\n\t\t\t\t\t\tif (status == 200) {\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_complete)\n\t\t\t\t\t\t\tplus.runtime.openFile(task.filename, {}, function(e) {\n\t\t\t\t\t\t\t\tplus.nativeUI.alert($.loc.download_cannotopen)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_fail + status)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplus.nativeUI.closeWaiting()\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t})\n\t\t\tdtask.start()\n\t\t})\n\t} else {\r\n\t\tlet link = document.createElement('a')\r\n //link.download = true\r\n link.href = a\r\n if ($.x.downloadTarget) {\r\n link.target = $.x.downloadTarget\r\n }\r\n link.click()\r\n link.remove()\n\t}\n}\r\n\r\n\n$.wifiConfirm = function(a, b) {\n\t$.x.wifiConfirm && plus.networkinfo.getCurrentType() != 3 ? plus.nativeUI.confirm($.loc.connection_not_wifi, function(e){e.index === 0 && a.call(b)}, {buttons:[$.loc.confirm, $.loc.cancel]}) : a.call(b)\n}\r\n\r\n$.vm = (a) => {\r\n if (!a) return $.docView\r\n if (typeof a === 'string') {\r\n if ($.vueMap.has(a)) {\r\n a = $.vueMap.get(a)\r\n if (a.isView) return a\r\n }\r\n }\r\n a = $(a)\r\n if (a == null) return\r\n return a.isView ? a : a.ownerView\r\n}\r\n\r\n$.dialog = (a) => {\r\n if (!a) return\r\n a = $.vm(a)\r\n while (a && !a.isDialog) a = a.ownerView\r\n return a\r\n}\r\n\r\n$.close = (a) => {\r\n let d = $.dialog(a)\r\n d && d.close()\r\n}\r\n\r\n$.closePopup = () => {\r\n document.dispatchEvent(new Event('mousedown'))\r\n}\r\n\r\n$.previewVideo = function(src) {\r\n $.vm().previewVideo($.urlServer(src))\n}\n\t// @img -> image array, options -> {current:i,loop:true,indicator: 'number'}\n$.previewImage = function(imgs, options) {\r\n imgs = $.array(imgs).map(v => $.urlServer(v))\n\tif (br.app) {\n\t\tplus.nativeUI.previewImage(imgs, options)\n\t} else {\r\n $.vm().previewImage(imgs, options)\n\t}\n}\r\n\r\n$.slotsChildren = function(slots, name = 'default') {\r\n let r = []\r\n const getChildren = (d) => {\r\n d && d.forEach(v => {\r\n if (typeof v.type === 'symbol') {\r\n Array.isArray(v.children) && getChildren(v.children)\r\n } else\r\n r.push(v)\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n$.hasChild = function(slots, name = 'default') {\r\n let r = false\r\n const getChildren = (d) => {\r\n lodash.forEach(d, v => {\r\n if (typeof v.type === 'symbol') {\r\n Array.isArray(v.children) && getChildren(v.children)\r\n } else {\r\n return !(r = true)\r\n }\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n// @fn(得到0-1的参数), ms -> milliseconds, count -> 帧数\r\n$.ease = function(fn, ms, count) {\n\tfn(0)\n\tif (ms == null)\n\t\tms = 200\n\tif (count == null)\n\t\tcount = Math.ceil(ms / 10)\n\tlet p = Math.ceil(ms / count)\n\tlet\tcr = 0\n\tlet d1 = new Date().getTime()\n\tlet it = setInterval(function() {\n\t\t\tlet d2 = new Date().getTime()\n\t\t\tlet ri = d2 - d1\n\t\t\tlet st = Math.floor(ri / p)\n\t\t\tif (cr != st) {\n\t\t\t\tif (st < count) {\n\t\t\t\t\tfn((- Math.cos((st / count) * Math.PI) / 2) + 0.5)\n\t\t\t\t} else {\n\t\t\t\t\tclearInterval(it)\n\t\t\t\t\tfn(1)\n\t\t\t\t}\n\t\t\t\tcr = st\n\t\t\t}\n\t\t}, Math.max(p - 10, 5))\n\treturn it\n},\r\n\r\n// @a -> widget|HTMLElement, y -> {print: T/F(是否打印), head: \"head标签\", input2text: T/F(把表单值转为文本)\n$.print = function(a, y) {\n\t\tlet d = a.el ? a.el() : (a.$el || a), w = d.ownerDocument, b = $.q('link[media=print]', w), c = [];\r\n y = y || {};\n\t\t$.q('meta', w).each(function() {c.push(this.outerHTML)});\n\t\t(b.length > 0 ? b : $.q('link', w)).each(function() {c.push('<link rel=\"stylesheet\" type=\"text/css\" href=\"' + this.getAttribute('href') + '\"/>');});\n\t\t$.q('style', w).each(function() {c.push(this.outerHTML)});\n\t\tlet s = d.outerHTML;\r\n\t\ts = s.replace(/<div[^>]+w-scroll[^>]+>/gi, function($0) {return $0.replace(/height: \\w+/gi, '');});\n\t\t$.q(':text,:password,textarea,select', d).each(function() {\n\t\t\tlet h = this.outerHTML, v, r;\r\n\t\t\tif (y.input2text) {\n\t\t\t\tlet g = $(this), w = 'auto';\n\t\t\t\tif (g && g.isFormWidget) {\n\t\t\t\t\th = g.el('main').outerHTML;\n\t\t\t\t\tv = g.formText();\n\t\t\t\t} else\n\t\t\t\t\tv = this.value;\n\t\t\t\tv = '<div class=\"f-oh w-input-s\">' + v + '</div>';\n\t\t\t} else {\n\t\t\t\tv = h.replace('value=\"' + this.defaultValue + '\"', () => 'value=\"' + this.value + '\"');\n\t\t\t}\r\n\t\t\ts = s.replace(h, () => v + (r || ''));\n\t\t});\n\t\t$.q(':radio,:checkbox', d).each(function() {\n\t\t\tif (y.input2text) {\n\t\t\t\tlet g = $(this);\n\t\t\t\tif (g && g.isFormWidget) {\n\t\t\t\t\ts = s.replace(g.el().outerHTML, () => g.isChecked ? '<div class=\"f-wdbr\">' + g.text + '</div>' : '');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet h = this.outerHTML, n = h.replace(/ checked=\"\"/, '');\n\t\t\t\tif (this.checked)\n\t\t\t\t\tn = n.replace(/>$/, ' checked>');\n\t\t\t\ts = s.replace(h, n);\n\t\t\t}\n\t\t});\n\t\tif (y.input2text) {\n\t\t\t$.q('input[type=hidden]', d).each(function() {\n\t\t\t\tvar g = $(this);\n\t\t\t\tif (g && g.isFormWidget && g.$options.name != 'w-hidden') {\n\t\t\t\t\ts = s.replace(g.el('main').outerHTML, () => '<div class=\"f-wdbr f-print-input-text\">' + g.formText() + '</div>');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t$.q('.w-input-placeholder', d).each(function() {\n\t\t\ts = s.replace(this.outerHTML, '');\n\t\t});\r\n const printf = function() {\r\n \tlet w = window.frames.wPrintFrame;\r\n \tif (!w) {\r\n \t\t$.q('<div class=f-none><iframe name=wPrintFrame></iframe></div>').appendTo(document.body);\r\n \t\tw = window.frames.wPrintFrame;\r\n \t}\r\n \treturn w;\r\n }\r\n w = y.print !== false ? printf() : window.open();\n\t\td = w.document;\n\t\td.open('text/html', 'replace');\n\t\td.write('<!doctype html><html class=f-print><head><meta charset=utf-8><title>' + $.loc.print_preview +\n\t\t\t'</title><style>.f-print .w-f-remark{height:auto;line-height:inherit}.f-print-input-text{line-height: var(--w-label-min-height);}.w-input{display: flex!important;}.w-input-s{word-break:normal;white-space:normal}.w-input-s:empty:before{content:\"\\xa0\"}</style><script>var $={e:function(){}}</script>' + c.join('') +\n\t\t\t(y.head || '') + '</head><body><div class=x-print>' + s + '</div>' +\n\t\t\t(y.print !== false ? '<script>window.print();window.close()</script>' : '') +\n\t\t\t'</body></html>');\n\t\td.close();\n\t\treturn d;\n\t}\n\r\n\r\nconst queryEncode = function(data, config) {\r\n if (!data || data instanceof FormData) return data\r\n let contentType = $.lodash.get(config, 'headers[\"Content-Type\"]') || $.lodash.get($.x, 'http.headers.post[\"Content-Type\"]')\r\n return contentType == 'application/x-www-form-urlencoded' ? Qs.stringify(data, {arrayFormat: 'repeat'}) : data\r\n}\r\n\r\n$.ajax = function(cmd, args) {\r\n let src = args ? $.urlFormat(cmd.src, args) : cmd.src\r\n if (!src) {\r\n return Promise.reject('$.ajax(): The first parameter must be an object, and the property(src) of the object is required.')\r\n }\r\n let ctx = cmd.context || $.docView\r\n let lock = ctx.ajaxLock\r\n let config = $.lodash.pick(cmd, ['headers', 'responseType'])\r\n if (cmd.download) {\r\n $.extend(config, {responseType: 'blob'})\r\n }\r\n lock && lock()\r\n cmd.loading && ctx.exec({type: 'Loading'}, null, cmd.loading)\r\n return (cmd.data ? $.http.post(src, queryEncode(cmd.data, config), config) : $.http.get(src, config))\r\n .then(res => {\r\n lock && lock(false)\r\n let data = res.data\r\n if (cmd.filter) data = cmd.filter(res, ctx)\r\n if (cmd.success) cmd.success(data, ctx)\r\n if (cmd.complete) cmd.complete(res, ctx)\r\n cmd.loading && ctx.cmd({type: 'Loading', hide: true})\r\n if (cmd.download) {\r\n let disposition = res.headers['content-disposition']\r\n if (disposition) {\r\n let fileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length))\r\n let blob = new Blob([res.data])\r\n let link = document.createElement('a')\r\n link.href = URL.createObjectURL(blob)\r\n link.download = fileName\r\n link.click()\r\n link.remove()\r\n } else {\r\n console.error('download: none content-disposition')\r\n }\r\n }\r\n return Promise.resolve(data)\r\n }).catch(ex => {\r\n lock && lock(false)\r\n if (cmd.error) cmd.error(ex, ctx)\r\n if (cmd.complete) cmd.complete(ex.response, ctx, ex)\r\n cmd.loading && ctx.exec({type: 'Loading'}, null, cmd.loading)\r\n return Promise.reject(ex)\r\n })\r\n}\r\n\r\n$.extend($.ajax, {\r\n get(src, config) {\r\n return $.http.get(src, config).then(res => new Promise(resolve => resolve(res.data)))\r\n },\r\n post(src, data, config) {\r\n return $.http.post(src, queryEncode(data, config), config).then(res => new Promise(resolve => resolve(res.data)))\r\n }\r\n}, http)\r\n\r\n$.cmdHooks = {\r\n Submit(cmd, args) {\r\n let src = $.urlFormat(cmd.src, args)\r\n const vm = $.vm(this)\r\n const submit = () => new Promise(rsv => this.$nextTick(() => {\r\n let d = cmd.validate || false\r\n let f = vm.getFormList(d.range || cmd.range)\r\n let g = d.range && d.range != cmd.range ? vm.getFormList(cmd.range) : f\r\n if (vm.valid(f, d.group)) {\r\n cmd.context = cmd.context || this\r\n let post = vm.getPostData(g)\r\n cmd.data = cmd.data ? $.extend(cmd.data, post) : post\r\n $.ajax(cmd, args).then(data => rsv(data))\r\n }\r\n }))\r\n return submit()\r\n },\r\n Ajax(cmd, args) {\r\n cmd.context = cmd.context || this\r\n return $.ajax(cmd, args)\r\n },\r\n Dialog(cmd, args) {\r\n if (cmd.title) cmd.title = $.strFormat(cmd.title, args)\r\n return $.vm(this).cmdDialog(cmd, args, this)\r\n },\r\n Alert(cmd, args) {\r\n if (cmd.text) cmd.text = $.strFormat(cmd.text, args)\r\n return $.vm(this).cmdDialog(cmd, args, this)\r\n },\r\n Confirm(cmd, args) {\r\n if (cmd.text) cmd.text = $.strFormat(cmd.text, args)\r\n return $.vm(this).cmdDialog(cmd, args, this)\r\n },\r\n Tip(cmd, args) {\r\n if (cmd.text) cmd.text = $.strFormat(cmd.text, args)\r\n return $.vm(this).cmdDialog(cmd, args, this)\r\n },\r\n Menu(cmd, args) {\r\n return $.vm(this).cmdDialog(cmd, args, this)\r\n },\r\n Loading(cmd, args) {\r\n return $.vm(this).cmdDialog(cmd, args, this)\r\n },\r\n}\r\n\r\n$.isCmd = function(a) {\r\n return a && a.type && $.cmdHooks[a.type]\r\n}\r\n\r\n$.alert = function(text, position, timeout, yes) {\r\n $.docView.cmd(typeof text === 'object' ? {type: 'Alert', title: '操作提示', ...text} : {\r\n type: 'Alert', title: '操作提示', text, position, timeout, yes\r\n })\r\n}\r\n\r\n$.confirm = function(text, yes, no, cover) {\r\n $.docView.cmd(typeof text === 'object' ? {type: 'Confirm', title: '操作提示', ...text} : {\r\n type: 'Confirm', title: '操作提示', text, yes, no, cover\r\n })\r\n}\r\n\r\n// $.directiveHooks = {\r\n// colspan(el, v, n) {\r\n// el.style.gridColumn = !v || v == -1 ? '' : `span ${v}`\r\n// },\r\n// rowspan(el, v, n) {\r\n// el.style.gridRow = !v || v == -1 ? '' : `span ${v}`\r\n// }\r\n// }\r\n\r\n$.config = function(opt) {\r\n $.config_uid = uid() //读取默认配置的地方有缓存,根据这个uid来判断是否刷新缓存\r\n $.mergeDeep($.x, opt)\r\n if (opt.http) {\r\n $.mergeDeep(http.defaults, opt.http)\r\n http.interceptors.response.use(\r\n opt.http.filter,\r\n opt.http.error || function(ex) {\r\n if (ex.response) {\r\n ex.callback = () => $.alert((ex.response.status) + ': ' + ex.config.url)\r\n }\r\n return Promise.reject(ex)\r\n }\r\n )\r\n }\r\n const _dfopt = $.x.defaultOptions\r\n const _dfcls = {}\r\n for (let k in _dfopt) {\r\n if (k.includes('.')) {\r\n let a = $.strFrom(k, '.').replace(/\\./g, ' ')\r\n let b = $.strTo(k, '.');\r\n ($.dfclsCache[b] || ($.dfclsCache[b] = {}))[a] = _dfopt[k]\r\n }\r\n }\r\n}\r\n\r\nwindow.addEventListener('unhandledrejection', (event) => {\r\n if ($.x.catchReject) {\r\n $.x.catchReject(event)\r\n } else {\r\n if (event.reason) {\r\n if (event.reason.callback)\r\n event.reason.callback()\r\n else if (typeof event.reason === 'string')\r\n console.error(event.reason)\r\n }\r\n event.preventDefault()\r\n }\r\n})\r\n\r\nexport default $\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ViewAbs.vue?vue&type=style&index=0&id=273cab06&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ComboBox.vue?vue&type=style&index=0&id=0e4ab116&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import TemplateJigsaw from '../template/TemplateJigsaw.vue'\r\n\r\n\r\n const init_text = $.loc.form.jigsaw_drag_right\r\n\r\n export default {\r\n name: 'w-jigsaw',\r\n mixins: [FormBase],\r\n emits: ['drop', 'click:refresh'],\r\n props: ['big', 'small', 'dropWidth'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: init_text,\r\n locked: false,\r\n isSuccess: false,\r\n isError: false,\r\n dropper: null,\r\n }\r\n },\r\n methods: {\r\n success(text) {\r\n this.text = text\r\n this.locked = true\r\n this.isSuccess = true\r\n this.setThumbLeft()\r\n },\r\n error(text, timeout, fn) {\r\n if (!text) text = ''\r\n this.isError = true\r\n this.warn(true)\r\n this.setThumbLeft(0)\r\n if (timeout) {\r\n this.locked = true\r\n this.text = text + `(${timeout/1000})`\r\n let timer = setInterval(() => {\r\n timeout -= 1000\r\n this.text = text + `(${timeout/1000})`\r\n if (timeout <= 0) {\r\n clearInterval(timer)\r\n this.reset()\r\n fn && fn()\r\n }\r\n }, 1000)\r\n } else {\r\n fn && fn()\r\n }\r\n },\r\n reset() {\r\n this.locked = false\r\n this.isError = false\r\n this.isSuccess = false\r\n this.text = init_text\r\n this.setThumbLeft(0)\r\n },\r\n refresh(e) {\r\n e.runType = 'click:refresh'\r\n this.trigger(e)\r\n },\r\n setThumbLeft(left) {\r\n if (left == null) {\r\n left = $.number(this.$refs.thumb.style.left)\r\n } else {\r\n this.$refs.thumb.style.left = left + 'px'\r\n }\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n let hf = (left + (g / 2)) > (w / 2)\r\n this.$refs.text.style.left = hf ? 0 : (left + g) + 'px'\r\n this.$refs.text.style.right = hf ? (w - left) + 'px' : 0\r\n this.el().classList.remove('z-drag')\r\n $.close(this.dropper)\r\n },\r\n dragstart(e) {\r\n if (!this.isNormal || this.locked) return\r\n this.warn(false)\r\n let a = this.$refs.thumb\r\n let x = $.eventX(e)\r\n let m = this.max()\r\n let n = this.min()\r\n let f = $.number(a.style.left)\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n $.moveup((e) => {\r\n let c = $.eventX(e)\r\n let l = $.numRange(f + c - x, 0, w - g)\r\n a.style.left = l + 'px'\r\n this.$refs.track.style.width = (l + g) + 'px'\r\n this.x.modelValue = Math.floor(Math.floor((m - n) * l / (w - g)))\r\n this.el().classList.add('z-drag')\r\n }, (e, moved) => {\r\n if (moved) a.dispatchEvent(new Event('drop'))\r\n }, e)\r\n },\r\n mouseenter(e) {\r\n if (this.dropper || !this.x.big || this.isSuccess || this.locked) return\r\n this.warn(false)\r\n $.closePopup()\r\n let width = Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width)\r\n let height = Math.ceil(width * (this.x.big.height / this.x.big.width))\r\n this.dropper = this.cmd({\r\n type: 'Dialog',\r\n ownproperty: true,\r\n template: TemplateJigsaw,\r\n width,\r\n height,\r\n autoHide: true,\r\n hoverDrop: true,\r\n context: this,\r\n snap: {\r\n target: () => this.el('main'),\r\n position: 'v'\r\n },\r\n onClose: () => this.dropper = null\r\n })\r\n },\r\n drop(e) {\r\n this.trigger(e, this.x.modelValue)\r\n },\r\n max() {\r\n let v = this.x.maxValue\r\n return v == null ? 100 : v\r\n },\r\n min() {\r\n let v = this.x.minValue\r\n return v == null ? 0 : v\r\n },\r\n thumbWidth() {\r\n return $.bcr(this.$refs.thumb).width\r\n },\r\n mainWidth() {\r\n return $.bcr(this.$refs.main).width\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(), ,\r\n [\r\n h('div', {\r\n ref: 'track',\r\n class: 'w-jigsaw-track',\r\n }),\r\n h('div', {\r\n ref: 'text',\r\n class: 'w-jigsaw-text f-flex-center f-line-1',\r\n }, this.text),\r\n ]\r\n ]\r\n },\r\n html_button() {\r\n return h('button', {\r\n ref: 'thumb',\r\n class: ['w-jigsaw-thumb w-input-bbr f-i', this.isSuccess ? 'f-i-check' :\r\n 'f-i-long-arrow-right'\r\n ],\r\n disabled: this.x.disabled,\r\n onmousedown: this.dragstart,\r\n ondrop: this.drop,\r\n })\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (!this.isSuccess) {\r\n return this.formErr({type: 'jigsaw_required'})\r\n }\r\n }\r\n }\r\n },\r\n html_class() {\r\n return {\r\n 'z-success': this.isSuccess,\r\n }\r\n },\r\n main_prop() {\r\n return {\r\n onmouseenter: this.mouseenter\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw>.w-input {\r\n position: relative;\r\n background: #f8f8f8;\r\n overflow: visible;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-jigsaw-thumb {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n width: 30px;\r\n background: #fff;\r\n box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .w-jigsaw-thumb:hover,\r\n .w-jigsaw.z-drag .w-jigsaw-thumb {\r\n background: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw-text {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 30px;\r\n right: 0;\r\n color: #a9a9a9;\r\n }\r\n\r\n .w-jigsaw-track {\r\n display: none;\r\n position: absolute;\r\n left: -1px;\r\n top: -1px;\r\n bottom: -1px;\r\n background: #e5f3ff;\r\n border: 1px solid transparent;\r\n }\r\n\r\n\r\n .w-jigsaw.z-drag .w-jigsaw-text {\r\n display: none;\r\n }\r\n\r\n .w-jigsaw.z-drag .w-jigsaw-track {\r\n display: block;\r\n border-color: var(--w--focus-color);\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-track {\r\n display: block;\r\n background: #eaffe5;\r\n border-color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-thumb {\r\n background: #24c301;\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-text {\r\n color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-err .w-jigsaw-text {\r\n color: #f00;\r\n }\r\n</style>\r\n","import script from \"./Jigsaw.vue?vue&type=script&lang=js\"\nexport * from \"./Jigsaw.vue?vue&type=script&lang=js\"\n\nimport \"./Jigsaw.vue?vue&type=style&index=0&id=5f202dd8&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import CheckBoxGroup from './CheckBoxGroup.vue'\r\n\r\n export default {\r\n name: 'w-radiogroup',\r\n mixins: [CheckBoxGroup]\r\n }\r\n</script>\r\n","import script from \"./RadioGroup.vue?vue&type=script&lang=js\"\nexport * from \"./RadioGroup.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-vertical',\r\n mixins: [Horizontal],\r\n computed: {\r\n dir() {\r\n return 'v'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n","import script from \"./Vertical.vue?vue&type=script&lang=js\"\nexport * from \"./Vertical.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PickBox.vue?vue&type=style&index=0&id=35b69f8f&lang=css\"","import jquery from 'jquery'\r\n\r\nconst _adjacent_where = ['afterend', 'afterbegin', 'beforebegin', 'beforeend']\nconst _adjacent_query = ['after', 'prepend', 'before', 'append']\r\n// 创建一个div /@ s -> html\nconst _div = function(s) {\n\tlet o = document.createElement('div')\n\tif (s) o.innerHTML = s\n\ttry {return o} catch(e) {return false}\n\tfinally {o = null}\n}\r\nconst frag = function(s) {\n\tlet d = typeof s === 'string' ? _div(s) : s\r\n let f = document.createDocumentFragment()\n\twhile (d.firstChild)\n\t\tf.appendChild(d.firstChild);\n\ttry {return f} catch(e) {return false}\n\tfinally {d = f = null}\n}\r\n\r\nconst el = function(o) {\r\n if (o) {\r\n return o.isWidget ? o.el() : o\r\n }\r\n}\n// o -> el, s -> html string/object, r -> where[`after`, `prepend`, `before`, `append`]\nconst html = function(o, s, r) {\n\tif (r == null) {\n\t\tif (s == null) return o.innerHTML\n\t\ttry {o.innerHTML = s} catch(ex) {\n\t\t\twhile (o.firstChild)\n\t\t\t\to.removeChild(o.firstChild)\n\t\t\thtml(o, s, 3)\n\t\t}\n\t} else {\n\t\tlet b\n\t\tif (typeof s === 'string') {\n\t\t\ttry {\n\t\t\t\to.nodeType === 3 ? jquery(o)[_adjacent_query[r]](s) : o.insertAdjacentHTML(_adjacent_where[r], s)\n\t\t\t} catch (ex) {\n\t\t\t\thtml(o, frag(s), r)\n\t\t\t}\n\t\t} else {\n\t\t\tlet p = r % 2 ? o : o.parentNode\n\t\t\tp && p.insertBefore(s, r === 0 ? o.nextSibling : r === 1 ? o.firstChild : r === 2 ? o : null)\n\t}\n\t}\n}\nconst append = function(o, s) {html(o, s, 3); return o.lastElementChild || o.lastChild}\nconst prepend = function(o, s) {html(o, s, 1); return o.firstElementChild || o.firstChild}\nconst before = function(o, s) {html(o, s, 2); return o.previousElementSibling || o.previousSibling}\nconst after = function(o, s) {html(o, s, 0); return o.nextElementSibling || o.nextSibling}\nconst replaceWith = function(o, s) {\n\tlet a = o.nextSibling\n\tif (a) {\n\t\to.parentNode.removeChild(o)\n\t\treturn before(a, s)\n\t} else {\n\t\tlet p = o.parentNode\n\t\tp.removeChild(o)\n\t\treturn append(p, s)\n\t}\n}\r\n\r\nexport {el, html, append, prepend, before, after, replaceWith}","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-swiper-item',\r\n pubParentName: 'w-swiper',\r\n inject: ['providePubParent'],\r\n mixins: [WidgetBase],\r\n props: ['lazy'],\r\n data() {\r\n return {\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n lazy: true\r\n }\r\n },\r\n html_slots() {\r\n if (this.loaded || !this.lazy) {\r\n return this.$slots\r\n }\r\n if (this.isCurrent) {\r\n this.loaded = true\r\n return this.$slots\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {'z-on': this.isCurrent}\r\n },\r\n isCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./SwiperItem.vue?vue&type=script&lang=js\"\nexport * from \"./SwiperItem.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import WidgetAbs from './WidgetAbs.vue'\r\n \r\n export default {\r\n mixins: [WidgetAbs],\r\n inject: ['provideView']\r\n }\n</script>\n\n","import script from \"./WidgetBase.vue?vue&type=script&lang=js\"\nexport * from \"./WidgetBase.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Switch.vue?vue&type=style&index=0&id=6e279520&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-progress',\r\n mixins: [WidgetBase],\r\n props: ['percent', 'range', 'text'],\r\n methods: {\r\n html_slots() {\r\n let w = $.number(this.x.percent)\r\n return [\r\n this.x.text && h('span', {\r\n class: 'w-progress-text'\r\n }, this.x.text),\r\n h('div', {\r\n class: 'w-progress-gut',\r\n style: {\r\n width: `${w}%`\r\n }\r\n }, h('div', {\r\n class: 'w-progress-bar f-flex f-flex-center',\r\n style: {\r\n width: `${w==0?w:(100*100/w)}%`\r\n }\r\n }, this.x.text && h('span', {\r\n class: 'w-progress-text'\r\n }, this.x.text)))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n if (this.x.range) {\r\n let a = this.x.range.split(',')\r\n for (let i = a.length - 1; i >= 0; i--) {\r\n if ($.number(this.x.percent) >= $.number(a[i])) return 'z-' + a[i]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-progress {\r\n display: flex;\r\n position: relative;\r\n height: 18px;\r\n border-radius: 20px;\r\n background: #e6e6e6;\r\n align-items: center;\r\n justify-content: center;\r\n overflow: hidden;\r\n font-size: 12px;\r\n line-height: 1;\r\n }\r\n\r\n .w-progress-gut {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n background: var(--w--focus-color);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n transition: width, background .1s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-progress-bar {\r\n color: #fff;\r\n height: 100%;\r\n }\r\n</style>\r\n","import script from \"./Progress.vue?vue&type=script&lang=js\"\nexport * from \"./Progress.vue?vue&type=script&lang=js\"\n\nimport \"./Progress.vue?vue&type=style&index=0&id=18056e88&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-switch',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['checkedText', 'uncheckedText', 'checkedValue', 'uncheckedValue'],\r\n inject: ['providePubParent'],\r\n methods: {\r\n x_default() {\r\n return {\r\n checkedValue: 1,\r\n uncheckedValue: 0,\r\n }\r\n },\r\n onclick(e) {\r\n let c = !this.isChecked\r\n let v = c ? this.x.checkedValue : this.x.uncheckedValue\r\n this.val(v)\r\n },\r\n formText() {\r\n return this.isChecked ? this.x.checkedText : this.x.uncheckedText\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-switch-box',\r\n onclick: this.isNormal && this.onclick\r\n }, [\r\n h('i', {\r\n class: 'w-switch-icon'\r\n }),\r\n h('span', {\r\n class: 'w-switch-text'\r\n }, this.isChecked ? this.x.checkedText : this.x.uncheckedText),\r\n ])\r\n ]\r\n }\r\n },\r\n computed: {\r\n input_value() {\r\n return this.isChecked ? this.x.checkedValue : this.x.uncheckedValue\r\n },\r\n html_class() {\r\n return this.isChecked ? 'z-checked' : 'z-unchecked'\r\n },\r\n isChecked() {\r\n return this.x.modelValue == this.x.checkedValue\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-switch>.w-input {\r\n flex: none;\r\n display: inline-flex;\r\n }\r\n\r\n .w-switch-box {\r\n flex: 1;\r\n position: relative;\r\n height: 22px;\r\n background: #c0c0c0;\r\n background: rgba(0, 0, 0, 0.25);\r\n border: 1px solid #c1caca;\r\n border-radius: 20px;\r\n color: #fff;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-appearance: none;\r\n }\r\n\r\n .w-switch-icon {\r\n position: absolute;\r\n top: 1px;\r\n left: 1px;\r\n background: #fff;\r\n padding: 10px;\r\n border-radius: 20px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);\r\n transition: all .15s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-switch-text {\r\n float: right;\r\n min-width: 2px;\r\n margin-left: 26px;\r\n margin-right: 8px;\r\n line-height: 22px;\r\n font-style: normal;\r\n min-width: 10px;\r\n }\r\n\r\n .w-switch.z-checked .w-switch-box {\r\n background: #1890ff;\r\n border-color: #1890ff\r\n }\r\n\r\n .w-switch.z-checked .w-switch-icon {\r\n left: 100%;\r\n border-color: #1890ff;\r\n transform: translateX(calc(-100% - 1px));\r\n }\r\n\r\n .w-switch.z-checked .w-switch-text {\r\n float: left;\r\n margin-left: 8px;\r\n margin-right: 26px;\r\n }\r\n\r\n .w-switch.z-ds .w-switch-box {\r\n background: #e6e6e6;\r\n border-color: #e6e6e6;\r\n cursor: default\r\n }\r\n\r\n .w-switch.z-ds .w-switch-icon {\r\n border-color: #e6e6e6\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-box {\r\n background: #a2d2ff;\r\n border-color: #a2d2ff\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-icon {\r\n border-color: #a2d2ff\r\n }\r\n</style>\n","import script from \"./Switch.vue?vue&type=script&lang=js\"\nexport * from \"./Switch.vue?vue&type=script&lang=js\"\n\nimport \"./Switch.vue?vue&type=style&index=0&id=6e279520&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Table.vue?vue&type=style&index=0&id=0024ac8a&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Spinner.vue?vue&type=style&index=0&id=ed7d1a32&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Tree.vue?vue&type=style&index=0&id=53bcfba2&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-img',\r\n pubParentName: 'w-album',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['src', 'text', 'square', 'imgWidth', 'imgHeight', 'dataUrl', 'vertical', 'disabled'],\r\n data() {\r\n return {\r\n hover: false\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n vertical: true,\r\n }\r\n },\r\n onerror(e) {\r\n if (this.dataUrl) e.target.src = this.dataUrl\r\n },\r\n html_slots() {\r\n let src = this.x.src\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n let svg = src && src.startsWith('#')\r\n let cont = this.$slots.default || (this.x.text ? {\r\n default: () => this.x.text\r\n } : null)\r\n src = src || this.dataUrl\r\n return [\r\n src && h('div', {\r\n class: 'w-img-gut',\r\n }, [font ? h('i', {\r\n class: 'w-img-icon ' + src.replace(/\\./g, '')\r\n }) :\r\n svg ? h('svg', {\r\n class: 'f-svg ' + src.slice(1)\r\n }, h('use', {\r\n 'xlink:href': src,\r\n })) :\r\n h('img', {\r\n ref: 'img',\r\n src: src,\r\n class: 'w-img-icon',\r\n onerror: this.onerror,\r\n }),\r\n this.$slots.cover && h('div', {\r\n class: 'w-img-cover f-abs-full'\r\n }, this.$slots.cover())\r\n ]),\r\n cont && h(Vertical, {\r\n class: 'w-img-description'\r\n }, cont)\r\n ]\r\n }\r\n },\r\n computed: {\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let w = $.unitSize(this.x.imgWidth ? this.x.imgWidth : this.x.width)\r\n let h = $.unitSize(this.x.imgHeight ? this.x.imgHeight : this.x.height)\r\n return {\r\n class: {\r\n 'z-hv': this.hover,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled,\r\n 'z-square': this.x.square,\r\n 'z-canplay': this.x.canPlay,\r\n 'z-vertical': this.x.vertical,\r\n [`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap,\r\n },\r\n style: {\r\n '--w-img-icon-width': w,\r\n '--w-img-icon-height': h,\r\n },\r\n onmouseenter: e => !this.x.disabled && (this.hover = true),\r\n onmouseleave: e => !this.x.disabled && (this.hover = false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-img {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-img.z-vertical {\r\n flex-direction: column;\r\n --w-compat-gap: 7px;\r\n }\r\n\r\n .w-img-gut {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-img-gut img {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--w-img-icon-width, 100%);\r\n height: var(--w-img-icon-height);\r\n }\r\n \r\n .w-img .f-svg {\r\n width: var(--w-img-icon-width, 18px);\r\n height: var(--w-img-icon-height, 18px) ;\r\n }\r\n\r\n .w-img.z-square .w-img-gut {\r\n position: relative;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 0;\r\n padding-bottom: 100%;\r\n }\r\n\r\n .w-img.z-square .w-img-icon {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-img-icon {\r\n display: block;\r\n object-fit: cover;\r\n line-height: 1;\r\n }\r\n\r\n .w-img-cover {}\r\n\r\n .w-img-description {}\r\n\r\n .w-img.z-vertical>.w-img-description {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n</style>\n","import script from \"./Img.vue?vue&type=script&lang=js\"\nexport * from \"./Img.vue?vue&type=script&lang=js\"\n\nimport \"./Img.vue?vue&type=style&index=0&id=4b5feea2&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-grid',\r\n mixins: [Scroll],\r\n props: ['columns', 'rows', 'gap', 'defaultColspan', 'face'],\r\n methods: {\r\n x_default() {\r\n return {\r\n columns: 12,\r\n gap: 0,\r\n }\r\n },\r\n html_slots() {\r\n return this.x.scrollX || this.x.scrollY ? this.html_scroll_slots() : h('div', {\r\n class: 'w-grid-cont',\r\n style: this.html_scroll_cont_style,\r\n }, this.$slots)\r\n },\r\n },\r\n computed: {\r\n html_props() {\r\n return {\r\n class: [this.x.rows ? 'z-full' : 'z-auto', this.x.face && 'z-face-' + this.x.face, this.html_scroll_class],\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let cols = this.x.columns\r\n if ($.isNumber(cols)) cols = `repeat(${cols}, 1fr)`\r\n let rows = this.x.rows\r\n if ($.isNumber(rows)) rows = `repeat(${rows}, 1fr)`\r\n let dc = this.x.defaultColspan\r\n return {\r\n 'grid-template-columns': cols,\r\n 'grid-template-rows': rows,\r\n 'grid-gap': this.x.gap ? $.unitSize(this.x.gap) : '',\r\n '--w-grid-colspan': (dc == -1 || dc == null ? '' : `span ${dc}`),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-grid {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont {\r\n display: grid;\r\n grid-auto-flow: row;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont>*,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont>* {\r\n grid-column: var(--w-grid-colspan, 1 / -1);\r\n grid-row: var(--w-grid-rowspan);\r\n }\r\n\r\n .w-grid.z-full>.w-grid-cont {\r\n height: 100%;\r\n }\r\n\r\n .w-grid.w-scroll.z-auto>.w-scroll-overflow>.w-scroll-cont {\r\n min-height: auto;\r\n }\r\n\r\n .w-grid.z-face-cell {\r\n border-top: 1px solid var(--w-grid-cell-border-color);\r\n border-left: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-formbase {\r\n align-items: stretch;\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n border-bottom: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n \r\n .w-grid.z-face-cell .w-td > .w-formbase {\r\n border-right: 0;\r\n border-bottom: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-label {\r\n background: var(--w-grid-cell-label-background-color);\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-input-border,\r\n .w-grid.z-face-cell .w-input .w-formbase {\r\n border: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload {\r\n align-items: stretch;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload>.w-input {\r\n padding: 10px;\r\n justify-content: center;\r\n }\r\n\r\n .w-grid.z-face-cell .w-imageupload>.w-input,\r\n .w-grid.z-face-cell .w-mediaupload>.w-input {\r\n padding: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-form>.w-input,\r\n .w-grid.z-face-cell .w-switch>.w-input,\r\n .w-grid.z-face-cell .w-radiogroup>.w-input,\r\n .w-grid.z-face-cell .w-checkboxgroup>.w-input {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-boxgroup-grid {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-grid.z-face-cell .w-combobox-list {\r\n padding-left: 5px;\r\n }\r\n</style>\r\n","import script from \"./Grid.vue?vue&type=script&lang=js\"\nexport * from \"./Grid.vue?vue&type=script&lang=js\"\n\nimport \"./Grid.vue?vue&type=style&index=0&id=5e2b9c3a&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FileUpload from './FileUpload.vue'\r\n import MediaUploadItem from './MediaUploadItem.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-mediaupload',\r\n mixins: [FileUpload],\r\n props: ['thumbnailWidth', 'thumbnailHeight', 'showFileName'],\r\n provide() {\r\n return {\r\n provideUpload: this\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'video',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n }\r\n },\r\n html_list() {\r\n return this.list.map(item => {\r\n return h(MediaUploadItem, {item})\r\n })\r\n },\r\n html_input_button() {\r\n return h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr',\r\n gap: 10,\r\n }, {\r\n default: () => [this.$slots.button ? this.$slots.button() : h(Button, {\r\n ref: 'uploadbutton',\r\n title: $.loc.form.choose_image,\r\n icon: '.f-i .f-i-plus',\r\n class: 'w-mediaupload-button',\r\n style: {\r\n width: $.unitSize(this.x.thumbnailWidth),\r\n height: $.unitSize(this.x.thumbnailHeight)\r\n },\r\n onclick: this.chooseFile\r\n })]\r\n })\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(h('div', {\r\n class: ['w-mediaupload-list f-flex', {'f-h-gap': $.br.compat.gap}]\r\n }, [this.html_list(), this.canUpload && this.html_input_button()]))\r\n },\r\n },\r\n computed: {\r\n html_style() {\r\n return {\r\n '--w-label-min-height': $.unitSize(this.x.thumbnailHeight),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload.z-h-valign-top,\r\n .w-mediaupload.z-h-valign-top>.w-input {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-mediaupload.z-h-valign-bottom,\r\n .w-mediaupload.z-h-valign-bottom>.w-input {\r\n align-items: flex-end;\r\n }\r\n\r\n .w-mediaupload.z-h-align-center>.w-input {\r\n justify-content: center;\r\n }\r\n\r\n .w-mediaupload.z-h-align-right>.w-input {\r\n justify-content: flex-end;\r\n }\r\n\r\n .w-mediaupload>.w-input {\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n\r\n .w-mediaupload-list {\r\n align-items: flex-start;\r\n flex-wrap: wrap;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-mediaupload-value,\r\n .w-mediaupload-button {\r\n position: relative;\r\n }\r\n\r\n .w-mediaupload-button {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-mediaupload-value.z-loading .w-mediaupload-progress:before,\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n background: rgba(0, 0, 0, .2);\r\n }\r\n\r\n .w-mediaupload-button .w-button-icon {\r\n font-size: 36px;\r\n color: #bbb;\r\n }\r\n\r\n .w-mediaupload-value:hover .w-mediaupload-value-close {\r\n visibility: visible;\r\n }\r\n\r\n .w-mediaupload-value-close {\r\n position: absolute;\r\n visibility: hidden;\r\n cursor: pointer;\r\n top: 1px;\r\n right: 1px;\r\n width: 24px;\r\n height: 24px;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .6);\r\n }\r\n\r\n .w-mediaupload-value-close:hover {\r\n color: #f33;\r\n }\r\n\r\n .w-mediaupload-value .w-img-gut {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value.z-err {\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress-loading {\r\n display: none;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '上传失败';\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .5);\r\n }\r\n\r\n .w-mediaupload-cover-play {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 30px;\r\n background: rgba(0, 0, 0, .5);\r\n color: #fff;\r\n }\r\n\r\n .w-mediaupload-cover-play:before {\r\n transform: translateX(2px);\r\n }\r\n\r\n .w-mediaupload.z-err .w-mediaupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\n","import script from \"./MediaUpload.vue?vue&type=script&lang=js\"\nexport * from \"./MediaUpload.vue?vue&type=script&lang=js\"\n\nimport \"./MediaUpload.vue?vue&type=style&index=0&id=5df6accd&lang=css\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Menu.vue?vue&type=style&index=0&id=0cc8b3b0&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Dialog from './Dialog.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-loading',\r\n mixins: [Dialog],\r\n props: ['text', 'icon'],\r\n methods: {\r\n x_default() {\r\n return {\r\n //local: true,\r\n }\r\n },\r\n html_slots() {\r\n return h(Img, {\r\n src: this.x.icon !== undefined ? this.x.icon : '#f-svg-loading',\r\n text: this.x.text !== undefined ? this.x.text : $.loc.loading\r\n })\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-dialog'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-loading {\r\n padding: 10px;\r\n border-radius: 10px;\r\n background: rgba(0, 0, 0, .6);\r\n color: #fff;\r\n box-shadow: none;\r\n }\r\n\r\n .w-loading .f-svg {\r\n width: 30px;\r\n height: 30px;\r\n fill: #fff;\r\n }\r\n .w-loading .f-svg>use {\r\n stroke: #fff;\r\n }\r\n</style>\n","import script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\n\nimport \"./Loading.vue?vue&type=style&index=0&id=35a83c14&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['modelValue', 'required', 'vertical', 'gap', 'minSize', 'maxSize'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n methods: {\r\n html_form() {\r\n return this.x.vertical ? h('div', {class: 'w-boxgroup-grid'}, this.$slots) : this.$slots\r\n },\r\n },\r\n computed: {\r\n html_style() {\r\n return this.x.gap && {\r\n '--w-boxgroup-gap': $.unitSize(this.x.gap)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./CheckBoxGroup.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBoxGroup.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n\r\n export default {\r\n name: 'w-spinner',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['decimal', 'format', 'showButton', 'buttonPosition', 'step', 'autoFix', 'compare', 'minValue', 'maxValue'],\r\n mounted() {\r\n this.x.format && this.doFormat()\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n step: 1,\r\n autoFix: true,\r\n showButton: true,\r\n buttonPosition: 'right',\r\n inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 140\r\n }\r\n },\r\n doFormat() {\r\n let v = '' + this.x.modelValue\r\n let s = this.x.format.separator || ','\r\n let r = RegExp(s.replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&'), 'g')\r\n let t = $.numFormat(v, this.x.format.length, s, this.x.format.rightward)\r\n if (v !== t) {\r\n let n = this.$refs.v.selectionStart\r\n let b = v.slice(0, n).replace(r, '')\r\n this.val(t)\r\n if (document.activeElement === this.$refs.v) {\r\n let a = t.slice(0, n).replace(r, '')\r\n this.$nextTick(() => $.rngCursor(this.$refs.v, n + (b.length - a.length)))\r\n }\r\n }\r\n },\r\n stepBy(a) {\r\n if (!this.isNormal) return\r\n let m = this.defaultRuleValue('maxValue')\r\n let n = this.defaultRuleValue('minValue')\r\n let u = this.val()\r\n let v = $.numAdd($.number(u), a * this.x.step)\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n let r = v\r\n m != null && (r = Math.min(m, r))\r\n n != null && (r = Math.max(n, r))\r\n if (p) {\r\n if (p[0] == this) {\r\n let endValue = p[1].val()\r\n if (endValue != null) r = Math.min(endValue, r)\r\n } else if (p[1] == this) {\r\n let beginValue = p[0].val()\r\n if (beginValue != null) r = Math.max(beginValue, r)\r\n }\r\n }\r\n this.warn(false)\r\n this.focus()\r\n this.val(r)\r\n if (r == v) {\r\n if (this.tip_uid) {\r\n $.close(this.tip_uid)\r\n this.tip_uid = null\r\n }\r\n }\r\n this.x.format && this.doFormat()\r\n },\r\n isUsableVal(v) {\r\n return !this.getValidError(null, v)\r\n },\r\n isFocusTarget(el) { // implement\r\n return this.$refs.btns && this.$refs.btns.contains(el)\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.isNumber(v) && $.isNumber(tv)) {\r\n let d = $.number(v)\r\n let td = $.number(tv)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n this.x.format && this.doFormat()\r\n },\r\n onfocus(e) {\r\n this.baseFocus(e)\r\n },\r\n onblur(e) {\r\n let v = this.x.modelValue\r\n if (v && !this.isUsableVal(v) && this.x.autoFix) {\r\n let nv = $.numDecimal(v, this.x.decimal)\r\n nv = $.numRange(nv, this.x.minValue, this.x.maxValue)\r\n this.val(nv)\r\n }\r\n this.baseBlur(e)\r\n },\r\n html_button() {\r\n if (this.x.showButton) {\r\n if (this.x.buttonPosition === 'right') {\r\n return h('div', {\r\n class: 'w-spinner-step w-input-bbr f-flex-column f-oh',\r\n ref: 'btns'\r\n }, [\r\n h('button', {\r\n class: 'w-spinner-step-up f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-up\"></i>'\r\n }),\r\n h('button', {\r\n class: 'w-spinner-step-down f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(-1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-down\"></i>'\r\n }),\r\n ])\r\n } else if (this.x.buttonPosition === 'between') {\r\n return [\r\n h('button', {\r\n class: 'w-spinner-step-minus f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-minus\"></i>'\r\n }),\r\n h('button', {\r\n class: 'w-spinner-step-plus f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-plus\"></i>'\r\n })\r\n ]\r\n }\r\n }\r\n\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) < $.number(r)) : (v < r)))\r\n return this.formErr(q, [r])\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) > $.number(r)) : (v > r)))\r\n return this.formErr(q, [r])\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v) => {\r\n this.x.format && (v = v.replace(RegExp(this.x.format.separator || ',', 'g'), ''))\r\n if (v != null) {\r\n if (!$.isNumber(v))\r\n return this.formErr({\r\n type: 'number_invalid'\r\n })\r\n let d = this.x.decimal\r\n v = '' + v\r\n if (!d && v.includes('.'))\r\n return this.formErr({\r\n type: 'number_integer'\r\n })\r\n if (d && d > 0 && $.strFrom(v, '.').length > d)\r\n return this.formErr({\r\n type: 'number_decimal_digit'\r\n }, [d])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({\r\n type: 'compare'\r\n }, e)\r\n }\r\n }\r\n }\r\n },\r\n input_prop() {\r\n return {\r\n 'w-valuetype': 'number',\r\n oninput: this.oninput,\r\n onfocus: this.onfocus,\r\n onblur: this.onblur,\r\n }\r\n },\r\n html_class() {\r\n return 'z-buttonposition-' + this.x.buttonPosition\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-spinner-step-up,\r\n .w-spinner-step-down {\r\n height: 15px;\r\n overflow: hidden;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .f-i {\r\n font-size: 14px;\r\n color: #777;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-minus {\r\n order: 0;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-right: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .w-input-value {\r\n order: 1;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-plus {\r\n order: 2;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-left: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n</style>\n","import script from \"./Spinner.vue?vue&type=script&lang=js\"\nexport * from \"./Spinner.vue?vue&type=script&lang=js\"\n\nimport \"./Spinner.vue?vue&type=style&index=0&id=ed7d1a32&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n\r\n export default {\r\n name: 'w-triplebox',\r\n mixins: [CheckBox],\r\n props: ['all'],\r\n created() {\r\n this.$watch(() => this.x.modelValue, (v, ov) => {\r\n if ((v == null || v == '') && (ov == null || ov == '')) return\r\n this.provideBoxParent && this.provideBoxParent.triple()\r\n if (!this.x.all) this.relate()\r\n })\r\n },\r\n methods: {\r\n getVal() {\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.value : ''\r\n },\r\n formVal() {\r\n if (this.isDisabled) return ''\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.$refs.v.value : ''\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n this.relate()\r\n },\r\n checkstate(a) {\r\n let b = this.indeterminate ? 2 : this.isChecked ? 1 : 0\r\n if (a == null) {\r\n return b\r\n }\r\n this.val(a == 1)\r\n this.indeterminate = a == 2\r\n },\r\n isPartial() {\r\n return this.checkstate() == 2\r\n },\r\n getRelates() {\r\n return this.ownerView.fAll(this.x.name)\r\n },\r\n relate() {\r\n if (this.x.name) {\r\n for (var i = 0, b = this.getRelates(), c = this.isPartial(), l = b.length, n = l, c0 = 0, c1 = 0, c2 = 0,\r\n d; i < l; i++) {\r\n if (!b[i].isNormal) {\r\n n--\r\n continue\r\n }\r\n if (this.x.all) {\r\n if (this != b[i]) {\r\n if (c) {\r\n this.checkstate(b[i].checkstate())\r\n break;\r\n } else {\r\n b[i].checkstate(this.isChecked ? 1 : 0)\r\n }\r\n } else if (l == 1)\r\n d = this\r\n } else if (b[i].x.all) {\r\n d = b[i]\r\n } else {\r\n b[i].isChecked ? (c1++) : b[i].isPartial() ? (c2++) : (c0++)\r\n }\r\n }\r\n if (d && ((c0 + c1 + c2) || l == 1)) {\r\n d.checkstate(c0 == n - 1 ? 0 : c1 == n - 1 ? 1 : 2)\r\n }\r\n }\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n let s = this.checkstate()\r\n if (s != a) {\r\n this.checkstate(a)\r\n this.relate()\r\n }\r\n },\r\n },\r\n computed: {\r\n checkValue() {\r\n return this.x.all ? 'checked' : this.x.value\r\n }\r\n },\r\n mounted() {\r\n //if (!this.x.all && this.isChecked)\r\n }\r\n\r\n }\r\n</script>\n","import script from \"./TripleBox.vue?vue&type=script&lang=js\"\nexport * from \"./TripleBox.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n\r\n export default {\r\n name: 'w-radio',\r\n pubParentName: 'w-radiogroup',\r\n mixins: [CheckBox],\r\n methods: {\r\n\r\n },\r\n computed: {\r\n input_type() {\r\n return 'radio'\r\n },\r\n input_icon() {\r\n return 'f-i'\r\n },\r\n input_name() {\r\n return this.w_name && (this.w_name + '@' + this.ownerView.uid)\r\n },\r\n w_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_prop() {\r\n return {'w-name': this.w_name}\r\n }\r\n },\r\n mounted() {\r\n\r\n\r\n }\r\n }\r\n</script>\n","import script from \"./Radio.vue?vue&type=script&lang=js\"\nexport * from \"./Radio.vue?vue&type=script&lang=js\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Html.vue?vue&type=style&index=0&id=612320da&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-text',\r\n mixins: [FormBase],\r\n props: ['minLength', 'maxLength', 'pattern'],\r\n data() {\r\n return {\r\n hasBorder: true\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minLength: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && $.strLen(v) < r)\r\n return this.formErr(q, [r])\r\n },\r\n maxLength: (v, r, q) => {\r\n let d\r\n if (v && r != null && r !== '' && r > 0 && v && (d = $.strLen(v)) > r)\r\n return this.formErr(q, [d - r])\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Text.vue?vue&type=script&lang=js\"\nexport * from \"./Text.vue?vue&type=script&lang=js\"\n\nexport default script","// 实现指令 v-form-ignore=\"true\"\r\n// 不提交不验证当前范围内的表单\r\n\r\nfunction formIgnore(el, bind) {\r\n bind.value ? el.setAttribute('w-form-ignore', '') : el.removeAttribute('w-form-ignore')\r\n}\r\n\r\nexport default {\r\n created: formIgnore,\r\n updated: formIgnore,\r\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Tabs.vue?vue&type=style&index=0&id=554c0a38&lang=css\"","<template>\r\n <w-dialog class=\"f-dialog-preview\" width=\"calc(100% - 100px)\" height=\"calc(100% - 100px)\" :ownproperty=\"true\" :cover=\"true\" :autoHide=\"true\">\r\n <template v-if=\"data.type=='image'\">\r\n <w-swiper ref=\"swiper\" class=\"f-height\" :current=\"current\" :arrow=\"data.imgs.length > 1\" :indicator-dots=\"data.imgs.length > 1\" duration=\"300\">\r\n <w-swiper-item v-for=\"(item,index) in data.imgs\" :key=\"index\">\r\n <div class=\"f-height f-rel f-oh\">\r\n <img class=\"_img\" :src=\"item\" />\r\n </div>\r\n </w-swiper-item>\r\n </w-swiper>\r\n <div class=_rotate>\r\n <a class=_l @click=\"rot(-1)\">{{loc.rotate_left}}</a>\r\n <span class=_s>|</span>\r\n <a class=_r @click=\"rot(1)\">{{loc.rotate_right}}</a>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <w-video class=\"f-height\" :src=\"data.src\"></w-video>\r\n </template>\r\n <div class=\"_dlg_x\" @click=\"close\"></div>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n return {\r\n rotate: 0,\r\n current: $.lodash.get(this.data, 'options.current', 0),\r\n }\r\n },\r\n methods: {\r\n close() {\r\n $.close(this)\r\n },\r\n rot(a) {\r\n let r = this.rotate\r\n let b = $.bcr(this.$refs.swiper.el())\r\n let w = b.width - 40\r\n let h = b.height - 80\r\n if (a > 0) {\r\n r += 90\r\n } else if (a < 0) {\r\n r -= 90\r\n }\r\n let t = (r / 90) % 2\r\n $.q('.w-swiper-item.z-on ._img', this.$refs.swiper.el()).css({\r\n transform: 'rotate(' + r + 'deg)',\r\n maxWidth: t ? h : w,\r\n maxHeight: t ? w : h,\r\n });\r\n this.rotate = r\r\n }\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n },\r\n mounted() {\r\n \r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import { render } from \"./TemplatePreviewMedia.vue?vue&type=template&id=43a1c69b\"\nimport script from \"./TemplatePreviewMedia.vue?vue&type=script&lang=js\"\nexport * from \"./TemplatePreviewMedia.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TemplateJigsaw.vue?vue&type=style&index=0&id=2c16ab31&lang=css\"","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n\r\n export default {\r\n name: 'w-dropbox',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['multiple', 'cancelable', 'dropWidth'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n dropper: null,\r\n showDrop: false,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n click() {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n }\r\n },\r\n clickOption(opt) {\r\n if (this.x.multiple) {\r\n let cv = $.array(this.val(), true)\r\n if (opt.isFocus) $.lodash.pull(cv, opt.value)\r\n else cv.push(opt.value)\r\n this.val(cv)\r\n } else {\r\n let cv = this.x.cancelable && opt.isFocus ? '' : opt.value\r\n this.val(cv)\r\n this.showDrop = false\r\n }\r\n },\r\n formText() {\r\n return this.input_text\r\n },\r\n html_input() {\r\n let t = this.input_text\r\n let p = this.input_placeholder\r\n let m = !!$.br.mobile\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-dropbox-text f-line-1',\r\n title: t || p,\r\n }, t || (p && h('div', {class: 'w-input-placeholder'}, p))),\r\n this.showDrop && h(Dialog, {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog w-dropbox-dialog' + (m ? ' z-mob' : ''),\r\n width: m ? '100%' : Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width),\r\n scrollY: true,\r\n scrollView: '.z-on',\r\n autoHide: true,\r\n cover: m,\r\n snap: m ? null : {\r\n target: () => this.el('main'),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: () => this.showDrop = false\r\n }, this.$slots)\r\n ]\r\n },\r\n html_button() {\r\n return h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: this.x.disabled,\r\n })\r\n }\r\n },\r\n computed: {\r\n input_text() {\r\n let r = []\r\n let s = this.slots_children()\r\n let m = $.array(this.x.modelValue)\r\n $.lodash.each(m, v => {\r\n let i = s.findIndex(n => n.props.value == v)\r\n if (i > -1) r.push(i)\r\n if (!this.x.multiple) return false\r\n })\r\n return r.sort().map(v => s[v].props.text).join(', ')\r\n },\r\n main_prop() {\r\n return {\r\n onclick: this.isNormal && this.click\r\n }\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./DropBox.vue?vue&type=script&lang=js\"\nexport * from \"./DropBox.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n h\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-table',\r\n mixins: [WidgetBase],\r\n props: ['face', 'scroll-x', 'scroll-y'],\r\n provide() {\r\n return {\r\n _provideTable: this,\r\n provideLevel: -1,\r\n provideParentTR: null,\r\n }\r\n },\r\n data() {\r\n return {\r\n sticky: {left: null, right: null},\r\n }\r\n },\r\n mounted() {\r\n const observe = (e) => this.initFixedCells('left').concat(this.initFixedCells('right'))\r\n $.lodash.each(observe(), v => new ResizeObserver(observe).observe(v))\r\n this.$el.setAttribute('w-scroll-x', 'left')\r\n if ($.br.chrome && $.br.chrome <= 60) { //低版本谷歌表格宽度有变化时,sticky的td内容会不可见。因此执行一个强制重新渲染的步骤\r\n new ResizeObserver(() => {\r\n this.$el.setAttribute('w-compact-resize-sticky', '')\r\n requestAnimationFrame(() => this.$el.removeAttribute('w-compact-resize-sticky'))\r\n }).observe(this.$el)\r\n }\r\n },\r\n methods: {\r\n initFixedCells(dir) {\r\n let sticky = null\r\n let offset = 0\r\n let fixedCells = $.lodash.map(this.$el.querySelector(`thead`).querySelectorAll(`td[w-fixed=\"${dir}\"]`))\r\n if (dir === 'right') fixedCells.reverse()\r\n fixedCells.forEach(td => {\r\n (sticky || (sticky = [])).push({colIndex: td.cellIndex, offset})\r\n offset += td.offsetWidth\r\n })\r\n this.sticky[dir] = sticky\r\n return fixedCells\r\n },\r\n html_slots() {\r\n return [\r\n this.slotHooks.thead, this.slotHooks.tbody, this.slotHooks.hiddens || [],\r\n ]\r\n },\r\n },\r\n computed: {\r\n slotHooks() {\r\n const a = {}\r\n this.slots_children().forEach(o => {\r\n let n = o.type.name && o.type.name.slice(2)\r\n if (n) {\r\n if (n === 'hidden') {\r\n (a.hiddens || (a.hiddens = [])).push(o)\r\n } else\r\n a[n] = o\r\n }\r\n })\r\n return a\r\n },\r\n colgroup() {\r\n return $.slotsChildren(this.slotHooks.columns.children).map(v => v.props)\r\n },\r\n html_class() {\r\n return ['f-flex-column', this.x.face && 'z-face-' + this.x.face]\r\n },\r\n html_style() {\r\n let r = {}\r\n if (this.sticky.left) {\r\n this.sticky.left.forEach(v => r[`--w-td-fixed-left-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n if (this.sticky.right) {\r\n this.sticky.right.forEach(v => r[`--w-td-fixed-right-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n return r\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-table {\r\n position: relative;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n }\r\n\r\n .w-table-tbl {\r\n table-layout: fixed;\r\n width: 100%;\r\n border-collapse: separate;\r\n }\r\n\r\n .w-thead {\r\n overflow: hidden;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-tr {\r\n height: 40px;\r\n }\r\n\r\n .w-td,\r\n .w-th {\r\n background: #fff;\r\n }\r\n\r\n .w-thead .w-td,\r\n .w-th {\r\n background: var(--w-thead-background-color);\r\n }\r\n\r\n .w-tbody .w-td {\r\n border-bottom: 1px solid var(--w-td-border-color);\r\n }\r\n\r\n .w-tr.z-on .w-td {\r\n background: var(--w--focus-light-color);\r\n }\r\n\r\n .w-th {\r\n font-weight: normal;\r\n }\r\n\r\n .w-th.z-sortable {\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort {\r\n height: 28px;\r\n line-height: 1;\r\n color: #aaa;\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort-up:before {\r\n position: relative;\r\n top: 1px;\r\n }\r\n\r\n .w-th-sort-down:before {\r\n position: relative;\r\n top: -4px;\r\n }\r\n\r\n .w-th.z-asc .w-th-sort-up {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-th.z-desc .w-th-sort-down {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-td {\r\n padding: 5px;\r\n }\r\n\r\n .w-td.z-align-left {\r\n text-align: left;\r\n }\r\n\r\n .w-td.z-align-center {\r\n text-align: center;\r\n }\r\n\r\n .w-td.z-align-right {\r\n text-align: right;\r\n }\r\n\r\n .w-td.z-valign-top {\r\n vertical-align: top;\r\n }\r\n\r\n .w-td.z-valign-middle {\r\n vertical-align: middle;\r\n }\r\n\r\n .w-td.z-valign-bottom {\r\n vertical-align: bottom;\r\n }\r\n\r\n .w-td>.w-triplebox>.w-input,\r\n .w-td>.w-radio>.w-input {\r\n min-height: auto;\r\n }\r\n\r\n .w-table.z-face-cell {\r\n border: 1px solid var(--w-table-border-color);\r\n }\r\n\r\n .w-table.z-face-cell .w-td {\r\n border: 0 solid var(--w-td-border-color, var(--w-table-border-color));\r\n border-right-width: 1px;\r\n border-bottom-width: 1px;\r\n }\r\n\r\n .w-table.z-face-cell .w-td-lastborder {\r\n border-right: 0;\r\n }\r\n\r\n .w-table.z-face-cell .w-tbody {\r\n margin-bottom: -1px;\r\n }\r\n\r\n .w-td-fixed-left,\r\n .w-td-fixed-right {\r\n position: sticky;\r\n z-index: 1;\r\n }\r\n\r\n .w-td-fixed-left-last:after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-td-fixed-right-first:after {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(-100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-left-last:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=right] .w-td-fixed-left-last:after {\r\n box-shadow: inset 10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=left] .w-td-fixed-right-first:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-right-first:after {\r\n box-shadow: inset -10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-compact-resize-sticky] .w-td-fixed-left,\r\n .w-table[w-compact-resize-sticky] .w-td-fixed-right {\r\n position: static;\r\n }\r\n \r\n</style>\n","import script from \"./Table.vue?vue&type=script&lang=js\"\nexport * from \"./Table.vue?vue&type=script&lang=js\"\n\nimport \"./Table.vue?vue&type=style&index=0&id=0024ac8a&lang=css\"\n\nexport default script"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://dfish/webpack/universalModuleDefinition","webpack://dfish/webpack/bootstrap","webpack://dfish/./src/widgets/Leaf.vue?d317","webpack://dfish/./src/widgets/Video.vue?99e5","webpack://dfish/./src/widgets/Option.vue?0834","webpack://dfish/./src/widgets/PickBox.vue?a0b4","webpack://dfish/./src/widgets/MediaUploadItem.vue?b462","webpack://dfish/./src/widgets/TabButton.vue?b2df","webpack://dfish/./src/widgets/Swiper.vue?b91b","webpack://dfish/./src/widgets/Jigsaw.vue?d7c3","webpack://dfish/./src/widgets/Toggle.vue?a46f","webpack://dfish/./src/widgets/Scroll.vue?3087","webpack://dfish/./src/widgets/LinkBox.vue?15ba","webpack://dfish/./src/widgets/Calendar.vue?b801","webpack://dfish/./src/widgets/Tip.vue?e935","webpack://dfish/./src/widgets/DialogMove.vue?15d2","webpack://dfish/./src/widgets/Timeline.vue?0f85","webpack://dfish/./src/template/TemplateDateSheet.vue?280e","webpack://dfish/./src/widgets/SlidePicker.vue?ed76","webpack://dfish/./src/widgets/Split.vue?d855","webpack://dfish/./src/widgets/Grid.vue?ff6f","webpack://dfish/./src/widgets/FormBase.vue?46c6","webpack://dfish/./src/template/TemplateJigsaw.vue?7fc8","webpack://dfish/./src/widgets/Rate.vue?b442","webpack://dfish/./src/widgets/Range.vue?f220","webpack://dfish/./src/widgets/Loading.vue?b3a7","webpack://dfish/./src/widgets/Progress.vue?98e9","webpack://dfish/./src/assets/SVGIcon.vue?6823","webpack://dfish/./src/widgets/MenuButton.vue?16cf","webpack://dfish/./src/widgets/Img.vue?4aaa","webpack://dfish/./src/util/browser.js","webpack://dfish/./src/util/uid.js","webpack://dfish/./src/util/loc/zh-CN.js","webpack://dfish/./src/util/str.js","webpack://dfish/./src/util/number.js","webpack://dfish/./src/util/date.js","webpack://dfish/./src/util/range.js","webpack://dfish/./src/util/elem.js","webpack://dfish/./src/util/css.js","webpack://dfish/./src/util/snap.js","webpack://dfish/./src/util/json.js","webpack://dfish/./src/util/event.js","webpack://dfish/./src/dfish.js","webpack://dfish/./src/directive/form-ignore.js","webpack://dfish/./src/directive/dialog-move.js","webpack://dfish/./src/directive/label-width.js","webpack://dfish/./src/directive/index.js","webpack://dfish/./src/widgets/WidgetAbs.vue","webpack://dfish/./src/widgets/WidgetAbs.vue?ba8a","webpack://dfish/./src/widgets/SrcParent.vue","webpack://dfish/./src/widgets/SrcParent.vue?93a3","webpack://dfish/./src/template/TemplateAlert.vue","webpack://dfish/./src/template/TemplateAlert.vue?b656","webpack://dfish/./src/template/TemplateConfirm.vue","webpack://dfish/./src/template/TemplateConfirm.vue?3095","webpack://dfish/./src/template/TemplateTip.vue","webpack://dfish/./src/template/TemplateTip.vue?9a7a","webpack://dfish/./src/template/TemplateLoading.vue","webpack://dfish/./src/template/TemplateLoading.vue?982e","webpack://dfish/./src/widgets/Pop.vue","webpack://dfish/./src/widgets/Pop.vue?0f20","webpack://dfish/./src/widgets/WidgetBase.vue","webpack://dfish/./src/widgets/WidgetBase.vue?b91b","webpack://dfish/./src/widgets/Scroll.vue","webpack://dfish/./src/widgets/Scroll.vue?2cbe","webpack://dfish/./src/widgets/AlignParent.vue","webpack://dfish/./src/widgets/AlignParent.vue?f746","webpack://dfish/./src/widgets/Horizontal.vue","webpack://dfish/./src/widgets/Horizontal.vue?3f14","webpack://dfish/./src/widgets/Vertical.vue","webpack://dfish/./src/widgets/Vertical.vue?590a","webpack://dfish/./src/widgets/Img.vue","webpack://dfish/./src/widgets/Img.vue?496d","webpack://dfish/./src/widgets/ViewAbs.vue","webpack://dfish/./src/widgets/ViewAbs.vue?7b03","webpack://dfish/./src/assets/SVGIcon.vue","webpack://dfish/./src/assets/SVGIcon.vue?69f7","webpack://dfish/./src/template/TemplatePreviewMedia.vue","webpack://dfish/./src/template/TemplatePreviewMedia.vue?3261","webpack://dfish/./src/template/TemplateDateSheet.vue","webpack://dfish/./src/template/TemplateDateSheet.vue?c94f","webpack://dfish/./src/widgets/DocView.vue","webpack://dfish/./src/widgets/DocView.vue?ba0c","webpack://dfish/./src/widgets/View.vue","webpack://dfish/./src/widgets/View.vue?86cf","webpack://dfish/./src/widgets/Dialog.vue","webpack://dfish/./src/widgets/Dialog.vue?3792","webpack://dfish/./src/widgets/DialogMove.vue","webpack://dfish/./src/widgets/DialogMove.vue?5066","webpack://dfish/./src/widgets/Alert.vue","webpack://dfish/./src/widgets/Alert.vue?3137","webpack://dfish/./src/widgets/Confirm.vue","webpack://dfish/./src/widgets/Confirm.vue?d56c","webpack://dfish/./src/widgets/Tip.vue","webpack://dfish/./src/widgets/Tip.vue?9916","webpack://dfish/./src/widgets/Button.vue","webpack://dfish/./src/widgets/Button.vue?fbcc","webpack://dfish/./src/widgets/MenuButton.vue","webpack://dfish/./src/widgets/MenuButton.vue?9b54","webpack://dfish/./src/widgets/Menu.vue","webpack://dfish/./src/widgets/Menu.vue?61b6","webpack://dfish/./src/widgets/Loading.vue","webpack://dfish/./src/widgets/Loading.vue?ce77","webpack://dfish/./src/widgets/Table.vue","webpack://dfish/./src/widgets/Table.vue?8309","webpack://dfish/./src/widgets/TableColumns.vue","webpack://dfish/./src/widgets/TableColumns.vue?3525","webpack://dfish/./src/widgets/TableColumn.vue","webpack://dfish/./src/widgets/TableColumn.vue?2711","webpack://dfish/./src/widgets/PubParent.vue","webpack://dfish/./src/widgets/PubParent.vue?cedb","webpack://dfish/./src/widgets/TableTHead.vue","webpack://dfish/./src/widgets/TableTHead.vue?ceef","webpack://dfish/./src/widgets/TableTBody.vue","webpack://dfish/./src/widgets/TableTBody.vue?abdf","webpack://dfish/./src/widgets/TableTR.vue","webpack://dfish/./src/widgets/TableTR.vue?ee1d","webpack://dfish/./src/widgets/TableTD.vue","webpack://dfish/./src/widgets/TableTD.vue?b65e","webpack://dfish/./src/widgets/TableTH.vue","webpack://dfish/./src/widgets/TableTH.vue?1b2e","webpack://dfish/./src/widgets/Grid.vue","webpack://dfish/./src/widgets/Grid.vue?3b0e","webpack://dfish/./src/widgets/SwiperItem.vue","webpack://dfish/./src/widgets/SwiperItem.vue?dfa1","webpack://dfish/./src/widgets/Swiper.vue","webpack://dfish/./src/widgets/Swiper.vue?78b8","webpack://dfish/./src/widgets/ButtonBar.vue","webpack://dfish/./src/widgets/ButtonBar.vue?b9d7","webpack://dfish/./src/widgets/TabButton.vue","webpack://dfish/./src/widgets/TabButton.vue?e0b1","webpack://dfish/./src/widgets/Tabs.vue","webpack://dfish/./src/widgets/Tabs.vue?6c52","webpack://dfish/./src/widgets/Tab.vue","webpack://dfish/./src/widgets/Tab.vue?a801","webpack://dfish/./src/widgets/Album.vue","webpack://dfish/./src/widgets/Album.vue?74b6","webpack://dfish/./src/widgets/SubmitButton.vue","webpack://dfish/./src/widgets/SubmitButton.vue?3fa5","webpack://dfish/./src/widgets/Html.vue","webpack://dfish/./src/widgets/Html.vue?092f","webpack://dfish/./src/widgets/Tree.vue","webpack://dfish/./src/widgets/Tree.vue?42d7","webpack://dfish/./src/widgets/Label.vue","webpack://dfish/./src/widgets/Label.vue?969b","webpack://dfish/./src/widgets/FormBase.vue","webpack://dfish/./src/widgets/FormBase.vue?9859","webpack://dfish/./src/widgets/CheckBox.vue","webpack://dfish/./src/widgets/CheckBox.vue?54ae","webpack://dfish/./src/widgets/TripleBox.vue","webpack://dfish/./src/widgets/TripleBox.vue?8717","webpack://dfish/./src/widgets/Leaf.vue","webpack://dfish/./src/widgets/Leaf.vue?6aec","webpack://dfish/./src/widgets/PageBar.vue","webpack://dfish/./src/widgets/PageBar.vue?15df","webpack://dfish/./src/widgets/Split.vue","webpack://dfish/./src/widgets/Split.vue?04cd","webpack://dfish/./src/widgets/Toggle.vue","webpack://dfish/./src/widgets/Toggle.vue?3b65","webpack://dfish/./src/widgets/Video.vue","webpack://dfish/./src/widgets/Video.vue?eba0","webpack://dfish/./src/widgets/Progress.vue","webpack://dfish/./src/widgets/Progress.vue?8139","webpack://dfish/./src/widgets/Calendar.vue","webpack://dfish/./src/widgets/Calendar.vue?083c","webpack://dfish/./src/widgets/Timeline.vue","webpack://dfish/./src/widgets/Timeline.vue?6722","webpack://dfish/./src/widgets/TimelineItem.vue","webpack://dfish/./src/widgets/TimelineItem.vue?4eaa","webpack://dfish/./src/widgets/SlidePicker.vue","webpack://dfish/./src/widgets/SlidePicker.vue?f95b","webpack://dfish/./src/widgets/Hidden.vue","webpack://dfish/./src/widgets/Hidden.vue?f5d8","webpack://dfish/./src/widgets/Text.vue","webpack://dfish/./src/widgets/Text.vue?367a","webpack://dfish/./src/widgets/Textarea.vue","webpack://dfish/./src/widgets/Textarea.vue?e32b","webpack://dfish/./src/widgets/CheckBoxGroup.vue","webpack://dfish/./src/widgets/CheckBoxGroup.vue?6c17","webpack://dfish/./src/widgets/RadioGroup.vue","webpack://dfish/./src/widgets/RadioGroup.vue?e09b","webpack://dfish/./src/widgets/Radio.vue","webpack://dfish/./src/widgets/Radio.vue?f1bf","webpack://dfish/./src/widgets/Switch.vue","webpack://dfish/./src/widgets/Switch.vue?e783","webpack://dfish/./src/util/mime.js","webpack://dfish/./src/widgets/FileUpload.vue","webpack://dfish/./src/widgets/FileUpload.vue?e312","webpack://dfish/./src/widgets/MediaUploadItem.vue","webpack://dfish/./src/widgets/MediaUploadItem.vue?907a","webpack://dfish/./src/widgets/MediaUpload.vue","webpack://dfish/./src/widgets/MediaUpload.vue?2ed7","webpack://dfish/./src/widgets/ImageUpload.vue","webpack://dfish/./src/widgets/ImageUpload.vue?f89f","webpack://dfish/./src/widgets/Option.vue","webpack://dfish/./src/widgets/Option.vue?2ad8","webpack://dfish/./src/widgets/Spinner.vue","webpack://dfish/./src/widgets/Spinner.vue?fa77","webpack://dfish/./src/widgets/DatePicker.vue","webpack://dfish/./src/widgets/DatePicker.vue?304a","webpack://dfish/./src/widgets/DropBox.vue","webpack://dfish/./src/widgets/DropBox.vue?9370","webpack://dfish/./src/widgets/PickBox.vue","webpack://dfish/./src/widgets/PickBox.vue?62f5","webpack://dfish/./src/widgets/Password.vue","webpack://dfish/./src/widgets/Password.vue?6cda","webpack://dfish/./src/widgets/Range.vue","webpack://dfish/./src/widgets/Range.vue?477c","webpack://dfish/./src/widgets/ComboBox.vue","webpack://dfish/./src/widgets/ComboBox.vue?2036","webpack://dfish/./src/widgets/LinkBox.vue","webpack://dfish/./src/widgets/LinkBox.vue?8d22","webpack://dfish/./src/template/TemplateJigsaw.vue","webpack://dfish/./src/template/TemplateJigsaw.vue?4b4b","webpack://dfish/./src/widgets/Jigsaw.vue","webpack://dfish/./src/widgets/Jigsaw.vue?9364","webpack://dfish/./src/widgets/Form.vue","webpack://dfish/./src/widgets/Form.vue?b8f9","webpack://dfish/./src/widgets/Rate.vue","webpack://dfish/./src/widgets/Rate.vue?d642","webpack://dfish/./src/widgets/index.js","webpack://dfish/./src/widgets/MediaUpload.vue?0142","webpack://dfish/./src/widgets/ComboBox.vue?88e8","webpack://dfish/./src/widgets/Dialog.vue?ed4d","webpack://dfish/./src/widgets/FileUpload.vue?e29e","webpack://dfish/./src/widgets/PageBar.vue?868d","webpack://dfish/./src/widgets/Switch.vue?5261","webpack://dfish/./src/widgets/Table.vue?5ff4","webpack://dfish/./src/widgets/Spinner.vue?decf","webpack://dfish/./src/widgets/Tree.vue?5f4e","webpack://dfish/./src/widgets/Menu.vue?2820","webpack://dfish/./src/widgets/Html.vue?e48a","webpack://dfish/./src/widgets/ViewAbs.vue?8551","webpack://dfish/./src/widgets/Tabs.vue?b517"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","oldJsonpFunction","slice","u","navigator","userAgent","toLowerCase","chrome","match","firefox","agent","parseFloat","safari","indexOf","ie","appName","document","documentMode","compat","gap","mobile","app","location","protocol","wechat","version","replace","android","isBadAndroid","test","appVersion","iphone","ios","ipad","_uidCnt","_uidKey","_guid","toString","yes","no","none","to","jump","confirm","search","query","choose","save","remove","cancel","add","edit","finish","refresh","operfail","opertip","nodata","more","field","close","restore","rotate_left","rotate_right","dialog_max","dialog_min","detect_zoom","no_tip_anymore","loading","wait","submiting","uploading","click_preview","toomuch_wait","toomuch_wait_countdown","preview_orginal_image","auth_success","auth_fail","choose_image","tree_movefail1","tree_movefail2","internet_error","server_error","preload_error","page","page_text","first","last","next","prev","print_preview","placeholder_input","placeholder_select","pulldown_refresh","release_refresh","pullup_refresh","pullup_nomore","download_start","download_complete","download_cannotopen","download_fail","tab_close","tab_close_others","tab_close_all","sort_asc","sort_desc","sort_cancel","column_choose","connection_not_wifi","debug","sorry","view_more","no_command","no_combo","error_template_type","error_type","tmpl_method_undefined","form","required","onlyone","maxLength","reach_maxLength","over_maxLength","minLength","maxValue","minValue","maxSize","minSize","pattern","password_weak","password_middle","password_strong","number_invalid","number_integer","number_decimal_digit","step_max_value","step_min_value","time_exceed","time_format","period_invalid","beforeNow","afterNow","compare","invalid_option","need_valid_option","choose_atleastone","complete_required","jigsaw_drag_right","jigsaw_required","jigsaw_errorimg","upload_loading","upload_invalid_file","no_files","upload_error","upload_limit","upload_invalid_file_type","upload_invalid_data","upload_no_data","upload_maxfilesize","upload_minfilesize","year","month","day","sky","hour","minute","second","calendar","now","today","weeknow","monthnow","yearnow","day_title","day_title_1","y","monthname","backdate","picktime","H","from_to","error","ps","a","args","$0","$1","$2","end","strTrim","String","string","strFrom","b","lastIndexOf","substr","strTo","strLen","$","x","cnBytes","charCodeAt","strPad","strFormat","Array","isArray","encodeURIComponent","e","lodash","strEscape","strHighlight","RegExp","strSplitword","join","$3","undefined","_s_regexp","f","number","isNaN","isNumber","numRange","numAdd","forEach","Math","max","pow","round","numFormat","split","charAt","numDecimal","parseInt","_date_D","_date_sf","dateFormat","dateParse","getFullYear","getMonth","getDate","h","getHours","getMinutes","getSeconds","w","dateWeek","Date","M","getTime","dateAdd","setFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","weekPoint","weekStart","getDay","ceil","floor","dateWeekFirst","dateWeekLast","dateValid","dateDiff","_dateDiff","z","dateSheet","docView","Range","movePoint","__defineGetter__","this","__defineSetter__","deleteContents","insertNode","createTextNode","startContainer","firstChild","selectNodeContents","nextSibling","setStart","setEnd","select","getSelection","removeAllRanges","addRange","rngSelection","rangeCount","getRangeAt","rngElement","parentNode","rngCursor","selectionStart","selectionEnd","nodeType","createRange","collapseToEnd","rngCursorOffset","startOffset","body","createTextRange","setEndPoint","rngText","text","_adjacent_where","_adjacent_query","_div","createElement","innerHTML","frag","createDocumentFragment","appendChild","el","isWidget","html","ex","removeChild","jquery","insertAdjacentHTML","insertBefore","append","lastElementChild","lastChild","prepend","firstElementChild","before","previousElementSibling","previousSibling","after","nextElementSibling","replaceWith","_css_camelize","toUpperCase","_set_style","v","style","getComputedStyle","offsetWidth","offsetHeight","_number","css","arguments","k","T","N","doc","cvs","documentElement","_arr_comma","_snaptype","top","bottom","left","right","tl","tr","rt","rb","br","bl","lb","lt","_snapMag","pix","mag","inner","canvasOffset","bcr","clientWidth","clientHeight","offset","width","height","offsetTop","offsetLeft","offsetParent","clientLeft","scrollLeft","clientTop","scrollTop","getBoundingClientRect","snap","originalEvent","clientX","clientY","g","ew","eh","ot","or","ob","ol","type","pix_r","pix_b","mag_r","mag_b","mag_l","mag_t","target","snapTo","jsonArray","_EventUser","_event_remove","fn","pull","id","_event_name","_event_space","sort","_event_handlers","uid","filter","EventListener","ctx","one","ori","addEvent","concat","removeEvent","eventX","targetTouches","eventY","moveup","moveCB","upCB","downEv","moveHdl","upHdl","dir","evX","evY","prevent","preventDefault","currentTarget","userSelect","addEventListener","abs","removeEventListener","passive","vueMap","Event","$el","isElement","has","$parent","assign","defaultOptions","Map","dfclsCache","q","http","loc","extend","extendDeep","constructor","merge","mergeDeep","cloneDeep","eval","str","opt","keys","Function","map","array","arrayNumber","unitSize","size","allowMinus","idsAdd","idsRemove","idsAny","idsAll","classAdd","className","classRemove","classAny","$strTrim","urlEncode","JSON","stringify","urlDecode","decodeURIComponent","urlFormat","urlParam","A","substring","urlServer","src","startsWith","endsWith","urlComplete","download","wifiConfirm","dtask","plus","downloader","createDownload","nativeUI","showWaiting","task","status","state","toast","runtime","openFile","filename","alert","closeWaiting","start","link","href","downloadTarget","click","networkinfo","getCurrentType","index","buttons","vm","isView","ownerView","dialog","closePopup","dispatchEvent","previewVideo","previewImage","imgs","options","slotsChildren","slots","getChildren","children","hasChild","ease","ms","count","cr","d1","it","setInterval","d2","ri","st","cos","PI","clearInterval","print","ownerDocument","each","outerHTML","getAttribute","input2text","isFormWidget","formText","defaultValue","isChecked","checked","$options","printf","frames","wPrintFrame","appendTo","open","write","head","queryEncode","config","FormData","contentType","Qs","arrayFormat","ajax","cmd","Promise","reject","context","lock","ajaxLock","pick","responseType","pop","post","then","res","success","complete","disposition","headers","fileName","decodeURI","blob","Blob","URL","createObjectURL","console","resolve","catch","response","exec","position","timeout","title","cover","isDialog","config_uid","defaults","interceptors","use","callback","url","_dfopt","includes","event","catchReject","reason","formIgnore","setAttribute","removeAttribute","created","updated","onmousedown","movable","fullScreen","sl","sr","sb","cx","cy","setPosition","moved","mounted","unmounted","labelWidth","setProperty","Vue","directive","dialogMove","bindCache","props","orientUid","runtimeX","events","set","dftX","getDefaultProp","cuid","watchs","Proxy","obj","prop","$props","newval","$watch","delete","methods","x_default","dftopt","ownproperty","$attrs","class","submit","rsv","$nextTick","validate","getFormList","range","valid","group","getPostData","template","npr","createPop","getPops","removePop","trigger","ev","runType","getOn","fireEvent","once","vnode","getKey","closest","sel","contains","getElementById","createEvent","CustomEvent","snapElem","scrollIntoView","scrollState","scrollTo","divide","hasBubble","commander","slots_children","$slots","html_icon","cls","onclick","font","slot","html_slots","html_self","tagName","html_attrs","html_props","computed","dfish","provideView","pubParent","providePubParent","pubParentName","parentElement","html_class","colspan","rowspan","html_style","html_binds","render","loaded","getSrc","request","showLoading","w-width","typeIcon","showButton","face","info","warning","question","defaultIconType","cueYes","icon","valign","mixins","TemplateAlert","cueNo","script","templateHooks","TemplateConfirm","TemplateTip","TemplateLoading","com","WidgetAbs","inject","onScroll","wScrollPercentX","scrollXPosition","wScrollSizeX","$refs","wScrollBarThumbX","transform","wScrollPercentY","scrollYPosition","wScrollSizeY","wScrollBarThumbY","dnEv","dnX","dnY","scrLeft","scrTop","ov","wScrollOverflow","mvEv","classList","upEv","WidgetBase","isDeactivated","watch","onScrollPosition","onScrollAttributeChange","ovf","wScrollCont","scrollToY","scrollToX","html_scroll_slots","scrollX","scrollY","ref","onscroll","onmouseenter","initScroll","html_scroll_cont_style","default","flow","cont","percent","wrap","thbX","thbY","scroll_observe","html_scroll_class","sx","sy","scrollFlex","scrollView","setTimeout","querySelector","observe","MutationObserver","attributes","deactivated","activated","html_align_class","align","vertical","Scroll","AlignParent","provide","provideLayout","Horizontal","hover","onerror","dataUrl","svg","Vertical","isCurrent","inCurrent","imgWidth","imgHeight","disabled","square","canPlay","onmouseleave","SrcParent","pops","beforeCreate","popCommanders","reload","find","querySelectorAll","fv","groupFormVal","val","formVal","fAll","dom","not","indeterminate","selectedIndex","getValidError","wid","_err_ns","warn","showErrorTip","isModified","original","saveModified","resetForm","empty","reset","local","findIndex","html_pops","Pop","focusable","aria-hidden","viewBox","opacity","attributeName","values","begin","dur","repeatCount","p-id","autoHide","current","arrow","indicator-dots","duration","item","rot","rotate","swiper","maxWidth","maxHeight","clickCancel","clickOK","hasYear","focusYear","min-value","minYear","max-value","maxYear","keep-index","yearList","hasMonth","focusMonth","minMonth","maxMonth","monthList","hasDate","focusDate","minDate","maxDate","dateList","hasHour","focusHour","minHour","maxHour","hourList","hasMinute","focusMinute","minMinute","maxMinute","minuteList","hasSecond","focusSecond","minSecond","maxSecond","secondList","hasWeek","focusWeek","minWeek","maxWeek","weekList","format","nd","xd","weekFirst","weekLast","startYear","endYear","monthDays","minTime","maxTime","weekText","from","startDate","endDate","ViewAbs","provideBoxParent","provideRangeParent","TemplatePreviewMedia","dateOptions","dialogOptions","TemplateDateSheet","on","SVGIcon","O","_dialogSnapHooks","_dialogSnap","View","emits","axis","animateClass","snapClass","keepHover","hoverTimer","hoverMove","closed","animating","_pos","snapStyle","feat","getOptions","_dft_pos","getLocalElem","getCommander","snapTargetElem","defaultSnapTargetElem","snapCls","fixSnapStyle","layBottom","layTop","_fitpos","indent","lp","lc","defaultSnapPosition","prong","setMaxHeight","checkOutScreen","closeRelease","listenHide","setListenHide","hoverOver","clearTimeout","dropHover","evs","independent","stopPropagation","hvOver","hvMove","addClass","Dialog","cue","Alert","html_prop_class","inst","tipCache","time","dropper","showDrop","mouses","drop","onmouseup","removeClass","showDropIcon","isMore","clickTab","clickClose","clickDrop","isDisabled","html_drop","Img","focusIcon","dropIcon","closable","isCombo","Menu","minWidth","dropClass","dropPosition","onClose","Button","closeSub","parentMenu","subMenu","rootCommander","bbr","mousewheel","wheelDelta","getRoot","html_buttons","MenuButton","onwheel","_provideTable","provideLevel","provideParentTR","sticky","initFixedCells","requestAnimationFrame","fixedCells","reverse","td","colIndex","cellIndex","slotHooks","thead","tbody","hiddens","colgroup","columns","isCurrentChild","PubParent","provideLeafLevel","provideParentLeaf","provideInBody","_provideThead","_provideTBody","rows","sortUID","isExpanded","slot_rows","row","chd","vr","vi","html_tbody","cg","fixed","mw","cellpadding","cellspacing","isEscape","escape","immediate","getCurrent","viewCurrent","expandToView","hd","hasAttribute","inBody","isDisplay","expanded","setExpanded","exp","toggle","leaf","rowIndex","rs","ci","dfishColIndex","level","td_props","col","len","sortType","sortOrder","onClick","sortable","clickSort","order","orders","sortOrders","$emit","cols","dc","defaultColspan","lazy","focusIndex","setFocus","clickArrow","clickIndicator","indicatorDots","childList","tab","pages","pos","TabButton","SwiperItem","ButtonBar","Swiper","line","suffix","labelVertical","mv","modelValue","isFocus","hasBorder","isPlural","warnClass","modifiedValue","placeholder_type","changed","isUsableVal","input_value","defaultRuleValue","rules","ques","validTriggers","validQueues","isNormal","isReadonly","readonlyValidate","trim","hs","validHooks","rv","rule","formErr","que","arg","label","getLabelText","_tip","errorTipTarget","focus","oninput","baseFocus","baseBlur","isFocusTarget","relatedTarget","isUnmounted","dv","clone","html_label","Label","html_input","input_tag","input_type","input_name","readonly","placeholder","input_placeholder","autocomplete","onfocus","onblur","input_prop","html_input_hidden","html_button","html_form","html_main","fh","inputHeight","input_title","main_prop","pubValidHooks","validateHandler","autoPlaceholder","html_on","fw","inputWidth","FormBase","modifiedChecked","defaultChecked","boxProxy","getVal","setVal","checkValue","rdo","siblings","check","relate","onbasechange","onchange","input_icon","html_target","partialSubmit","CheckBox","triple","all","checkstate","isPartial","getRelates","c0","c1","c2","getInitLoaded","childrenList","isFolder","boxSync","tripleAll","ico","expandedIcon","collapsedIcon","box","html_cont","tree","display","fd","ds","isJumpFocus","limit","buttonCount","currentPage","clickItem","onJumpClick","jumpInput","ic","html_face_button","html_face_simple","html_face_normal","sumPage","sp","cp","min","noFirstLast","labelFirst","iconFirst","labelPrev","iconPrev","labelNext","iconNext","labelLast","iconLast","onkeydown","keyCode","html_face_mini","minorElem","toNext","toggleClass","dragstart","prevElem","nextElem","help","vert","inVertical","downX","downY","posName","sizeName","clientName","downPos","minPos","maxPos","movRect","nextUntil","playing","getMimeType","filePath","mimeType","poster","onplay","onpause","controls","vd","paused","play","pause","onlyTime","clickStep","clickPopYear","headYear","headPopYear","popYear","auto-hide","clickPopYearStep","mousewheelPopYear","dt","clickPopYearItem","clickPopMonth","headMonth","headPopMonth","popMonth","clickPopMonthItem","bodyList","pad","$event","hasTime","scroll-y","scroll-view","bodyListHour","isHourDisabled","clickHour","bodyListMinute","isMinuteDisabled","clickMinute","bodyListSecond","isSecondDisabled","clickSecond","clickNow","clickConfirm","value2date","currentDate","nv","ny","oy","nc","formatter","bd","ed","setDefaultTime","weekday","dh","defaultHour","enableHour","dm","defaultMinute","enableMinute","em","defaultSecond","enableSecond","es","fixDate","beginDate","date","fm","focusValue","bodyListYear","bodyListMonth","bodyListWeek","bodyListDate","cell","vt","prevWidth","nextWidth","prevBcr","nextBcr","marginTop","marginLeft","prevItems","firstBcr","lastBcr","wrapBcr","prevSlots","nextSlots","provideOptionParent","setup","startY","endY","minY","maxY","optY","optH","self","moveY","lastY","lastTime","speed","lastSpeed","transition","nowY","nowTime","timeStamp","minSpeed","yuH","update","sc","xv","bcrRoot","bcrOpt","ni","xi","asc","optionHeight","keepIndex","getIndex","transEnd","ret","ontouchstart","emit","Text","CheckBoxGroup","w_name","checkedValue","uncheckedValue","checkedText","uncheckedText","mimes","suffixHooks","xls","ppt","htm","zip","fla","fon","iso","vid","aud","img","unit","fileTypeHooks","video","audio","image","list","emiting","parse","getFileTypes","fileTypes","getAccept","mime","isImage","file","isVideo","isAudio","fileSelected","uploadLimit","files","xfs_names","nfs_names","ft_names","xfs","maxFileSize","nfs","minFileSize","ft","sfx","nextUpload","upload","uploadSrc","source","CancelToken","onUploadProgress","progress","total","cancelToken","token","message","downloadSrc","chooseFile","html_list","itemWidth","html_input_form","multiple","accept","html_input_button","button","html_input_list","canUpload","validateDefault","uploadbbr","data-url","dataURL","thumbnailWidth","img-width","img-height","thumbnailHeight","tip","showFileName","provideUpload","createImageThumbnail","FileReader","onload","readAsDataURL","createVideoThumbnail","getContext","videoWidth","videoHeight","drawImage","toDataURL","muted","setProgress","beginPath","translate","moveTo","arc","closePath","fillStyle","fill","strokeStyle","stroke","thumbnail","thumbnailSrc","FileUpload","MediaUploadItem","MediaUpload","isMul","clickOption","doFormat","step","autoFix","buttonPosition","separator","rightward","activeElement","stepBy","forms","endValue","beginValue","tip_uid","btns","getCompareError","tv","decimal","getRangeError","onkeyup","onclose","doAutoFix","re","getPeriod","calendarCallback","timeCols","Calendar","cv","cancelable","input_text","dropWidth","DropBox","picker","clickPicker","clickClear","closeDrop","showSuggest","sug_timer","sensor_text","sensor_width","addVal","unionBy","clear","suggest","input","clickDropper","html_options","forbid","html_var","sensor","initOptions","sugger","_KC","imeMode","paste_rng","currOpt","store","strict","addStore","inp","rng_text","eq","addBack","innerText","fixStyle","extractContents","nodeValue","param","ondblclick","contentEditable","bigSrc","smallSrc","smallWidth","smallLeft","mousedown","handler","log","big","small","init_text","locked","isSuccess","isError","setThumbLeft","timer","thumb","thumbWidth","mainWidth","hf","track","mouseenter","main","ondrop","TemplateJigsaw","hoverDrop","hoverWrap","hoverIndex","sum","hoverItem","html_star","onMouseenter","half","allowHalf","stars","icons","onMouseleave","WIDGET","DocView","DialogMove","Confirm","Tip","Loading","Grid","Table","TableColumns","TableColumn","TableTBody","TableTHead","TableTR","TableTD","TableTH","Tabs","Tab","Album","SubmitButton","Html","Tree","Leaf","PageBar","Split","Toggle","Video","Progress","Timeline","TimelineItem","SlidePicker","Hidden","Textarea","RadioGroup","Radio","TripleBox","Switch","ImageUpload","Option","Spinner","DatePicker","PickBox","Password","ComboBox","LinkBox","Jigsaw","Form","Rate","install","component"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,kBAAZC,SAA0C,kBAAXC,OACxCA,OAAOD,QAAUD,IACQ,oBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,QAAS,GAAIH,GACM,kBAAZC,QACdA,QAAQ,SAAWD,IAEnBD,EAAK,SAAWC,KARlB,CASGK,QAAQ,WACX,O,YCTE,SAASC,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,KAAQ,GAGLK,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUP,QAGnC,IAAIC,EAASkC,EAAiB5B,GAAY,CACzCK,EAAGL,EACH6B,GAAG,EACHpC,QAAS,IAUV,OANAqB,EAAQd,GAAUW,KAAKjB,EAAOD,QAASC,EAAQA,EAAOD,QAASiC,GAG/DhC,EAAOmC,GAAI,EAGJnC,EAAOD,QAKfiC,EAAoBI,EAAIhB,EAGxBY,EAAoBK,EAAIH,EAGxBF,EAAoBM,EAAI,SAASvC,EAASwC,EAAMC,GAC3CR,EAAoBS,EAAE1C,EAASwC,IAClCzB,OAAO4B,eAAe3C,EAASwC,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhER,EAAoBa,EAAI,SAAS9C,GACX,qBAAX+C,QAA0BA,OAAOC,aAC1CjC,OAAO4B,eAAe3C,EAAS+C,OAAOC,YAAa,CAAEC,MAAO,WAE7DlC,OAAO4B,eAAe3C,EAAS,aAAc,CAAEiD,OAAO,KAQvDhB,EAAoBiB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQhB,EAAoBgB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKtC,OAAOuC,OAAO,MAGvB,GAFArB,EAAoBa,EAAEO,GACtBtC,OAAO4B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOhB,EAAoBM,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRpB,EAAoBwB,EAAI,SAASxD,GAChC,IAAIwC,EAASxC,GAAUA,EAAOmD,WAC7B,WAAwB,OAAOnD,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAgC,EAAoBM,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRR,EAAoBS,EAAI,SAASgB,EAAQC,GAAY,OAAO5C,OAAOC,UAAUC,eAAeC,KAAKwC,EAAQC,IAGzG1B,EAAoB2B,EAAI,IAExB,IAAIC,EAAazD,OAAO,qBAAuBA,OAAO,sBAAwB,GAC1E0D,EAAmBD,EAAWzC,KAAKoC,KAAKK,GAC5CA,EAAWzC,KAAOf,EAClBwD,EAAaA,EAAWE,QACxB,IAAI,IAAInD,EAAI,EAAGA,EAAIiD,EAAW/C,OAAQF,IAAKP,EAAqBwD,EAAWjD,IAC3E,IAAIU,EAAsBwC,EAM1B,OAFAtC,EAAgBJ,KAAK,CAAC,OAAO,kBAEtBM,I,sCCvJT,W,oCCAA,W,oCCAA,W,oFCAA,W,kICAA,W,oCCAA,W,oCCAA,W,oCCAA,W,sFCAA,W,yDCAA,W,oCCAA,W,oICAA,W,oCCAA,W,oCCAA,W,oCCAA,W,kCCAA,W,oFCAA,W,2DCAA,W,kCCAA,W,+GCAA,W,sICAA,W,kCCAA,W,kFCAA,W,6DCAA,W,gICAA,W,kCCAA,W,gFCAA,W,kCCAA,W,wdCAIsC,EAAIC,UAAUC,UAAUC,cACxBC,EAASJ,EAAEK,MAAM,mBACjBC,EAAUN,EAAEK,MAAM,oBAEhBvB,EAAI,CACRyB,MAAOP,EACPI,OAAQA,GAAUI,WAAWJ,EAAO,IACpCE,QAASA,GAAWE,WAAWF,EAAQ,IACvCG,QAASL,GAAUJ,EAAEU,QAAQ,UAAY,EACzCC,IAA2B,gCAAtBV,UAAUW,SAA6CZ,EAAEU,QAAQ,WAAa,IAAMG,SAASC,aAClGC,OAAQ,CACNC,KAAK,IAIT,GAAIhB,EAAEK,MAAM,cAAe,CACzBvB,EAAEmC,QAAS,EACXnC,EAAEoC,IAA4B,UAAtBC,SAASC,SACjB,IAAIC,EAASrB,EAAEK,MAAM,gCACjBgB,IAAQvC,EAAEuC,OAAS,CACrBC,QAASD,EAAO,GAAGE,QAAQ,KAAM,OAEnC,IAAIC,EAAUxB,EAAEK,MAAM,gCAClBmB,IACF1C,EAAE0C,SAAU,EACZ1C,EAAEwC,QAAUE,EAAQ,GACpB1C,EAAE2C,cAAiB,aAAaC,KAAKtF,OAAO6D,UAAU0B,aAExD,IAAIC,EAAS5B,EAAEK,MAAM,2BACrB,GAAIuB,EACF9C,EAAE+C,IAAM/C,EAAE8C,QAAS,EACnB9C,EAAEwC,QAAUM,EAAO,GAAGL,QAAQ,KAAM,SAC/B,CACL,IAAIO,EAAO9B,EAAEK,MAAM,yBACfyB,IACFhD,EAAE+C,IAAM/C,EAAEgD,MAAO,EACjBhD,EAAEwC,QAAUQ,EAAK,GAAGP,QAAQ,KAAM,QAKnCzC,EAAEsB,QAAUtB,EAAEsB,OAAS,IAAQtB,EAAEwB,SAAWxB,EAAEwB,QAAU,MAC3DxB,EAAEiC,OAAOC,KAAM,GAGFlC,QC7CXiD,EAAU,EACRC,EAAU,MACVC,EAAQ,kBAAOF,KAAWG,SAAS,IAAM,KAEhC,WAASxD,GACtB,OAAIA,EACKA,EAAEsD,KAAatD,EAAEsD,GAAWC,KAE9BA,KCRM,GACbE,IAAK,IACLC,GAAI,IACJC,KAAM,IACNC,GAAI,IACJC,KAAM,KACNC,QAAS,KACTC,OAAQ,KACRC,MAAO,KACPC,OAAQ,KACRC,KAAM,KACNC,OAAQ,KACRC,OAAQ,KACRxD,OAAQ,KACRyD,IAAK,KACLC,KAAM,KACNC,OAAQ,KACRC,QAAS,KACTC,SAAU,OACVC,QAAS,OACTC,OAAQ,OACRC,KAAM,KACNC,MAAO,KACPC,MAAO,KACPC,QAAS,KACTC,YAAa,OACbC,aAAc,OACdC,WAAY,MACZC,WAAY,MAEZC,YAAa,wDACbC,eAAgB,OAChBC,QAAS,OACTC,KAAM,QACNC,UAAW,cACXC,UAAW,aACXC,cAAe,OACfC,aAAc,aACdC,uBAAwB,2BACxBC,sBAAuB,OACvBC,aAAc,OACdC,UAAW,OACXC,aAAc,OAGdC,eAAgB,oBAChBC,eAAgB,uBAEhBC,eAAgB,kCAChBC,aAAc,iCACdC,cAAe,mBAEfC,KAAM,IACNC,UAAW,CACTC,MAAO,KACPC,KAAM,KACNC,KAAM,KACNC,KAAM,MAGRC,cAAe,OAEfC,kBAAmB,SACnBC,mBAAoB,SAEpBC,iBAAkB,OAClBC,gBAAiB,OACjBC,eAAgB,SAChBC,cAAe,QAEfC,eAAgB,SAChBC,kBAAmB,OACnBC,oBAAqB,UACrBC,cAAe,OAEfC,UAAW,OACXC,iBAAkB,SAClBC,cAAe,SAEfC,SAAU,KACVC,UAAW,KACXC,YAAa,OACbC,cAAe,MAEfC,oBAAqB,oCAErBC,MAAO,CACLC,MAAO,cACPC,UAAW,uBACXC,WAAY,kCACZC,SAAU,iCACVC,oBAAqB,uBACrBC,WAAY,iBACZC,sBAAuB,eAGzBC,KAAM,CACJC,SAAU,UACVC,QAAS,eACTC,UAAW,oBACXC,gBAAiB,gBACjBC,eAAgB,gBAChBC,UAAW,gBACXC,SAAU,aACVC,SAAU,aACVC,QAAS,cACTC,QAAS,cACTC,QAAS,qBACTC,cAAe,IACfC,gBAAiB,IACjBC,gBAAiB,IACjBC,eAAgB,cAChBC,eAAgB,aAChBC,qBAAsB,kBACtBC,eAAgB,SAChBC,eAAgB,SAChBC,YAAa,gCACbC,YAAa,wBACbC,eAAgB,kBAChBC,UAAW,cACXC,SAAU,cACVC,QAAS,wBACTC,eAAgB,SAChBC,kBAAmB,YACnBC,kBAAmB,UACnBC,kBAAmB,SACnBC,kBAAmB,aACnBC,gBAAiB,UACjBC,gBAAiB,SACjBC,eAAgB,aAChBC,oBAAqB,SACrBC,SAAU,SACVC,aAAc,SACdC,aAAc,mBACdC,yBAA0B,kBAC1BC,oBAAqB,oBACrBC,eAAgB,SAChBC,mBAAoB,+BACpBC,mBAAoB,gCAGtBC,KAAM,IACNC,MAAO,IACPC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IAERC,SAAU,CACRC,IAAK,KACLC,MAAO,KACPC,QAAS,KACTC,SAAU,KACVC,QAAS,KACTC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1CC,YAAa,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAI,KAC5CC,EAAG,oBACHC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,OAChFC,SAAU,OACVC,SAAU,OACVC,EAAG,IACH1M,EAAG,IACHH,EAAG,IACH8M,QAAS,aAGXC,MAAO,KAEPC,GAzKa,SAyKVC,GAAY,2BAANC,EAAM,iCAANA,EAAM,kBAOb,OANID,IACFA,EAAIA,EAAE5J,QAAQ,uBAAuB,SAAS8J,EAAIC,EAAIC,GACpD,IAAIhN,EAAI6M,EAAK5K,WAAW8K,IACxB,OAAY,MAAL/M,GAAmB,KAANA,EAAW,GAAKgN,EAAKhN,EAAIgN,EAAKhN,MAG/C4M,GAGTK,IAAK,MCjLDC,EAAU,SAACN,GAAD,OAAOO,OAAOP,GAAG5J,QAAQ,aAAc,KAEjDoK,EAAS,SAACR,GAAD,OAAY,MAALA,EAAY,GAAK,GAAKA,GAUtCS,EAAU,SAACT,EAAGU,EAAGvN,GACrB,IAAIC,EAAID,EAAI6M,EAAEW,YAAYD,GAAKV,EAAEzK,QAAQmL,GACzC,OAAOtN,EAAI,EAAI,GAAK4M,EAAEY,OAAOxN,EAAIsN,EAAE/O,SAI/BkP,EAAQ,SAACb,EAAGU,EAAGvN,GACnB,IAAIC,EAAID,EAAI6M,EAAEW,YAAYD,GAAKV,EAAEzK,QAAQmL,GACzC,OAAOtN,EAAI,EAAI,GAAK4M,EAAEY,OAAO,EAAGxN,IAI5B0N,EAAS,SAAC/N,EAAG2N,GACjB,IAAK3N,EAAG,OAAO,EACV2N,IAAGA,EAAIK,EAAEC,EAAEC,SAAW,GAE3B,IADA,IAAI7N,EAAI,EACC3B,EAAI,EAAGwB,EAAIF,EAAEpB,OAAQF,EAAIwB,EAAGxB,IACnC2B,GAAKL,EAAEmO,WAAWzP,GAAK,IAAMiP,EAAI,EACnC,OAAOtN,GAIH+N,EAAS,SAASnB,EAAGU,EAAGvN,GAE7B,GADAA,EAAS,MAALA,EAAY,IAAOA,EAAI,IACtBuN,EACJ,OAAOV,EAAI,GAAK7M,EAAI6M,EAAIA,EACzBA,GAAQ,GACR,MAAOA,EAAErO,OAAS+O,EACjBV,EAAI7M,EAAI6M,EACT,OAAOA,GAGFoB,EAAY,SAACpB,EAAGU,EAAGvN,EAAGC,GAE1B,OADK,MAAL4M,IAAcA,GAAK,IACdA,GAAMU,EACPW,MAAMC,QAAQZ,GACTV,EAAE5J,QAAQ,kBAAkB,SAAS8J,EAAIC,GAC9C,OAAgB,MAATO,EAAEP,GAAe/M,EAAI8M,EAAK,GAAM/M,EAAIoO,mBAAmBb,EAAEP,IAAOO,EAAEP,MAGpEH,EAAE5J,QAAQ,4BAA4B,SAAS8J,EAAIC,GACxD,IAAIqB,EAAIC,IAAO/N,IAAIgN,EAAGP,GACtB,OAAY,MAALqB,EAAapO,EAAI8M,EAAK,GAAM/M,EAAIoO,mBAAmBC,GAAKA,KAR9CxB,GAajB0B,EAAY,SAAS3O,GAC1B,OAAY,MAALA,GAAaA,EAAI,IAAIqD,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,MAAO,UAAY,IAIrHuL,EAAe,SAAS3B,EAAGU,EAAGvN,EAAGC,GACtC,OAAQ4M,GAAQ,IAAI5J,QAAQwL,OAAO,qEAAuEC,EAAanB,EAAGvN,GAAG,GAAM2O,KAAK,KAAO,IAAK,OAAO,SAAS5B,EAAIC,EAAIC,EAAI2B,GAC5K,YAAcC,IAAPD,EAAmB5B,EAAK,eAAiB/M,GAAK,aAAe,KAAO2O,EAAK,YAK/EE,EAAY,SAASjC,GAC1B,OAAOA,EAAE5J,QAAQ,2BAA4B,SAIxCyL,EAAe,SAAS7B,EAAGU,EAAGvN,GACnC,IAAIqO,EAAI,CAACrO,EAAI8O,EAAUjC,GAAKA,GACvB9M,EAAI8M,EAAErO,OACX,GAAI+O,EAAI,GAAKxN,EAAIwN,EAChB,IAAK,IAAI/N,EAAIO,EAAI,EAAGP,GAAK+N,EAAG/N,IAC3B,IAAK,IAAsBuP,EAAlBzQ,EAAI,EAAGwB,EAAIC,EAAIP,EAAMlB,GAAKwB,EAAGxB,IACrCyQ,EAAIlC,EAAEY,OAAOnP,EAAGkB,GAChB6O,EAAEvP,KAAKkB,EAAI8O,EAAUC,GAAKA,GAI7B,OAAOV,GCvFFW,EAAS,SAACnC,GACd,IAAIrM,EAAiB,kBAANqM,EAAiB3K,WAAW2K,EAAE5J,QAAQ,gBAAiB,MAAQ4J,EAC9E,OAAOoC,MAAMzO,GAAK,EAAIA,GAGlB0O,EAAW,SAACrC,GAAD,OAAY,MAALA,IAAcoC,MAAMpC,IAGtCsC,EAAW,SAAStC,EAAGU,EAAGvN,GAC/B,OAAY,MAAL6M,EAAcU,GAAW,IAANA,EAAWA,EAAKvN,GAAW,IAANA,EAAWA,EAAI6M,GAAOU,GAAW,IAANA,IAAYV,EAAIU,EAAKA,GAAMvN,GAAW,IAANA,IAAY6M,EAAI7M,EAAKA,EAAI6M,GAG9HuC,EAAS,WAAkB,IAC/B,IAAIrP,EAAI,EACJS,EAAI,EAFuB,mBAANsM,EAAM,yBAANA,EAAM,gBAQhC,OALCA,EAAKuC,SAAQ,SAAAxC,GACX9M,EAAIuP,KAAKC,IAAIxP,EAAGuN,EAAQT,EAAI,GAAI,KAAKrO,QACrCgC,GAAKqM,KAEP9M,EAAIuP,KAAKE,IAAI,GAAIzP,GACXuP,KAAKG,MAAMjP,EAAIT,GAAKA,GAGtB2P,EAAY,SAAS7C,EAAGU,EAAGvN,EAAGC,GACnC4M,EAAIO,OAAOP,GACN,MAALU,IAAcA,EAAI,GACb,MAALvN,IAAcA,EAAI,KAClB,IAAIqO,EAAIxB,EAAE5J,QAAQ,UAAW,IAAI0M,MAAM,KAAM/P,EAAIyO,EAAE,GAAIvO,EAAIF,EAAEpB,OAAQF,EAAI2B,EAAI,EAAIH,EAAGc,EAAI,GAAIO,EAAoB,MAAhB0L,EAAE+C,OAAO,GAAa,IAAM,GAC5H,GAAI3P,EACH,GACC3B,GAAKiP,EACL3M,GAAMtC,EAAIwB,EAAIF,EAAE6N,OAAOnP,EAAIiP,EAAGA,GAAKvN,EAAIJ,EAAE6N,OAAOnP,EAAIiP,SAC5CjP,EAAIwB,QAEb,GACCxB,GAAKiP,EACL3M,GAAKtC,EAAI,EAAI0B,EAAIJ,EAAE6N,OAAOnP,EAAGiP,GAAK3N,EAAE6N,OAAO,EAAGF,EAAIjP,IAAMsC,QAChDtC,EAAI,GAEd,OAAO6C,EAAIP,GAAKyN,EAAE7P,OAAS,EAAI,IAAM8O,EAAQT,EAAG,KAAK5J,QAAQwL,OAAO,KAAOzO,EAAI,IAAK,KAAM,IAAM,KAG3F6P,EAAa,SAAShD,EAAGU,GAC9B,GAAKA,EAEE,IAAIA,EAAI,EACd,OAAOrL,WAAW8M,EAAOnC,IAEzB,IAAIkC,EAAIzB,EAAQ,GAAKT,EAAG,KACxB,OAAOkC,EAAIrB,EAAM,GAAKb,EAAG,KAAO,IAAMkC,EAAEtN,MAAM,EAAG8L,GAAKV,EALtD,OAAOiD,SAASd,EAAOnC,KCtCnBkD,EAAU,MAGVC,EAAW,sBAGXC,EAAa,SAASpD,EAAGU,GACZ,kBAANV,IACTA,EAAIqD,EAAUrD,EAAGU,IACnB,IAAInN,EAAI,CACNiM,EAAGQ,EAAEsD,cACLpQ,EAAG8M,EAAEuD,WACLnQ,EAAG4M,EAAEwD,UACLC,EAAGzD,EAAE0D,WACLjS,EAAGuO,EAAE2D,aACL5Q,EAAGiN,EAAE4D,cAEH7Q,GAAK2N,GAAKyC,GAAU/M,QAAQ,OAAQ7C,EAAEiM,GAAGpJ,QAAQ,KAAM+K,EAAO5N,EAAEL,EAAI,IAAIkD,QAAQ,KAAM+K,EAAO5N,EAAEH,IAAIgD,QAAQ,KAC3G+K,EAAO5N,EAAEkQ,IACVrN,QAAQ,KAAM+K,EAAO5N,EAAE9B,IAAI2E,QAAQ,KAAM+K,EAAO5N,EAAER,IAClDqD,QAAQ,IAAK7C,EAAEL,EAAI,GAAGkD,QAAQ,IAAK7C,EAAEH,GAAGgD,QAAQ,IAAK7C,EAAEkQ,GAAGrN,QAAQ,IAAK7C,EAAE9B,GAAG2E,QAAQ,IAAK7C,EAAER,GAC9F,GAAIA,EAAEwC,QAAQ,MAAQ,EAAG,CACvB,IAAIsO,EAAIC,EAAS9D,GACjBjN,EAAIA,EAAEqD,QAAQ,KAAM+K,EAAO0C,EAAE,KAAKzN,QAAQ,IAAKyN,EAAE,IAEnD,OAAO9Q,GAIHsQ,EAAY,SAASrD,EAAGU,GAG5B,IAAIvN,EAFJ6M,GAAK,GAAKA,GAAG5J,QAAQ,YAAa,OAClCsK,GAAKA,GAAKyC,GAAU/M,QAAQ,kBAAmB,QAE/C,IAAIoJ,GAAKrM,EAAIuN,EAAEnL,QAAQ,UAAY,GAAK4M,EAAOnC,EAAEY,OAAOzN,EAAG,MAAsC,IAAI4Q,MAClGT,cACCU,GAAK7Q,EAAIuN,EAAEnL,QAAQ,QAAU,EAAIkN,KAAKC,IAAIP,EAAOnC,EAAEY,OAAOzN,EAAG,IAAM,EAAG,GAAK,EAC3EC,GAAKD,EAAIuN,EAAEnL,QAAQ,QAAU,GAAI4M,EAAOnC,EAAEY,OAAOzN,EAAG,KAAW,EAC/DyM,GAAKzM,EAAIuN,EAAEnL,QAAQ,QAAU,EAAI4M,EAAOnC,EAAEY,OAAOzN,EAAG,IAAM,EAC1DD,GAAKC,EAAIuN,EAAEnL,QAAQ,QAAU,EAAI4M,EAAOnC,EAAEY,OAAOzN,EAAG,IAAM,EAC1DJ,GAAKI,EAAIuN,EAAEnL,QAAQ,QAAU,EAAI4M,EAAOnC,EAAEY,OAAOzN,EAAG,IAAM,EAC9D,IAAKA,EAAIuN,EAAEnL,QAAQ,QAAU,EAAG,CAC9B,IAAIsO,EAAI1B,EAAOnC,EAAEY,OAAOzN,EAAG,IACvBY,EAAI+P,EAAS,IAAIC,KAAKvE,EAAG,EAAG,IAGhC,OAFIzL,EAAE,IAAMyL,IACVzL,EAAI+P,EAAS,IAAIC,KAAKvE,EAAG,EAAG,KACvB,IAAIuE,KAAKhQ,EAAE,GAAGkQ,UAAsB,GAATJ,EAAI,GAASX,GAEjD,OAAO,IAAIa,KAAKvE,EAAGwE,EAAG5Q,EAAGwM,EAAG1M,EAAGH,IAI3BmR,EAAU,SAASlE,EAAGU,EAAGvN,GAC7BA,EAAIgP,EAAOhP,GACX,IAAIqO,EAAI,IAAIuC,KAAK/D,EAAEiE,WAenB,MAdU,MAANvD,EACFc,EAAE2C,YAAYnE,EAAEsD,cAAgBnQ,GACnB,MAANuN,EACPc,EAAE4C,SAAS5C,EAAE+B,WAAapQ,GACb,MAANuN,EACPc,EAAE6C,QAAQ7C,EAAEgC,UAAYrQ,GACX,MAANuN,EACPc,EAAE8C,SAAS9C,EAAEkC,WAAavQ,GACb,MAANuN,EACPc,EAAE+C,WAAW/C,EAAEmC,aAAexQ,GACjB,MAANuN,GACPc,EAAEgD,WAAWhD,EAAEoC,aAAezQ,GACrB,MAANuN,GAAmB,MAANA,GAAcc,EAAEgC,WAAaxD,EAAEwD,YAC/ChC,EAAI,IAAIuC,KAAKvC,EAAEyC,UAAYzC,EAAEgC,UAAYN,IACpC1B,GAKHsC,EAAW,SAAS9D,GACxB,IAAIU,EAAqB,MAAjBK,EAAEC,EAAEyD,UAAoB1D,EAAEC,EAAEyD,UAAY,EAC5CtR,EAAqB,MAAjB4N,EAAEC,EAAE0D,UAAoB3D,EAAEC,EAAE0D,UAAY,EAC5Cb,EAAI7D,EAAE2E,UAAY,EAClBvR,EAAI,IAAI2Q,KAAK/D,EAAEsD,cAAetD,EAAEuD,WAAYvD,EAAEwD,UAAYK,EAAInD,GAC9Dc,EAAIiB,KAAKmC,MAAMxR,EAAI,IAAI2Q,KAAK3Q,EAAEkQ,cAAe,EAAG,IAAMJ,GACtDhB,EAAI,IAAI6B,KAAK/D,EAAEsD,cAAetD,EAAEuD,WAAYvD,EAAEwD,UAAYK,EAAI1Q,GAClE,MAAO,CAACC,EAAEkQ,cAAeb,KAAKoC,OAAOrD,EAAI,GAAK,GAAIU,EAAG,IAAI6B,KAAK7B,EAAE+B,UAAa,EAAIf,EAAW,KAIxF4B,GAAgB,SAASrG,GAC7B,IAAItL,EAAI4N,EAAE+C,SAAS,IAAIC,KAAKtF,EAAM,EAAG,IAGrC,OAFItL,EAAE,IAAMsL,IACVtL,EAAI4N,EAAE+C,SAAS,IAAIC,KAAKtF,EAAM,EAAG,KAC5BtL,GAIH4R,GAAe,SAAStG,GAC5B,IAAIiC,EAAIoD,EAAS,IAAIC,KAAKtF,EAAM,GAAI,KAGpC,OAFIiC,EAAE,KAAOjC,IACXiC,EAAIoD,EAAS,IAAIC,KAAKtF,EAAM,GAAI,MAC3BiC,GAIHsE,GAAY,SAAShF,EAAGU,GAC5BV,GAAK,GAAKA,GAAG5J,QAAQ,YAAa,OAClC,IAAIhD,EAAIiQ,EAAUrD,EAAGU,GACjBlB,EAAIpM,EAAEkQ,cACV,OAAO9D,GAAK,KAAQA,GAAK,MAAQQ,GAAKoD,EAAWhQ,EAAGsN,IAGhDuE,GAAW,SAASjF,GAAoB,IAAjBU,EAAiB,uDAAb,IAAIqD,KAAM5Q,EAAG,uCAG5C,OAFiB,kBAAN6M,IAAgBA,EAAIqD,EAAUrD,IACxB,kBAANU,IAAgBA,EAAI2C,EAAU3C,IACjCvN,GACN,IAAK,IACH,IAAIqO,EAAId,EAAE4C,cAAgBtD,EAAEsD,cACxBpB,EAAIgC,EAAQlE,EAAG7M,EAAGqO,GAEtB,OADIU,EAAIxB,GAAGc,IACJA,EACT,IAAK,IACH,IAAIhC,EAAI0F,UAAUlF,EAAGU,EAAG,KACpByE,EAAIjB,EAAQlE,EAAG,IAAKR,GAIxB,OAHAgC,EAAI2D,EAAE7B,cAAgB5C,EAAE4C,cAAgB5C,EAAE6C,WAAa,GAAK4B,EAAE5B,WAAa7C,EAAE6C,WAAa4B,EAAE5B,WAC5FrB,EAAIgC,EAAQlE,EAAG7M,EAAGqO,GACdU,EAAIxB,GAAGc,IACJA,EAAQ,GAAJhC,EACb,IAAK,IACH,OAAOiD,KAAKoC,OAAOnE,EAAIV,GAAL,MACpB,IAAK,IACH,OAAOyC,KAAKoC,OAAOnE,EAAIV,GAAL,KACpB,IAAK,IACH,OAAOyC,KAAKoC,OAAOnE,EAAIV,GAAK,KAC9B,QACE,OAAOyC,KAAKoC,OAAOnE,EAAIV,GAAKkD,KAI5BkC,GAAY,WAAkB,MAClC,OAAO,EAAArE,EAAEsE,SAAQD,UAAV,oB,oBC/ILnU,OAAOqU,QAAUA,MAAMzT,UAAU0T,YAC/BD,MAAMzT,UAAU2T,mBAClBF,MAAMzT,UAAU2T,iBAAiB,QAAQ,WACvC,OAAOC,KAAK1O,cAEduO,MAAMzT,UAAU6T,iBAAiB,QAAQ,SAAS1F,GAChDyF,KAAKE,iBACLF,KAAKG,WAAWlQ,SAASmQ,eAAe7F,QAG5CsF,MAAMzT,UAAU0T,UAAY,SAASvF,EAAGU,GACtC,IACEtN,EADED,EAAIsS,KAAKK,eAAeC,YAAcN,KAAKK,eAC1CrU,EAAIuO,EACP/M,EAAI,EACJyN,EAAS,MAALA,EAAYV,EAAIU,EACtB,GACE+E,KAAKO,mBAAmB7S,GACxBF,EAAIwS,KAAK1O,WAAWpF,OACpBF,GAAKwB,QACExB,EAAI,IAAM0B,EAAIA,EAAE8S,cACzB9S,EAAIC,EAAIqS,KAAKK,eACbrU,GAAKwB,EACL,IAAIN,EAAI+N,EAAIV,EAAIvO,EACdwB,EAAI,EACN,GACEwS,KAAKO,mBAAmB5S,GACxBH,EAAIwS,KAAK1O,WAAWpF,OACpBgB,GAAKM,QACEN,EAAI,IAAMS,EAAIA,EAAE6S,cAEzB,GADAR,KAAKS,SAAS/S,EAAE4S,YAAc5S,EAAG1B,GAC7B2B,EAAG,CACL,IAAIoO,EAAIpO,EACR,MAAOoO,EAAEuE,WAAYvE,EAAIA,EAAEuE,WAC3BN,KAAKU,OAAO3E,EAAGvO,EAAIN,KAGvB2S,MAAMzT,UAAUuU,OAAS,WACvB,IAAIrT,EAAI9B,OAAOoV,eACftT,EAAEuT,kBACFvT,EAAEwT,SAASd,QAIf,IAAMe,GAAe,WACnB,IAAIzT,EAAI9B,OAAOoV,eACf,OAAOtT,EAAE0T,YAAc1T,EAAE2T,WAAW,IAEhCC,GAAa,WACjB,IAAI5T,EAAIyT,KACR,OAAOzT,GAAKA,EAAE+S,eAAec,YAEzBC,GAAY,SAAS7G,EAAGU,GAC5B,IAAI/M,EAAIqM,EACR,GAAI/O,OAAOoV,aACT,GAAgC,kBAArBrG,EAAE8G,gBAAyD,kBAAnB9G,EAAE+G,aACnD/G,EAAE8G,eAAiB9G,EAAE+G,aAAoB,MAALrG,EAAYA,EAAIV,EAAElM,MAAMnC,WACvD,CACL,IAAIoB,EAAI9B,OAAOoV,eACI,IAAfrG,EAAEgH,WACHrT,EAAI+B,SAASuR,eAAejB,mBAAmBhG,GACzC,MAALU,GACF/M,EAAE4R,UAAU7E,GACd3N,EAAEuT,kBACFvT,EAAEwT,SAAS5S,GACXZ,EAAEmU,gBAGN,OAAOvT,GAEHwT,GAAkB,WACtB,IAAI7S,EAAIkS,KACJrT,EAAImB,EAAE8S,YACV,GAAS,MAALjU,EACF,OAAOA,EACT,IAAIQ,EAAI+B,SAAS2R,KAAKC,kBAGtB,OAFA3T,EAAEqS,mBAAmB1R,EAAEwR,eAAec,YACtCjT,EAAE4T,YAAY,aAAcjT,GACrBkT,GAAQ7T,GAAGhC,QAGd6V,GAAU,SAASxH,EAAGU,GAW1B,OAVS,MAALV,IACFA,EAAIwG,MACG,MAAL9F,IACEV,EAAE2F,gBACJ3F,EAAE2F,iBACF3F,EAAE4F,WAAWlQ,SAASmQ,eAAenF,KAErCV,EAAEyH,KAAO/G,QAGKsB,IAAXhC,EAAEyH,KAAqBzH,EAAEjJ,WAAaiJ,EAAEyH,MCzF3CC,GAAkB,CAAC,WAAY,aAAc,cAAe,aAC5DC,GAAkB,CAAC,QAAS,UAAW,SAAU,UAEjDC,GAAO,SAAS7U,GACrB,IAAIQ,EAAImC,SAASmS,cAAc,OAC3B9U,IAAGQ,EAAEuU,UAAY/U,GACrB,IAAK,OAAOQ,EAAG,MAAMiO,GAAI,OAAO,EAAhC,QACSjO,EAAI,OAERwU,GAAO,SAAShV,GACrB,IAAIK,EAAiB,kBAANL,EAAiB6U,GAAK7U,GAAKA,EACrCmP,EAAIxM,SAASsS,yBAClB,MAAO5U,EAAE2S,WACR7D,EAAE+F,YAAY7U,EAAE2S,YACjB,IAAK,OAAO7D,EAAG,MAAMV,GAAI,OAAO,EAAhC,QACSpO,EAAI8O,EAAI,OAGZgG,GAAK,SAAS3U,GAClB,GAAIA,EACF,OAAOA,EAAE4U,SAAW5U,EAAE2U,KAAO3U,GAI3B6U,GAAO,SAAPA,EAAgB7U,EAAGR,EAAGY,GAC3B,GAAS,MAALA,EAAW,CACd,GAAS,MAALZ,EAAW,OAAOQ,EAAEuU,UACxB,IAAKvU,EAAEuU,UAAY/U,EAAG,MAAMsV,GAC3B,MAAO9U,EAAEwS,WACRxS,EAAE+U,YAAY/U,EAAEwS,YACjBqC,EAAK7U,EAAGR,EAAG,QAEN,CAEN,GAAiB,kBAANA,EACV,IACgB,IAAfQ,EAAEyT,SAAiBuB,IAAOhV,GAAGoU,GAAgBhU,IAAIZ,GAAKQ,EAAEiV,mBAAmBd,GAAgB/T,GAAIZ,GAC9F,MAAOsV,GACRD,EAAK7U,EAAGwU,GAAKhV,GAAIY,OAEZ,CACN,IAAIc,EAAId,EAAI,EAAIJ,EAAIA,EAAEqT,WACtBnS,GAAKA,EAAEgU,aAAa1V,EAAS,IAANY,EAAUJ,EAAE0S,YAAoB,IAANtS,EAAUJ,EAAEwS,WAAmB,IAANpS,EAAUJ,EAAI,SAIrFmV,GAAU,SAASnV,EAAGR,GAAmB,OAAfqV,GAAK7U,EAAGR,EAAG,GAAWQ,EAAEoV,kBAAoBpV,EAAEqV,WACxEC,GAAU,SAAStV,EAAGR,GAAmB,OAAfqV,GAAK7U,EAAGR,EAAG,GAAWQ,EAAEuV,mBAAqBvV,EAAEwS,YACzEgD,GAAU,SAASxV,EAAGR,GAAmB,OAAfqV,GAAK7U,EAAGR,EAAG,GAAWQ,EAAEyV,wBAA0BzV,EAAE0V,iBAC9EC,GAAU,SAAS3V,EAAGR,GAAmB,OAAfqV,GAAK7U,EAAGR,EAAG,GAAWQ,EAAE4V,oBAAsB5V,EAAE0S,aAC1EmD,GAAc,SAAS7V,EAAGR,GAC/B,IAAIiN,EAAIzM,EAAE0S,YACV,GAAIjG,EAEH,OADAzM,EAAEqT,WAAW0B,YAAY/U,GAClBwV,GAAO/I,EAAGjN,GAEjB,IAAI0B,EAAIlB,EAAEqT,WAEV,OADAnS,EAAE6T,YAAY/U,GACPmV,GAAOjU,EAAG1B,ICzDbsW,GAAiB,WACtB,IAAI3I,EAAI,CAAC,MAAU,YACnB,OAAO,SAAS3N,GACf,OAAO2N,EAAE3N,IAAMA,EAAEqD,QAAQ,OAAO,SAAS8J,GAAK,OAAOA,EAAG6C,OAAO,GAAGuG,kBAH7C,GAQjBC,GAAa,SAAShW,EAAGe,EAAGkV,GAEjC,GAAiB,kBAANA,GAAkC,MAAhBA,EAAEzG,OAAO,GAAY,CAC7CzO,EAAI+U,GAAc/U,GAAtB,IACCnB,EAAII,EAAEkW,MAAMnV,IAAMoV,iBAAiBnW,EAAG,MAAMe,GAC5CkV,EAAIrH,EAAOqH,EAAEpT,QAAQ,IAAK,KACjB,UAAN9B,GAAuB,WAANA,GACpBnB,EAAIgP,EAAOhP,GAAW,SAANA,EAAeA,EAAoB,MAAhBmB,EAAEyO,OAAO,GAAaxP,EAAEoW,YAAcpW,EAAEqW,cACvEzW,EAAI,IAAGA,EAAI,IAEfA,EAAIgP,EAAOhP,GACZI,EAAEkW,MAAMnV,GAAMnB,EAAIqW,GAAY,WAANlV,EAAiB,EAAI,WAE7CA,EAAI+U,GAAc/U,GACR,UAANA,GAAuB,WAANA,GACpBkV,GAAW,SAANA,IAAiBA,EAAI/G,KAAKC,IAAImH,QAAQL,GAAI,IAC5CA,IAAMpH,MAAMoH,IAAY,WAANlV,IACrBkV,GAAK,MACNjW,EAAEkW,MAAMnV,GAAKkV,EAEd,OAAOjW,GAGFuW,GAAM,SAASvW,EAAGR,EAAGuB,GAC1B,IAAKf,IAAMR,EACV,OAAO,KACR,GAAS,MAALuB,EACH,IAAK,IAAI7C,EAAI,EAAGwB,EAAI8W,UAAUpY,OAAQF,EAAIwB,EAAGxB,GAAK,EACjD8X,GAAWhW,EAAGwW,UAAUtY,GAAIsY,UAAUtY,EAAI,QACrC,CACN,GAAiB,kBAANsB,EAAgB,CAC1B,KAAIA,EAAEwC,QAAQ,KAAO,GAIpB,OAAOhC,EAAEkW,MAAM1W,IAAM2W,iBAAiBnW,EAAG,MAAMR,GAHtCtB,EAAI,EAAR,IAA2CuY,EAAGR,EAAnC9I,EAAI3N,EAAE+P,MAAM,KAA5B,IAAkC7P,EAAIyN,EAAE/O,OAAcF,EAAIwB,EAAGxB,KAC3DuY,EAAInJ,EAAMH,EAAEjP,GAAI,QAAU+X,EAAI/I,EAAQC,EAAEjP,GAAI,OAAS8X,GAAWhW,EAAGyW,EAAGR,GAI1E,IAAK,IAAI/X,KAAKsB,EAAGwW,GAAWhW,EAAG9B,EAAGsB,EAAEtB,MC7ChCwY,IAAI,EAEJC,GAAI,KACJC,GAAMzU,SACN0U,GAAM1U,SAAS2U,gBAEfC,GAAa,SAAAtK,GAAC,OAAIA,EAAE8C,MAAM,MAE1ByH,GAAY,CACjB9G,EAAI6G,GAAW,eACfd,EAAIc,GAAW,eACftK,EAAIsK,GAAW,8BACfvW,EAAG,CAAC,MAAO2M,EAAG,CAAC,MAAOzN,EAAG,CAAC,MAAOU,EAAG,CAAC,MAAOR,EAAG,CAAC,MAAOqX,IAAK,CAAC,MAAOC,OAAQ,CAAC,MAAOC,KAAM,CAAC,MAAOC,MAAO,CAAC,MAC1GC,GAAI,CAAC,MAAOC,GAAI,CAAC,MAAOC,GAAI,CAAC,MAAOC,GAAI,CAAC,MAAOC,GAAI,CAAC,MAAOC,GAAI,CAAC,MAAOC,GAAI,CAAC,MAAOC,GAAI,CAAC,MACzF,EAAK,CAAC,MAAO,EAAK,CAAC,MAAO,EAAK,CAAC,MAAO,EAAK,CAAC,MAAO,EAAK,CAAC,MAAO,EAAK,CAAC,MAAO,EAAK,CAAC,MAAO,EAAK,CAAC,OAG5FC,GAAY,WACjB,IAA0E3Z,EAAtEkC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,MAAO+M,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,MAAUnN,EAAI,CAAC8X,IAAK,CAAC1X,EAAE,GAAI+M,EAAE,IAAK4K,IAAK,CAACrY,EAAE,GAAIU,EAAE,GAAII,EAAE,GAAI2M,EAAE,IAAK6K,MAAM,IAC1I9Z,EAAIkC,EAAEhC,OAAQ,MAAOF,IAAM8B,EAAE8X,IAAI1X,EAAEA,EAAElC,IAAMwY,GAC3CxY,EAAIiP,EAAE/O,OAAQ,MAAOF,IAAM8B,EAAE8X,IAAI3K,EAAEA,EAAEjP,IAAMwY,GACvCtW,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,MAAO+M,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,MAAvD,IAA8DzN,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,MAAOc,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,MACjHtC,EAAIkC,EAAEhC,OAAQ,MAAOF,IAAM8B,EAAE+X,IAAI3X,EAAEA,EAAElC,IAAMwY,GAC3CxY,EAAIiP,EAAE/O,OAAQ,MAAOF,IAAM8B,EAAE+X,IAAI5K,EAAEA,EAAEjP,IAAMwY,GAC3CxY,EAAIwB,EAAEtB,OAAQ,MAAOF,IAAM8B,EAAE+X,IAAIrY,EAAEA,EAAExB,IAAMwY,GAC3CxY,EAAIsC,EAAEpC,OAAQ,MAAOF,IAAM8B,EAAE+X,IAAIvX,EAAEA,EAAEtC,IAAMwY,GACvCtW,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,MACpClC,EAAIkC,EAAEhC,OAAQ,MAAOF,IAAM8B,EAAEgY,MAAM5X,EAAElC,IAAMwY,GAC3C,OAAO1W,EAXU,GAcZiY,GAAe,SAASjY,GAC7B,IAAIyM,EAAIyL,GAAIlY,GAGZ,OAFAyM,EAAE2K,MAASP,GAAIsB,YAAc1L,EAAE2K,MAC/B3K,EAAEyK,OAASL,GAAIuB,aAAe3L,EAAEyK,OACzBzK,GAGF4L,GAAS,SAAS5L,EAAGU,GAC1B,IAAI/M,EAAI,CAAC6W,IAAK,EAAGE,KAAM,EAAGmB,MAAO7L,EAAE2J,YAAamC,OAAQ9L,EAAE4J,cAC1D,GACCjW,EAAE6W,KAAOxK,EAAE+L,UACTpY,EAAE+W,MAAQ1K,EAAEgM,kBACNhM,EAAIA,EAAEiM,eAAiBvL,GAAKV,GACrC,OAAOrM,GAGF8X,GAAM,SAASzL,GACpB,IAAIU,EAAI0J,GAAI8B,WAAY/Y,EAAIiX,GAAI+B,WAAY/Y,EAAIgX,GAAIgC,UAAW5K,EAAI4I,GAAIiC,UAAW9Y,EAAIyM,GAAKA,GAAKmK,KAAQnK,EAAEmI,SAAWnI,EAAEkI,KAAOlI,GAAIrM,EAAIJ,GAAKA,EAAE+Y,wBAC7I,OAAO3Y,EAAI,CAAC+W,KAAO/W,EAAE+W,KAAOhK,EAAIvN,EAAGqX,IAAM7W,EAAE6W,IAAMpX,EAAIoO,EAAGmJ,MAAQhX,EAAEgX,MAAQjK,EAAIvN,EAAGsX,OAAS9W,EAAE8W,OAASrX,EAAIoO,EAAGqK,MAAQlY,EAAEkY,MAAOC,OAASnY,EAAEmY,QACvI9L,GAAKtK,SAAW,CAACgV,KAAMvX,EAAGqX,IAAKhJ,EAAGmJ,MAAOP,GAAIsB,YAAcvY,EAAGsX,OAAQL,GAAIuB,aAAenK,EAAGqK,MAAOzB,GAAIsB,YAAaI,OAAQ1B,GAAIuB,cAAgBzB,IAK5IqC,GAAO,SAASvM,EAAGU,EAAGvN,EAAGC,EAAGoO,EAAGU,EAAGrN,GAClC1B,EAEIA,EAAE6T,SACV7T,EAAIsY,GAAItY,GACAA,EAAEgV,SACVhV,EAAIsY,GAAItY,EAAE+U,OACF/U,EAAEqZ,eAAiBrZ,EAAEsZ,SAAWvC,MACxC/W,EAAIA,EAAEqZ,eAAiBrZ,EACvBA,EAAI,CAACuX,KAAMvX,EAAEsZ,QAAS9B,MAAOxX,EAAEsZ,QAASjC,IAAKrX,EAAEuZ,QAASjC,OAAQtX,EAAEuZ,UAPlEvZ,EAAIsY,GAAItB,IAST,IAAoBwC,EAAGlJ,EAAnB1P,EAAI,GAAId,EAAI,GAAU+W,GAAK,EAAkB4C,GAAf1K,EAAIC,EAAOD,GAASkI,GAAIsB,aAAamB,EAAKzC,GAAIuB,aAC/E5Y,EAAIK,EAAKmX,GAAUnX,KAAO,GAAKA,GAAG0P,MAAM,KAAQyH,GAAUvK,EAC3D,GAAI,QAAQzJ,KAAKxD,EAAE,IAClB,IAAK,IAAItB,EAAI,EAAY6C,EAAI,EAAG7C,EAAIsB,EAAEpB,OAAQF,IAAM,CAMnD,GALAkb,GAAM5Z,EAAEtB,GAAGsR,OAAO,GAAIU,GAAM1Q,EAAEtB,GAAGsR,OAAO,GACxChP,EAAE9B,MAAY,IAAN0a,GAAiB,IAANA,EAAUxZ,EAAEqX,IAAMrX,EAAEsX,SAAiB,IAANhH,GAAiB,IAANA,EAAU/C,EAAI,IAC3EzN,EAAEhB,MAAY,IAAN0a,GAAiB,IAANA,EAAUxZ,EAAEuX,KAAOvX,EAAEwX,QAAgB,IAANlH,GAAiB,IAANA,EAAUzD,EAAI,IAC3EzM,EAAIQ,EAAEtC,IAAM,GAAKsC,EAAEtC,GAAKiP,GAAKmM,EAC7BpY,EAAIxB,EAAExB,GAAKuO,GAAK4M,GAAM3Z,EAAExB,IAAM,EAC1B8B,GAAKkB,EAAG,CACXuV,EAAIvY,EACJ,MAGA,IAAIqb,EAAK/Y,EAAEtC,GAAK,GAAKsC,EAAEtC,GAAK,EAC3Bsb,EAAK9Z,EAAExB,GAAKuO,EAAI4M,EAAK3Z,EAAExB,GAAKuO,EAAI4M,EAAK,EACrCI,EAAKjZ,EAAEtC,GAAKiP,EAAImM,EAAK9Y,EAAEtC,GAAKiP,EAAImM,EAAK,EACrCI,EAAKha,EAAExB,GAAK,GAAKwB,EAAExB,GAAK,EACzByB,EAAa,OAATH,EAAEtB,IAAwB,OAATsB,EAAEtB,IAAeuO,EAAE+M,IAAKrM,EAAEoM,GAAe,OAAT/Z,EAAEtB,IAAwB,OAATsB,EAAEtB,IAAeuO,EAAEiN,IAAKvM,EAAEoM,GACtF,OAAT/Z,EAAEtB,IAAwB,OAATsB,EAAEtB,IAAeuO,EAAEiN,IAAKvM,EAAEsM,IAAOhN,EAAE+M,IAAKrM,EAAEsM,KACvD1Y,GAAKA,EAAIpB,KACboB,EAAIpB,EACJ8W,EAAIvY,OAKF,KAAcgD,EAAGvB,EAAtB,IAASzB,EAAI,EAAY6C,EAAI,EAAG7C,EAAIsB,EAAEpB,OAAQF,IAAM,CAMnD,GALAkb,EAAI5Z,EAAEtB,GAAGsR,OAAO,GAAIU,EAAI1Q,EAAEtB,GAAGsR,OAAO,GACpChP,EAAE9B,MAAY,MAAN0a,GAAmB,MAANA,GAAmB,MAANA,GAAaxZ,EAAEqX,IAAMrX,EAAEsX,QAAU,EAAW,MAANkC,EAAYxZ,EAAEqX,IAAMrX,EAAEsX,SAAkB,MAANhH,GAAmB,MAANA,GAAmB,MAANA,EAAY/C,EAAI,EAAW,MAAN+C,EAAY/C,EAAI,IACzKzN,EAAEhB,MAAY,MAAN0a,GAAmB,MAANA,GAAmB,MAANA,GAAaxZ,EAAEuX,KAAOvX,EAAEwX,OAAS,EAAW,MAANgC,EAAYxZ,EAAEwX,MAAQxX,EAAEuX,OAAgB,MAANjH,GAAmB,MAANA,GAAmB,MAANA,EAAYzD,EAAI,EAAW,MAANyD,EAAYzD,EAAI,IACzKzM,EAAIQ,EAAEtC,IAAM,GAAKsC,EAAEtC,GAAKiP,GAAKmM,EAC7BpY,EAAIxB,EAAExB,GAAKuO,GAAK4M,GAAM3Z,EAAExB,IAAM,EAC1B8B,GAAKkB,EAAG,CACXuV,EAAIvY,EACJ,OACU8B,GAAKkB,KACXrB,GACHF,EAAIE,GAAKmX,GAAUf,EAAU,GAALmD,GAAe,GAALA,GAAW5Y,EAAEtC,GAAKsC,EAAEtC,GAAKiP,EAAImM,EAAY,GAALF,GAAe,GAALA,GAAW1Z,EAAExB,GAAKwB,EAAExB,GAAKuO,EAAI4M,IACxGtY,GAAKA,EAAIpB,KACboB,EAAIpB,EACJ8W,EAAIvY,IAEKuY,EAAI,IACdA,EAAIvY,KAIJuY,EAAI,IAAGA,EAAI,GACf,IAAIxK,EAAIzM,EAAEiX,GAAIzW,EAAI,CAACmX,KAAOzX,EAAE+W,GAAIQ,IAAMzW,EAAEiW,GAAIS,OAAQoC,GAAM9Y,EAAEiW,GAAKtJ,GAAIiK,MAAOiC,GAAM3Z,EAAE+W,GAAKhK,GAAIkN,KAAO1N,GAepG,GAdA4L,GAASC,IAAI1X,EAAE6L,KAAOjM,EAAE4Z,MAAQlD,IAChCmB,GAASC,IAAI3K,EAAElB,KAAOjM,EAAE6Z,MAAQnD,IAChCmB,GAASE,IAAI3X,EAAE6L,KAAOjM,EAAE8Z,MAAQpD,GAAG1W,EAAE+X,IAAM,KAC3CF,GAASE,IAAI5K,EAAElB,KAAOjM,EAAE+Z,MAAQrD,GAAG1W,EAAE+X,IAAM,KAC3CF,GAASE,IAAIrY,EAAEuM,KAAOjM,EAAEga,MAAQtD,GAAG1W,EAAE+X,IAAM,KAC3CF,GAASE,IAAIvX,EAAEyL,KAAOjM,EAAEia,MAAQvD,GAAG1W,EAAE+X,IAAM,KAC3CF,GAASG,MAAM/L,KAAOjM,EAAEgY,MAAQtB,IAC5B/H,GAAK3O,EAAE+X,MACN/X,EAAEgY,MACLhY,EAAEia,MAASja,EAAEiX,KAAOtI,EAAK3O,EAAE+Z,MAAS/Z,EAAEkX,QAAUvI,EAAK3O,EAAE8Z,MAAS9Z,EAAEoX,OAASzI,EAAM3O,EAAEmX,MAAQxI,EAE3F3O,EAAEia,MAASja,EAAEkX,QAAUvI,EAAK3O,EAAE+Z,MAAS/Z,EAAEiX,KAAOtI,EAAK3O,EAAE8Z,MAAS9Z,EAAEmX,MAAQxI,EAAM3O,EAAEoX,OAASzI,GAGzFV,EAAG,CACFvO,EAAIM,EAAEmX,KAAV,IAAgB/W,EAAIJ,EAAEoX,MAAOjK,EAAInN,EAAEkX,OAAQ1W,EAAIR,EAAEiX,KAC7CjX,EAAEia,OAASja,EAAE+Z,SACZ/Z,EAAE4Z,OACLxZ,EAAI8O,KAAKC,IAAI,EAAGzP,EAAI,EAAIU,EAAIV,EAAIU,GAAIV,GAAKM,EAAEoX,MAAQhX,IAEnDV,EAAIwP,KAAKC,IAAI,EAAG/O,EAAI,EAAIA,EAAIV,EAAIA,GAAIU,GAAKJ,EAAEmX,KAAOzX,KAEhDM,EAAEga,OAASha,EAAE8Z,SACZ9Z,EAAE6Z,OACL1M,EAAI+B,KAAKC,IAAI,EAAG3O,EAAI,EAAI2M,EAAI3M,EAAI2M,GAAI3M,GAAKR,EAAEkX,OAAS/J,IAEpD3M,EAAI0O,KAAKC,IAAI,EAAGhC,EAAI,EAAIA,EAAI3M,EAAIA,GAAI2M,GAAKnN,EAAEiX,IAAMzW,IAEnDR,EAAEmX,KAAOzX,EAAGM,EAAEoX,MAAQhX,EAAGJ,EAAEiX,IAAMzW,EAAGR,EAAEkX,OAAS/J,EAIhD,GAFU,OAANtN,GAAcG,EAAEiX,IAAM,IACzBjX,EAAEiX,IAAM,GACL3V,EAAG,CACD9B,EAAIyY,GAAa3W,GACtBtB,EAAEiX,KAAQzX,EAAEyX,IACZjX,EAAEmX,MAAS3X,EAAE2X,KACbnX,EAAEoX,OAAU5X,EAAE4X,MACdpX,EAAEkX,QAAW1X,EAAE0X,OAKhB,OAHAlX,EAAEsY,MAAS7L,EACXzM,EAAEuY,OAASpL,EACXnN,EAAEka,OAASta,EACJI,GAIFma,GAAS,SAAS1N,EAAGU,GAC1B,IAAIc,EAAId,EAAEwM,KACN1L,GACCd,EAAEyM,OACLnN,EAAEyJ,MAAMkB,MAAQjK,EAAEiK,MAAQ,KAC1B3K,EAAEyJ,MAAMiB,KAAQ,KAEhB1K,EAAEyJ,MAAMiB,KAAQhK,EAAEgK,KAAO,KACzB1K,EAAEyJ,MAAMkB,MAAQ,IAEbjK,EAAE0M,OACLpN,EAAEyJ,MAAMgB,OAAS/J,EAAE+J,OAAS,KAC5BzK,EAAEyJ,MAAMe,IAAM,KAEdxK,EAAEyJ,MAAMe,IAAM9J,EAAE8J,IAAM,KACtBxK,EAAEyJ,MAAMgB,OAAS,KAGlBX,GAAI9J,EAAGU,I,0BCpLHiN,GAAY,SAAS3N,EAAGU,GAC7B,IAAK,IAAIjP,EAAI,EAAGwB,EAAI8W,UAAUpY,OAAS,EAAGF,EAAIwB,EAAGxB,IAChDiP,EAAIA,EAAEqJ,UAAUtY,MAAQiP,EAAEqJ,UAAUtY,IAAM,IAE3C,OADCiP,EAAEqJ,UAAU9W,MAAQyN,EAAEqJ,UAAU9W,IAAM,KAAKhB,KAAK+N,GAC1CU,EAAEqJ,UAAU9W,KCDd2a,GAAa,GACbC,GAAgB,SAAS7D,GACzBA,EAAE8D,KACJrM,IAAOsM,KAAKH,GAAW5D,EAAEgE,IAAIhE,EAAEkD,MAAOlD,GACtCA,EAAEkD,KAAOlD,EAAE8D,GAAK9D,EAAE/J,KAAO,OAGvBgO,GAAc,SAASjO,GAC3B,OAAOA,EAAEzK,QAAQ,MAAQ,EAAIsL,EAAMb,EAAG,KAAOA,GAEzCkO,GAAe,SAASlO,GAC5B,OAAOA,EAAEzK,QAAQ,MAAQ,EAAI,IAAMkL,EAAQT,EAAG,KAAK8C,MAAM,KAAKqL,OAAOrM,KAAK,KAAO,IAAM,IAEnFsM,GAAkB,SAASpO,EAAGU,GAClC,IAAIvN,EAAIya,GAAWS,EAAIrO,IACvB,GAAK7M,EAAL,CACA,IAAI+Z,EAAOe,GAAYvN,GACrBxM,EAAKga,GAAaxN,GACpB,GAAIwM,EACF,OAAO/Z,EAAE+Z,KAAUhZ,EAAKf,EAAE+Z,GAAMoB,QAAO,SAAA9E,GAAC,OAAIA,EAAEtV,GAAGqB,QAAQrB,IAAO,KAAKf,EAAE+Z,IAEzE,IAAIvZ,EAAI,GACR,IAAKuZ,KAAQ/Z,EACXQ,EAAE1B,KAAKK,MAAMqB,EAAGR,EAAE+Z,GAAMoB,QAAO,SAAA9E,GAAC,OAAIA,EAAEtV,GAAGqB,QAAQrB,IAAO,MAE1D,OAAOP,IAGH4a,G,WACJ,WAAYC,GAAK,wBACf/I,KAAK+I,IAAMA,E,gDAEb,SAAStB,GACP,IAAIlN,EAAIoO,GAAgB3I,KAAK+I,IAAKtB,GAClC,OAAOlN,GAAKA,EAAErO,S,sBAGhB,SAASub,EAAMY,EAAIW,GACjB,IAAIzE,EAAI,CACNgE,GAAIK,EAAI5I,KAAK+I,KACbtB,KAAMe,GAAYf,GAClBhZ,GAAIga,GAAahB,GACjBY,GAAIA,EACJW,IAAKA,GAGP,OADAd,GAAU3D,EAAG4D,GAAY5D,EAAEgE,GAAIhE,EAAEkD,MAAMwB,KAAM,EACtCjJ,O,0BAET,SAAayH,EAAMY,GACjB,OAAOrI,KAAKkJ,SAASzB,EAAMY,GAAI,K,uBAGjC,SAAUtM,EAAG7N,GACX,IAAIqM,EAAIoO,GAAgB3I,KAAK+I,IAAKhN,EAAE0L,MAAQ1L,GAC5C,GAAIxB,EACF,IAAK,IAAWgK,EAAiBR,EAAxB/X,EAAI,EAAMwB,EAAI+M,EAAErO,OAAWF,EAAIwB,EAAGxB,IACzC,IAAKuY,EAAIhK,EAAEvO,KAAOuY,EAAE8D,KAClBtE,EAAIQ,EAAE8D,GAAGxb,MAAMmT,KAAK+I,IAAK7a,EAAI,CAAC6N,GAAGoN,OAAOjb,GAAK,CAAC6N,IAC1CwI,EAAEyE,MACJZ,GAAc7D,GACdhK,EAAE0O,MAAQjd,IAAKwB,WAEP+O,IAANwH,GACF,OAAOA,EAIf,OAAO/D,O,yBAGT,SAAYzF,EAAGU,GACb,GAAIV,EAAG,CACL,IAAI5M,EAAIgb,GAAgB3I,KAAK+I,IAAKxO,GAClC,GAAI5M,EAAG,CACL,IAAI3B,EAAI2B,EAAEzB,OACV,MAAOF,IACAiP,GAAMtN,EAAE3B,GAAGqc,KAAOpN,GAAImN,GAAcza,EAAE3B,SAE1C,CACL,IAAI0B,EAAIya,GAAWS,EAAI5I,KAAK+I,MAE5B,IAAK/c,KAAK0B,EAAGsS,KAAKoJ,YAAYpd,UACvBmc,GAAWS,EAAI5I,KAAK+I,MAE7B,OAAO/I,S,KAILqJ,GAAS,SAAStN,GACtB,OAAOA,EAAEuN,cAAgBvN,EAAEuN,cAAc,GAAGtC,QAAUjL,EAAEiL,SAGpDuC,GAAS,SAASxN,GACtB,OAAOA,EAAEuN,cAAgBvN,EAAEuN,cAAc,GAAGrC,QAAUlL,EAAEkL,SAGpDuC,GAAS,SAASC,EAAQC,EAAMC,GACpC,IAAIC,EAASC,EAAOC,EAAgB,MAAVH,EACxBhF,EAAM1U,SAAS2U,gBACfmF,EAAM,SAAAhO,GAAC,OAAIA,EAAEuN,cAAgBvN,EAAEuN,cAAc,GAAGtC,QAAUjL,EAAEiL,SAC5DgD,EAAM,SAAAjO,GAAC,OAAIA,EAAEuN,cAAgBvN,EAAEuN,cAAc,GAAGrC,QAAUlL,EAAEkL,SAC5DgD,EAAU,SAAAlO,GAAC,OAAIA,EAAEmO,kBACfP,EAAOQ,gBACTR,EAAOQ,cAAcnG,MAAMoG,WAAa,QAE1CzF,EAAI0F,iBAAiB9E,EAAGlV,OAAS,YAAc,YAAauZ,EAAU,SAAS7N,GAC7E+N,EAAML,EAAO1N,GACX4N,IAAW3M,KAAKsN,IAAIP,EAAIhO,GAAKgO,EAAIJ,IAAW,GAAK3M,KAAKsN,IAAIN,EAAIjO,GAAKiO,EAAIL,IAAW,KAAOG,GAAM,KAChG,GACHnF,EAAI0F,iBAAiB9E,EAAGlV,OAAS,WAAa,UAAWwZ,EAAQ,SAAS9N,GACxE4I,EAAI4F,oBAAoBhF,EAAGlV,OAAS,YAAc,YAAauZ,GAAS,GACxEjF,EAAI4F,oBAAoBhF,EAAGlV,OAAS,WAAa,UAAWwZ,GAAO,GAC/DF,EAAOQ,gBACTR,EAAOQ,cAAcnG,MAAMoG,WAAa,IAE1C7E,EAAGlV,QAAUsU,EAAI4F,oBAAoB,YAAaN,EAAS,CAACO,SAAS,IACrEd,GAAQA,EAAK3N,EAAG+N,KACf,GAEHvE,EAAGlV,QAAUsU,EAAI0F,iBAAiB,YAAaJ,EAAS,CAACO,SAAS,KC5GpE,SAASlP,GAAExN,GACT,IAAKA,GAAKA,EAAE4U,SAAU,OAAO5U,EAC7B,GAAiB,kBAANA,GAAkBA,EAAE8a,IAAK,OAAOtN,GAAEmP,OAAOxc,IAAIH,EAAE8a,KAAO9a,GASjE,GARIA,aAAa4c,QACf5c,EAAIA,EAAEqc,eAAiBrc,EAAEka,QAEvBla,EAAE6c,MACJ7c,EAAIA,EAAE6c,IACa,IAAf7c,EAAEyT,WACJzT,EAAIA,EAAE4V,qBAEN1H,IAAO4O,UAAU9c,GACnB,GACE,GAAIA,EAAEya,GAAI,CACR,GAAIjN,GAAEmP,OAAOI,IAAI/c,EAAEya,IAAK,OAAOjN,GAAEmP,OAAOxc,IAAIH,EAAEya,IAC9C,IAAI5a,EAAI2N,GAAEF,MAAMtN,EAAEya,GAAI,KAAO,IAC7B,GAAGjN,GAAEmP,OAAOI,IAAIld,GAAI,OAAO2N,GAAEmP,OAAOxc,IAAIN,UAEnCG,EAAIA,EAAEqT,YAEjB,MAAOrT,IAAMA,EAAE4U,SAAU5U,EAAIA,EAAEgd,QAC/B,OAAOhd,GAAKwN,GAAEsE,QAGhBzT,OAAO4e,OAAOzP,GAAG,CACfC,EAAG,CAACyP,eAAgB,IACpBP,OAAQ,IAAIQ,IACZC,WAAY,GACZC,EAAGrI,IAAQ9G,WAAQoP,SACnB7F,KAAI8F,MAAKzC,MAAKE,iBAAeO,UAAQE,UACrC7M,SAAQE,WAAUC,WAAUC,SAAQM,YAAWG,aAC/CxC,SAAQF,UAASoB,YAAWjB,UAASI,QAAOM,SAAQL,SAAQM,YAAWO,eACvEyB,aAAYC,YAAWa,UAASc,aAAWC,YAAUG,aAAWtB,WAAUgB,iBAAeC,gBACzFyB,gBAAcG,cAAYE,aAAWM,mBAAiBK,WACtDU,MAAIE,QAAMM,UAAQG,WAASE,UAAQG,SAAOE,eAC1C6F,UAAQxD,OAAKG,UAAQW,QAAMmB,YAI7B3M,GAAEgQ,OAAS,SAAS/Q,GAAY,2BAANC,EAAM,iCAANA,EAAM,kBAM9B,OALAA,EAAKuC,SAAQ,SAAArP,GACX,GAAIA,EACF,IAAK,IAAI6W,KAAK7W,EACN6W,KAAKhK,QAAegC,IAAT7O,EAAE6W,KAAkBhK,EAAEgK,GAAK7W,EAAE6W,OAE7ChK,GAITe,GAAEiQ,WAAa,SAAShR,GAAY,2BAANC,EAAM,iCAANA,EAAM,kBAclC,OAbAA,EAAKuC,SAAQ,SAAArP,GACX,GAAS,MAALA,GAAaA,EAAE8d,cAAgBrf,OACjC,IAAK,IAAIH,KAAK0B,EACN1B,KAAKuO,EAKQ,MAARA,EAAEvO,IAAcuO,EAAEvO,GAAGwf,cAAgBrf,QAC9CmP,GAAEiQ,WAAWhR,EAAEvO,GAAI0B,EAAE1B,IALT,MAAR0B,EAAE1B,IAAc0B,EAAE1B,GAAGwf,cAAgBrf,OACvCmP,GAAEiQ,WAAWhR,EAAEvO,GAAK,GAAI0B,EAAE1B,IAE1BuO,EAAEvO,GAAK0B,EAAE1B,MAMZuO,GAGTe,GAAEmQ,MAAQ,SAASlR,GAAY,2BAANC,EAAM,iCAANA,EAAM,kBAK7B,OAJAA,EAAKuC,SAAQ,SAAArP,GACX,GAAIA,EACF,IAAK,IAAI6W,KAAK7W,EAAG6M,EAAEgK,GAAK7W,EAAE6W,MAEvBhK,GAGTe,GAAEoQ,UAAY,SAASnR,GAAY,2BAANC,EAAM,iCAANA,EAAM,kBAWjC,OAVAA,EAAKuC,SAAQ,SAAArP,GACX,GAAS,MAALA,EACF,IAAK,IAAI6W,KAAK7W,EACQ,WAAhB,eAAO6M,EAAEgK,IACXjJ,GAAEoQ,UAAUnR,EAAEgK,GAAI7W,EAAE6W,IAEpBhK,EAAEgK,GAAK7W,EAAE6W,MAIVhK,GAGTe,GAAEqQ,UAAY3P,IAAO2P,UAErBrQ,GAAEsQ,KAAO,SAASC,EAAKC,GACrB,GAAIA,EAAK,CACP,IAAIC,EAAO5f,OAAO4f,KAAKD,GACvB,OAAOE,SAASD,EAAKE,KAAI,SAAA1H,GAAC,OAAIA,KAAf,kBAA8BsH,EAA9B,MAAR,4BAAiDE,EAAKE,KAAI,SAAA1H,GAAC,OAAIuH,EAAIvH,QAE5E,OAAOyH,SAAS,WAAD,OAAYH,EAAZ,KAARG,IAIT1Q,GAAE4Q,MAAQ,SAAS3R,EAAGU,GACpB,OAAOW,MAAMC,QAAQtB,GAAMU,EAAIV,EAAE4O,SAAW5O,EAAU,MAALA,GAAmB,KAANA,EAAW,GAAkB,kBAANA,EAAiBA,EAAE8C,MAAM,KAAO,CAAC9C,IAGxHe,GAAE6Q,YAAc,SAAS5R,GACvB,OAAOe,GAAE4Q,MAAM3R,GAAG0R,KAAI,SAAAlI,GAAC,OAAInU,WAAWmU,OAIxCzI,GAAE8Q,SAAW,SAACC,EAAMC,GAAP,OAA8B,MAARD,GAAyB,KAATA,GAA4B,MAATA,EAAL,IAAmC,GAATA,IAAeC,GAAsB,QAARD,EACtH,OAAS1P,MAAM0P,GAAQA,EAAd,UAAwBA,EAAxB,OAGX/Q,GAAEiR,OAAS,SAACjf,EAAGuB,EAAGG,GAIhB,GAHA1B,EAAIyN,EAAOzN,GACXuB,EAAIkM,EAAOlM,GACXG,EAAS,MAALA,EAAY,IAAM,GAAKA,GACtB1B,IAAMuB,EAAG,OAAOvB,GAAKuB,EAC1B,IAAK,IAAI7C,EAAI,EAAmBwB,GAAhBqB,EAAIA,EAAEwO,MAAMrO,GAAQH,EAAE3C,QAAQF,EAAIwB,EAAGxB,KAC9CgD,EAAI1B,EAAI0B,GAAGc,QAAQd,EAAIH,EAAE7C,GAAKgD,GAAK,IAAG1B,IAAMA,EAAI0B,EAAI,IAAMH,EAAE7C,IAEnE,OAAOsB,GAGTgO,GAAEkR,UAAY,SAAClf,EAAGuB,EAAGG,GAInB,GAHA1B,EAAIyN,EAAOzN,GACXuB,EAAIkM,EAAOlM,GACXG,EAAS,MAALA,EAAY,IAAM,GAAKA,GACtB1B,IAAMuB,EAAG,OAAOvB,EACrB,IAAK,IAAWyO,EAAP/P,EAAI,EAAsBwB,GAAhBqB,EAAIA,EAAEwO,MAAMrO,GAAQH,EAAE3C,QAAQF,EAAIwB,EAAGxB,IACtD,GACE+P,GAAK/M,EAAI1B,EAAI0B,GAAGc,QAAQd,EAAIH,EAAE7C,GAAKgD,GAC/B+M,GAAK,IAAGzO,EAAIA,EAAE6B,MAAM,EAAG4M,EAAIA,EAAI,EAAIA,GAAKzO,EAAE6B,MAAM4M,EAAIlN,EAAE7C,GAAGE,QAAU6P,EAAI,EAAI,WACxEzO,GAAKyO,GAAK,GAErB,OAAOzO,GAGTgO,GAAEmR,OAAS,SAACnf,EAAGuB,EAAGG,GAChB,GAAU,KAAN1B,GAAYuB,IAAMvB,EAAG,OAAO,EAIhC,GAHAA,EAAIyN,EAAOzN,GACXuB,EAAIkM,EAAOlM,GACXG,EAAS,MAALA,EAAY,IAAM,GAAKA,GACtB1B,IAAMuB,EAAG,OAAO,EACrB,GAAIvB,GAAKuB,EAAG,OAAO,EANG,uBAORA,EAAEwO,MAAMrO,IAPA,IAOtB,gCAAS+U,EAAT,QACE,IAAK/U,EAAI1B,EAAI0B,GAAGc,QAAQd,EAAI+U,EAAI/U,IAAM,EAAG,OAAO,GAR5B,8BAStB,OAAO,GAITsM,GAAEoR,OAAS,SAACpf,EAAGuB,EAAGG,GAChB,GAAU,KAAN1B,GAAYuB,IAAMvB,EAAG,OAAO,EAIhC,GAHAA,EAAS,MAALA,EAAY,GAAK,GAAKA,EAC1BuB,EAAS,MAALA,EAAY,GAAK,GAAKA,EAC1BG,EAAS,MAALA,EAAY,IAAM,GAAKA,GACtB1B,EAAG,OAAO,EACf,IAAKuB,GAAKvB,GAAKuB,EAAG,OAAO,EANH,uBAORA,EAAEwO,MAAMrO,IAPA,IAOtB,gCAAS+U,EAAT,QACE,IAAK/U,EAAI1B,EAAI0B,GAAGc,QAAQd,EAAI+U,EAAI/U,GAAK,EAAG,OAAO,GAR3B,8BAStB,OAAO,GAITsM,GAAEqR,SAAW,SAASpS,EAAGU,EAAGvN,GAC1B,GAAK6M,EAAL,CACA,IAAIjN,EAAIiN,EAAEqS,UACV,GAAI3R,EAAEnL,QAAQ,MAAQ,EAAG,CACvBmL,EAAIK,GAAET,QAAQI,GAAGoC,MAAM,MACvB,IAAK,IAAIrR,EAAI,EAAGwB,EAAIyN,EAAE/O,OAAQF,EAAIwB,EAAGxB,IACnCsB,IAAW,IAANI,EAAc4N,GAAEkR,UAAYlR,GAAEiR,QAAQjf,EAAG2N,EAAEjP,GAAI,UAEtDsB,IAAW,IAANI,EAAc4N,GAAEkR,UAAYlR,GAAEiR,QAAQjf,EAAG2N,EAAG,KACnDV,EAAEqS,UAAYtf,IAIhBgO,GAAEuR,YAAc,SAAStS,EAAGU,GACrBV,IACDU,EAAEnL,QAAQ,MAAQ,EACpBwL,GAAEqR,SAASpS,EAAGU,GAAG,GAEjBV,EAAEqS,UAAYtR,GAAEkR,UAAUjS,EAAEqS,UAAW3R,EAAG,OAI9CK,GAAEwR,SAAW,SAASvS,EAAGU,GACvB,GAAKV,EAAL,CACA,IAAIjN,EAAiB,kBAANiN,EAAiBA,EAAIA,EAAEqS,UACtC,KAAI3R,EAAEnL,QAAQ,MAAQ,GAKpB,OAAOwL,GAAEmR,OAAOnf,EAAG2N,EAAG,KAJtBA,EAAI8R,SAAS9R,GAAGoC,MAAM,MACtB,IAAK,IAAIrR,EAAI,EAAGwB,EAAIyN,EAAE/O,OAAQF,EAAIwB,EAAGxB,IACnC,GAAIsP,GAAEmR,OAAOnf,EAAG2N,EAAEjP,GAAI,KAAM,OAAOA,EAAI,IAM7CsP,GAAE0R,UAAY,SAACzS,GACb,OAAY,MAALA,EAAY,GAAKuB,mBAAgC,WAAb,eAAOvB,GAAiB0S,KAAKC,UAAU3S,GAAKA,IAIzFe,GAAE6R,UAAY,SAAC5S,GACb,OAAY,MAALA,EAAY,GAAK6S,mBAAmB7S,EAAE5J,QAAQ,MAAO,OAG9D2K,GAAE+R,UAAY,SAAC9S,GAAe,2BAATC,EAAS,iCAATA,EAAS,kBAE5B,OADAA,EAAKuC,SAAQ,SAACgH,EAAG/X,GAAJ,OAAe,MAAL+X,IAAcxJ,EAAIe,GAAEK,UAAUpB,EAAGwJ,GAAG,EAAM/X,EAAIwO,EAAKtO,OAAS,OAC5EqO,GAETe,GAAEgS,SAAW,SAAS/S,EAAGU,GACvB,IAAI/M,EAAIqM,EAAE8C,MAAM,KACdjO,EAAIlB,EAAE,GACN8P,EAAI9P,EAAE,GACR,GAAiB,kBAAN+M,EACT,MAAa,MAANA,EAAa+C,GAAK,GAAM1C,GAAE6R,WAAW/d,EAAEK,MAAM,IAAI0M,OAAO,SAAWlB,EAAI,YAAa,MAAQsS,GAAG,IACjG,GAAItS,GAAkB,WAAb,eAAOA,GACrB,IAAK,IAAIsJ,KAAKtJ,EACZ,GAAU,MAANsJ,EACFvG,EAAI/C,EAAEsJ,OACD,CACL,IAAI7W,EAAI4N,GAAE0R,UAAU/R,EAAEsJ,IACpB5W,EAAI,IAAIwO,OAAO,MAAQoI,EAAI,UAC7BnV,EAAIzB,EAAEmD,KAAK1B,GAAKA,EAAEuB,QAAQhD,EAAG4W,EAAI,IAAM7W,GAAK0B,GAAKA,EAAEU,QAAQ,KAAO,EAAI,IAAM,KAAOyU,EAAI,IAAM7W,OAG5F,GAAyB,IAArB4W,UAAUpY,OAAc,CAC7BgC,EAAI,GACNR,EAAI0B,EAAEiO,MAAM,KAGd,GAFA3P,EAAIA,EAAEA,EAAExB,OAAS,GAEbwB,EAAG,CACLA,EAAIA,EAAE2P,MAAM,KACP,IAAWtB,EAAGU,EAAGyK,EAAtB,IAASvZ,EAAI,EAAYA,EAAID,EAAExB,OAAQyB,IACrCoO,EAAIrO,EAAEC,GAAGmC,QAAQ,MACP,GAANiM,IACJU,EAAI/O,EAAEC,GAAG6f,UAAU,EAAGzR,GACtBmL,EAAIxZ,EAAEC,GAAG6f,UAAUzR,EAAI,GACvB7N,EAAEuO,GAAKnB,GAAE6R,UAAUjG,EAAEvW,QAAQ,MAAO,OAGxC,OAAOzC,EAET,OAAOkB,GAAK4O,EAAI,IAAMA,EAAI,KAG5B1C,GAAEmS,UAAY,SAASC,GACrB,GAAKA,EAAL,CACA,IAAMA,EAAIC,WAAW,aAAcD,EAAIC,WAAW,YAAc,CAC9D,IAAI1S,EAAIe,IAAO/N,IAAIqN,GAAEC,EAAG,gBACpBN,IACFyS,EAAMzS,GAAKA,EAAE2S,SAAS,KAAO,GAAK,KAAOF,GALV,2BAANlT,EAAM,iCAANA,EAAM,kBAQnC,OAAOc,GAAEK,UAAF,MAAAL,GAAC,CAAWoS,GAAX,OAAmBlT,MAG7Bc,GAAEuS,YAAc,SAAStT,GACxB,GAA2B,IAAvBA,EAAEzK,QAAQ,SAAgB,CAC7ByK,EAAIe,GAAEmS,UAAUlT,GACd,IAAIrM,EAAI8N,IAAO/N,IAAIqN,GAAEC,EAAG,eAC1BrN,IAAMqM,EAAIe,GAAEgS,SAAS/S,EAAGrM,IAEzB,OAAOqM,GAGRe,GAAEwS,SAAW,SAASvT,EAAGU,GAExB,GADCV,EAAIe,GAAEuS,YAAYtT,GACfgL,EAAGjV,IACNgL,GAAEyS,aAAY,WACb,IAAIC,EAAQC,KAAKC,WAAWC,eAAe5T,EAAGU,GAC9CgT,KAAKG,SAASC,cACdL,EAAM3D,iBAAiB,gBAAgB,SAASiE,EAAMC,GACrD,OAAQD,EAAKE,OACZ,KAAK,EACJP,KAAKG,SAASK,MAAMnT,GAAE+P,IAAIpW,gBAC1B,MACD,KAAK,EACU,KAAVsZ,GACHN,KAAKG,SAASK,MAAMnT,GAAE+P,IAAInW,mBAC1B+Y,KAAKS,QAAQC,SAASL,EAAKM,SAAU,IAAI,SAAS7S,GACjDkS,KAAKG,SAASS,MAAMvT,GAAE+P,IAAIlW,yBAG3B8Y,KAAKG,SAASK,MAAMnT,GAAE+P,IAAIjW,cAAgBmZ,GAE3CN,KAAKG,SAASU,eACd,UAGHd,EAAMe,eAED,CACN,IAAIC,EAAO/e,SAASmS,cAAc,KAEhC4M,EAAKC,KAAO1U,EACRe,GAAEC,EAAE2T,iBACNF,EAAKhH,OAAS1M,GAAEC,EAAE2T,gBAEpBF,EAAKG,QACLH,EAAK/c,WAKTqJ,GAAEyS,YAAc,SAASxT,EAAGU,GAC3BK,GAAEC,EAAEwS,aAAoD,GAArCE,KAAKmB,YAAYC,iBAAwBpB,KAAKG,SAASxc,QAAQ0J,GAAE+P,IAAIzV,qBAAqB,SAASmG,GAAe,IAAZA,EAAEuT,OAAe/U,EAAEjO,KAAK2O,KAAK,CAACsU,QAAQ,CAACjU,GAAE+P,IAAIzZ,QAAS0J,GAAE+P,IAAInZ,UAAYqI,EAAEjO,KAAK2O,IAGzMK,GAAEkU,GAAK,SAACjV,GACN,OAAKA,EACY,kBAANA,GACLe,GAAEmP,OAAOI,IAAItQ,KACfA,EAAIe,GAAEmP,OAAOxc,IAAIsM,GACbA,EAAEkV,QAAelV,GAGzBA,EAAIe,GAAEf,GACG,MAALA,EACGA,EAAEkV,OAASlV,EAAIA,EAAEmV,eADxB,GARepU,GAAEsE,SAYnBtE,GAAE1I,MAAQ,SAAC2H,GACT,IAAI5M,EAAI2N,GAAEqU,OAAOpV,GACjB5M,GAAKA,EAAEiF,SAGT0I,GAAEsU,WAAa,WACb3f,SAAS4f,cAAc,IAAInF,MAAM,eAGnCpP,GAAEwU,aAAe,SAASpC,GACxBpS,GAAEkU,KAAKM,aAAaxU,GAAEmS,UAAUC,KAGlCpS,GAAEyU,aAAe,SAASC,EAAMC,GAC9BD,EAAO1U,GAAE4Q,MAAM8D,GAAM/D,KAAI,SAAAlI,GAAC,OAAIzI,GAAEmS,UAAU1J,MACvCwB,EAAGjV,IACN2d,KAAKG,SAAS2B,aAAaC,EAAMC,GAE/B3U,GAAEkU,KAAKO,aAAaC,EAAMC,IAI9B3U,GAAE4U,cAAgB,SAASC,GAAyB,IAAlBviB,EAAkB,uDAAX,UACnCM,EAAI,GACFkiB,EAAc,SAAdA,EAAeziB,GACnBA,GAAKA,EAAEoP,SAAQ,SAAAgH,GACS,WAAlB,eAAOA,EAAE0D,MACX7L,MAAMC,QAAQkI,EAAEsM,WAAaD,EAAYrM,EAAEsM,UAE3CniB,EAAE1B,KAAKuX,OAIb,OADAqM,EAAYD,EAAMviB,IAASuiB,EAAMviB,MAC1BM,GAGToN,GAAEgV,SAAW,SAASH,GAAyB,IAAlBviB,EAAkB,uDAAX,UAC9BM,GAAI,EACFkiB,EAAc,SAAdA,EAAeziB,GACnBqO,IAAOe,QAAQpP,GAAG,SAAAoW,GAChB,GAAsB,WAAlB,eAAOA,EAAE0D,MAGX,QAASvZ,GAAI,GAFb0N,MAAMC,QAAQkI,EAAEsM,WAAaD,EAAYrM,EAAEsM,cAOjD,OADAD,EAAYD,EAAMviB,IAASuiB,EAAMviB,MAC1BM,GAIToN,GAAEiV,KAAO,SAASlI,EAAImI,EAAIC,GACzBpI,EAAG,GACO,MAANmI,IACHA,EAAK,KACO,MAATC,IACHA,EAAQzT,KAAKmC,KAAKqR,EAAK,KACxB,IAAIxhB,EAAKgO,KAAKmC,KAAKqR,EAAKC,GACpBC,EAAK,EACLC,GAAK,IAAIrS,MAAOE,UAChBoS,EAAKC,aAAY,WACnB,IAAIC,GAAK,IAAIxS,MAAOE,UAChBuS,EAAKD,EAAKH,EACVK,EAAKhU,KAAKoC,MAAM2R,EAAK/hB,GACrB0hB,GAAMM,IACLA,EAAKP,EACRpI,GAAMrL,KAAKiU,IAAKD,EAAKP,EAASzT,KAAKkU,IAAM,EAAK,KAE9CC,cAAcP,GACdvI,EAAG,IAEJqI,EAAKM,KAEJhU,KAAKC,IAAIjO,EAAI,GAAI,IACrB,OAAO4hB,GAIRtV,GAAE8V,MAAQ,SAAS7W,EAAGR,GACpB,IAAIpM,EAAI4M,EAAEkI,GAAKlI,EAAEkI,KAAQlI,EAAEoQ,KAAOpQ,EAAI6D,EAAIzQ,EAAE0jB,cAAepW,EAAIK,GAAE6P,EAAE,oBAAqB/M,GAAI1Q,EAAI,GAC9FqM,EAAIA,GAAK,GACXuB,GAAE6P,EAAE,OAAQ/M,GAAGkT,MAAK,WAAY5jB,EAAElB,KAAKwT,KAAKuR,eAC3CtW,EAAE/O,OAAS,EAAI+O,EAAIK,GAAE6P,EAAE,OAAQ/M,IAAIkT,MAAK,WAAY5jB,EAAElB,KAAK,gDAAkDwT,KAAKwR,aAAa,QAAU,UAC1IlW,GAAE6P,EAAE,QAAS/M,GAAGkT,MAAK,WAAY5jB,EAAElB,KAAKwT,KAAKuR,cAC7C,IAAIjkB,EAAIK,EAAE4jB,UACVjkB,EAAIA,EAAEqD,QAAQ,6BAA6B,SAAS8J,GAAK,OAAOA,EAAG9J,QAAQ,gBAAiB,OAC5F2K,GAAE6P,EAAE,kCAAmCxd,GAAG2jB,MAAK,WAAW,IACjCvN,EAAG7V,EAD8B,OACrD8P,EAAIgC,KAAKuR,UACb,GAAIxX,EAAE0X,WAAY,CACjB,IAAIvK,EAAI5L,GAAE0E,MACNkH,GAAKA,EAAEwK,cACV1T,EAAIkJ,EAAEzE,GAAG,QAAQ8O,UACjBxN,EAAImD,EAAEyK,YAEN5N,EAAI/D,KAAK3R,MACV0V,EAAI,+BAAiCA,EAAI,cAEzCA,EAAI/F,EAAErN,QAAQ,UAAYqP,KAAK4R,aAAe,KAAK,iBAAM,UAAY,EAAKvjB,MAAQ,OAEnFf,EAAIA,EAAEqD,QAAQqN,GAAG,kBAAM+F,GAAK7V,GAAK,UAElCoN,GAAE6P,EAAE,mBAAoBxd,GAAG2jB,MAAK,WAC/B,GAAIvX,EAAE0X,WAAY,CACjB,IAAIvK,EAAI5L,GAAE0E,MACNkH,GAAKA,EAAEwK,eACVpkB,EAAIA,EAAEqD,QAAQuW,EAAEzE,KAAK8O,WAAW,kBAAMrK,EAAE2K,UAAY,uBAAyB3K,EAAElF,KAAO,SAAW,WAE5F,CACN,IAAIhE,EAAIgC,KAAKuR,UAAW1iB,EAAImP,EAAErN,QAAQ,cAAe,IACjDqP,KAAK8R,UACRjjB,EAAIA,EAAE8B,QAAQ,KAAM,cACrBrD,EAAIA,EAAEqD,QAAQqN,EAAGnP,OAGfkL,EAAE0X,YACLnW,GAAE6P,EAAE,qBAAsBxd,GAAG2jB,MAAK,WACjC,IAAIpK,EAAI5L,GAAE0E,MACNkH,GAAKA,EAAEwK,cAAmC,YAAnBxK,EAAE6K,SAASnkB,OACrCN,EAAIA,EAAEqD,QAAQuW,EAAEzE,GAAG,QAAQ8O,WAAW,iBAAM,0CAA4CrK,EAAEyK,WAAa,gBAI1GrW,GAAE6P,EAAE,uBAAwBxd,GAAG2jB,MAAK,WACnChkB,EAAIA,EAAEqD,QAAQqP,KAAKuR,UAAW,OAE7B,IAAMS,EAAS,WACd,IAAI5T,EAAI5S,OAAOymB,OAAOC,YAKtB,OAJK9T,IACJ9C,GAAE6P,EAAE,8DAA8DgH,SAASliB,SAAS2R,MACpFxD,EAAI5S,OAAOymB,OAAOC,aAEZ9T,GAWV,OATEA,GAAgB,IAAZrE,EAAEqX,MAAkBY,IAAWxmB,OAAO4mB,OAC5CzkB,EAAIyQ,EAAEnO,SACNtC,EAAEykB,KAAK,YAAa,WACpBzkB,EAAE0kB,MAAM,uEAAyE/W,GAAE+P,IAAI3W,cACtF,ySAA6ShH,EAAE2O,KAAK,KACnTtC,EAAEuY,MAAQ,IAAM,mCAAqChlB,EAAI,WAC7C,IAAZyM,EAAEqX,MAAkB,kDAAmD,IACxE,kBACDzjB,EAAEiF,QACKjF,GAIT,IAAM4kB,GAAc,SAAS7mB,EAAM8mB,GACjC,IAAK9mB,GAAQA,aAAgB+mB,SAAU,OAAO/mB,EAC9C,IAAIgnB,EAAcpX,GAAEU,OAAO/N,IAAIukB,EAAQ,4BAA8BlX,GAAEU,OAAO/N,IAAIqN,GAAEC,EAAG,qCACvF,MAAsB,qCAAfmX,EAAqDC,IAAGzF,UAAUxhB,EAAM,CAACknB,YAAa,WAAalnB,GAG5G4P,GAAEuX,KAAO,SAASC,EAAKtY,GACrB,IAAIkT,EAAMlT,EAAOc,GAAE+R,UAAUyF,EAAIpF,IAAKlT,GAAQsY,EAAIpF,IAClD,IAAKA,EACH,OAAOqF,QAAQC,OAAO,qGAExB,IAAIjK,EAAM+J,EAAIG,SAAW3X,GAAEsE,QACvBsT,EAAOnK,EAAIoK,SACXX,EAASlX,GAAEU,OAAOoX,KAAKN,EAAK,CAAC,UAAW,iBAM5C,OALIA,EAAIhF,UACNxS,GAAEgQ,OAAOkH,EAAQ,CAACa,aAAc,SAElCH,GAAQA,IACRJ,EAAI1f,SAAW2V,EAAIuK,IAAI,YAAaR,EAAI1f,UAChC0f,EAAIpnB,KAAO4P,GAAE8P,KAAKmI,KAAK7F,EAAK6E,GAAYO,EAAIpnB,KAAM8mB,GAASA,GAAUlX,GAAE8P,KAAKnd,IAAIyf,EAAK8E,IAC1FgB,MAAK,SAAAC,GACJP,GAAQA,GAAK,GACb,IAAIxnB,EAAO+nB,EAAI/nB,KAKf,GAJIonB,EAAIjK,SAAQnd,EAAOonB,EAAIjK,OAAO4K,EAAK1K,IACnC+J,EAAIY,SAASZ,EAAIY,QAAQhoB,EAAMqd,GAC/B+J,EAAIa,UAAUb,EAAIa,SAASF,EAAK1K,GACpC+J,EAAI1f,SAAW2V,EAAIuK,IAAI,aAAa,GAChCR,EAAIhF,SAAU,CAChB,IAAI8F,EAAcH,EAAII,QAAQ,uBAC9B,GAAID,EAAa,CACf,IAAIE,EAAWC,UAAUH,EAAYpG,UAAUoG,EAAY9jB,QAAQ,aAAe,EAAG8jB,EAAY1nB,SAC7F8nB,EAAO,IAAIC,KAAK,CAACR,EAAI/nB,OACrBsjB,EAAO/e,SAASmS,cAAc,KAClC4M,EAAKC,KAAOiF,IAAIC,gBAAgBH,GAChChF,EAAKlB,SAAWgG,EAChB9E,EAAKG,QACLH,EAAK/c,cAELmiB,QAAQ/Z,MAAM,sCAGlB,OAAO0Y,QAAQsB,QAAQ3oB,MACtB4oB,OAAM,SAAA1R,GAKP,OAJAsQ,GAAQA,GAAK,GACTJ,EAAIzY,OAAOyY,EAAIzY,MAAMuI,EAAImG,GACzB+J,EAAIa,UAAUb,EAAIa,SAAS/Q,EAAG2R,SAAUxL,EAAKnG,GACjDkQ,EAAI1f,SAAW2V,EAAIyL,KAAK,CAAC/M,KAAM,WAAY,KAAMqL,EAAI1f,SAC9C2f,QAAQC,OAAOpQ,OAI5BtH,GAAEgQ,OAAOhQ,GAAEuX,KAAM,CACf5kB,IADe,SACXyf,EAAK8E,GACP,OAAOlX,GAAE8P,KAAKnd,IAAIyf,EAAK8E,GAAQgB,MAAK,SAAAC,GAAG,OAAI,IAAIV,SAAQ,SAAAsB,GAAO,OAAIA,EAAQZ,EAAI/nB,aAEhF6nB,KAJe,SAIV7F,EAAKhiB,EAAM8mB,GACd,OAAOlX,GAAE8P,KAAKmI,KAAK7F,EAAK6E,GAAY7mB,EAAM8mB,GAASA,GAAQgB,MAAK,SAAAC,GAAG,OAAI,IAAIV,SAAQ,SAAAsB,GAAO,OAAIA,EAAQZ,EAAI/nB,cAE3G0f,KAEH9P,GAAEuT,MAAQ,SAAS7M,EAAMyS,EAAUC,EAASnjB,GAC1C+J,GAAEsE,QAAQ0T,IAAI,UAA2B,WAAhB,eAAOtR,GAAP,gBAA4B2S,MAAO,QAAW3S,GAAQ,CAC7E2S,MAAO,OAAQ3S,OAAMyS,WAAUC,UAASnjB,SAI5C+J,GAAE1J,QAAU,SAASoQ,EAAMzQ,EAAKC,EAAIojB,GAClCtZ,GAAEsE,QAAQ0T,IAAI,YAA6B,WAAhB,eAAOtR,GAAP,gBAA4B2S,MAAO,QAAW3S,GAAQ,CAC/E2S,MAAO,OAAQ3S,OAAMzQ,MAAKC,KAAIojB,WAIlCtZ,GAAEqU,OAAS,SAACpV,GACV,GAAKA,EAAL,CACAA,EAAIe,GAAEkU,GAAGjV,GACT,MAAOA,IAAMA,EAAEsa,SAAUta,EAAIA,EAAEmV,UAC/B,OAAOnV,IAGTe,GAAEkX,OAAS,SAAS1G,GAClBxQ,GAAEwZ,WAAalM,IACftN,GAAEoQ,UAAUpQ,GAAEC,EAAGuQ,GACbA,EAAIV,OACN9P,GAAEoQ,UAAUN,IAAK2J,SAAUjJ,EAAIV,MAC/BA,IAAK4J,aAAaT,SAASU,IACzBnJ,EAAIV,KAAKvC,OACTiD,EAAIV,KAAK/Q,OAAS,SAASuI,GAIzB,OAHIA,EAAG2R,WACL3R,EAAGsS,SAAW,kBAAM5Z,GAAEuT,MAAOjM,EAAG2R,SAAShG,OAAU,KAAO3L,EAAG4P,OAAO2C,OAE/DpC,QAAQC,OAAOpQ,MAI5B,IAAMwS,EAAS9Z,GAAEC,EAAEyP,eAEnB,IAAK,IAAIzG,KAAK6Q,EACZ,GAAI7Q,EAAE8Q,SAAS,KAAM,CACnB,IAAI9a,EAAIe,GAAEN,QAAQuJ,EAAG,KAAK5T,QAAQ,MAAO,KACrCsK,EAAIK,GAAEF,MAAMmJ,EAAG,MAClBjJ,GAAE4P,WAAWjQ,KAAOK,GAAE4P,WAAWjQ,GAAK,KAAKV,GAAK6a,EAAO7Q,KAK9D/Y,OAAO6e,iBAAiB,sBAAsB,SAACiL,GACzCha,GAAEC,EAAEga,YACNja,GAAEC,EAAEga,YAAYD,IAEZA,EAAME,SACJF,EAAME,OAAON,SACfI,EAAME,OAAON,WACkB,kBAAjBI,EAAME,QACpBpB,QAAQ/Z,MAAMib,EAAME,SAExBF,EAAMpL,qBAIK5O,U,UC1lBf,SAASma,GAAWhT,EAAI7T,GACtBA,EAAKP,MAAQoU,EAAGiT,aAAa,gBAAiB,IAAMjT,EAAGkT,gBAAgB,iBAG1D,QACbC,QAASH,GACTI,QAASJ,I,aCJX,SAASK,GAAY/Z,GACnB,IAAIjO,EAAIwN,GAAEqU,OAAO5T,EAAEoO,eACnB,GAAIrc,IACkB,IAAhBA,EAAEyN,EAAEwa,UAAsBjoB,EAAEyN,EAAEya,WAAY,CAC5C,IAaIvoB,EAbAE,EAAIG,EAAE2U,KACNwT,EAAKtoB,EAAEqW,MAAMiB,KACbiR,EAAKvoB,EAAEqW,MAAMkB,MACb8L,EAAKrjB,EAAEqW,MAAMe,IACboR,EAAKxoB,EAAEqW,MAAMgB,OACb/J,EAAIkb,GAAM,EAAI,EACdjoB,EAAIgoB,GAAM,EAAI,EACdnS,EAAI9I,EAAI,EAAI,SAAW,MACvB+C,EAAI9P,EAAI,EAAI,QAAU,OACtBqN,EAAIQ,EAAEiL,QACNjN,EAAIgC,EAAEkL,QACN3Y,EAAIgN,GAAEoB,OAAOzB,EAAI,EAAIkb,EAAKnF,GAC1BxjB,EAAI8N,GAAEoB,OAAOxO,EAAI,EAAIgoB,EAAKD,GAE1BpnB,EAAIoB,SAAS2U,gBAAgBsB,aAC7B9H,EAAInO,SAAS2U,gBAAgBqB,YACjC3K,GAAEkO,QAAO,SAASzN,GAAG,OAClBtO,IAAMA,EAAI6N,GAAE6P,EAAE,0CAA0CgH,SAASliB,SAAS2R,OAC3E,IAAIwU,EAAK9a,GAAEuB,SAASd,EAAEiL,QAAS,EAAG5I,GAC9BiY,EAAK/a,GAAEuB,SAASd,EAAEkL,QAAS,EAAGpY,GAClCf,EAAEwoB,aAAF,uBAAgBvS,EAAKzV,EAAI2M,GAAKob,EAAKtc,GAAM,MAAzC,kBAAgDiE,EAAKxQ,EAAIU,GAAKkoB,EAAK7a,GAAM,MAAzE,OACC,SAASQ,EAAGwa,GACbA,GAAS9oB,GAAKA,EAAEwE,WACf8J,IAKM,QACbya,QADa,SACL/T,EAAI7T,GACVA,EAAKP,OAASoU,EAAG4H,iBAAiB,YAAayL,KAEjDW,UAJa,SAIHhU,GACRA,EAAG8H,oBAAoB,YAAauL,MCtCxC,SAASY,GAAWjU,EAAI7T,GACtB6T,EAAGuB,MAAM2S,YAAY,kBAAmBrb,GAAE8Q,SAASxd,EAAKP,QAG3C,QACbunB,QAASc,GACTb,QAASa,ICNI,YAASE,GACtBA,EAAIC,UAAU,cAAepB,IAC7BmB,EAAIC,UAAU,cAAeC,IAC7BF,EAAIC,UAAU,cAAeH,K,aCAvBK,GAAY,GAEH,IACbC,MAAO,CAAC,OAAQ,QAAS,SAAU,UAAW,UAAW,cAAe,aACxEtrB,KAFa,WAGX,MAAO,CACLgX,UAAU,EACVkG,IAAK5I,KAAKiX,WAAa,GAAErO,MACzBsO,SAAU,GACVC,OAAQ,OAGZvB,QAVa,WAUH,WACR,GAAEnL,OAAO2M,IAAIpX,KAAK4I,IAAK5I,MACvB,IAAIqX,EAAOrX,KAAKsX,iBACZC,EAAO,GAAEzC,WACT0C,EAAS,GACbxX,KAAKzE,EAAI,IAAIkc,MAAMzX,KAAKkX,SAAU,CAChCjpB,IAAK,SAACypB,EAAKC,GACT,OAAIA,KAAQD,EAAYA,EAAIC,QACFpb,IAAtB,EAAKqb,OAAOD,GAA4B,EAAKC,OAAOD,IACpDJ,GAAQ,GAAEzC,aACZyC,EAAO,GAAEzC,WACTuC,EAAO,EAAKC,kBAEPD,EAAKM,KAEdP,IAAK,SAACM,EAAKC,EAAME,GAKf,OAJKL,EAAOG,KACVH,EAAOG,GAAQ,EAAKG,OAAOH,GAAM,SAAC5T,GAAD,OAAO2T,EAAIC,GAAQ5T,MAEtD2T,EAAIC,GAAQE,GACL,MAIbpB,UAlCa,WAmCX,GAAEhM,OAAOsN,OAAO/X,KAAK4I,MAEvBoP,QAAS,CACPC,UADO,aAIPX,eAJO,WAKL,IAAIY,EACJ,IAAKlY,KAAKmY,YAAa,CACrB,IAAIld,EAAI+E,KAAK+R,SAASnkB,KAEtB,GADAsqB,EAAS,GAAE3c,EAAEyP,eAAe/P,GACxB,GAAEiQ,WAAWjQ,GAAI,CACnB,IAEIyE,EAFAhS,EAAIsS,KAAK+R,SAASnkB,MAAQoS,KAAKoY,OAAOC,MAAQ,IAAMrY,KAAKoY,OAAOC,MAAQ,IACxE1qB,EAAI,GAAEud,WAAWjQ,GAErB,IAAK,IAAIsJ,KAAK5W,EACZ,GAAE+e,OAAOhf,EAAG6W,EAAG,MAAQ,GAAEmH,UAAUhM,IAAMA,EAAI,IAAK/R,EAAE4W,IAEtD7E,IAAMwY,EAAS,GAAE3M,WAAW7L,EAAGwY,KAGnC,wCACKlY,KAAKiY,aACLC,IAGVrF,KAxBU,SAwBLC,GAEJ,OADAA,EAAIG,QAAUH,EAAIG,SAAWjT,KACtB,GAAE6S,KAAKC,IAEfwF,OA5BU,SA4BHxF,GAAK,WACLtD,EAAK,GAAEA,GAAGxP,MAChB,OAAO,IAAI+S,SAAQ,SAAAwF,GAAE,OAAK,EAAKC,WAAU,WACvC,IAAI7qB,EAAImlB,EAAI2F,WAAY,EACpBhc,EAAI+S,EAAGkJ,YAAY/qB,EAAEgrB,OAAS7F,EAAI6F,OAClCzR,EAAIvZ,EAAEgrB,OAAShrB,EAAEgrB,OAAS7F,EAAI6F,MAAQnJ,EAAGkJ,YAAY5F,EAAI6F,OAASlc,EACtE,GAAI+S,EAAGoJ,MAAMnc,EAAG9O,EAAEkrB,OAAQ,CACxB,IAAItF,EAAO/D,EAAGsJ,YAAY5R,GAC1B4L,EAAIpnB,KAAOonB,EAAIpnB,KAAO,GAAE4f,OAAOwH,EAAIpnB,KAAM6nB,GAAQA,EACjD,EAAKV,KAAKC,GAAKU,MAAK,SAAA9nB,GAAG,OAAK6sB,EAAI7sB,cAIrC4nB,IAzCU,SAyCNyF,EAAU/B,GACb,IAAIxH,EAAK,GAAEA,GAAGxP,MACd,IAAc,IAAVgX,EAEG,CACN,IAAIgC,EAAM,GAAEzN,WAAW,GAAIyL,GAC3B,OAAOxH,EAAGyJ,UAAUF,EAAUC,EAAKhZ,MAHnCwP,EAAG0J,QAAQH,GAAUhc,SAAQ,SAAA/N,GAAA,OAAKwgB,EAAG2J,UAAUnqB,OAM9CoqB,QAlDO,SAkDCC,GAAa,2BAAN7e,EAAM,iCAANA,EAAM,kBACnB,IAAIiN,EAAO4R,EAAGC,SAAWD,EAAG5R,MAAQ4R,EAChC5c,EAAIuD,KAAKuZ,MAAM9R,GACfhL,IACgB,kBAAP4c,IACTA,EAAK,CAAC5R,OAAMmB,IAAK5I,KAAK4I,MAEpBhN,MAAMC,QAAQY,GAAIA,EAAEM,SAAQ,SAAAlO,GAAA,OAAKA,EAAC,WAAD,GAAEwqB,GAAF,OAAS7e,OACzCiC,EAAC,WAAD,GAAE4c,GAAF,OAAS7e,KAEhBwF,KAAKmX,QAAUnX,KAAKmX,OAAOqC,UAAU/R,IAEvCyB,SA9DO,SA8DEzB,EAAMY,EAAIoR,GACZzZ,KAAKmX,SAAQnX,KAAKmX,OAAS,IAAI,GAAErO,cAAc9I,OACpDA,KAAKmX,OAAOjO,SAASzB,EAAMY,EAAIoR,IAEjCD,UAlEO,SAkEG/R,EAAMjN,GACd,OAAOwF,KAAKmX,QAAUnX,KAAKmX,OAAOqC,UAAU/R,EAAMjN,IAEpD4O,YArEO,SAqEK3B,EAAMY,GAChBrI,KAAKmX,QAAUnX,KAAKmX,OAAO/N,YAAY3B,EAAMY,IAE/CkR,MAxEO,SAwED9R,GACJ,IAAI5Y,EAAI,KAAO4Y,EAAKnK,OAAO,GAAGuG,cAAgB4D,EAAKtY,MAAM,GACzD,OAAQ6Q,KAAK1E,EAAEoe,MAAM1C,OAAShX,KAAK1E,EAAEoe,MAAM1C,MAAMnoB,IAAOmR,KAAKzE,EAAE1M,IAEjE8qB,OA5EO,WA6EL,OAAO3Z,KAAK1E,EAAEoe,MAAM/qB,KAEtBirB,QA/EO,SA+ECrf,GACN,IAAIvL,EAAIgR,KACJ/E,EAAI,OAAJ,OAAI,CAAOV,GACf,GACE,GAAU,WAANU,GACF,GAAI,GAAEwR,OAAOlS,EAAGvL,EAAE+iB,SAASnkB,MACzB,OAAOoB,OACJ,GAAU,aAANiM,GACLV,EAAEvL,GACJ,OAAOA,QAEJA,EAAIA,EAAE8b,UAEjBhZ,MA5FO,SA4FD+nB,GACJ,GAAI7Z,KAAKyC,KAAM,CACb,IAAI3U,EAAI,GAAEqd,EAAE0O,EAAK7Z,KAAKyC,MAAM,GAC5B,OAAO3U,GAAK,GAAEA,KAGlBgsB,SAlGO,SAkGEvf,GACP,OAAOA,GAAKyF,KAAKyC,KAAKqX,SAASvf,EAAEmI,SAAWnI,EAAEkI,KAAOlI,IAEvDkI,GArGO,SAqGJlI,GACD,OAAOA,GAAK,KAAKzJ,KAAKyJ,GAAK,GAAE4Q,EAAE5Q,EAAGyF,KAAKyC,MAAM,GAAKxS,SAAS8pB,eAAe/Z,KAAK4I,KAAOrO,GAAK,MAE7F/F,KAxGO,WAyGL,IAAMuH,EAAIiE,KAAKyC,KAAKiB,mBACpB,OAAO3H,GAAK,GAAEA,IAEhBtH,KA5GO,WA6GL,IAAMsH,EAAIiE,KAAKyC,KAAKc,uBACpB,OAAOxH,GAAK,GAAEA,IAEhBie,YAhHO,SAgHKpsB,EAAMlC,GAChB,IAAIqQ,EAAI,IAAIke,YAAYrsB,GAGxB,OAFAmO,EAAE1N,MAAQ3C,EACVqQ,EAAE6M,IAAM5I,KAAK4I,IACN7M,GAETme,SAtHO,WAuHL,OAAOla,KAAKyC,MAEd0X,eAzHO,WAyHqB,WAAbrO,EAAa,wDACpBtX,EAAO,SAACsV,EAAKzB,GACjB,IAAI3a,EAAI,SAAWoc,EAAIjG,cACnBvV,EAAI,EAAKsrB,SAAQ,SAAA5qB,GAAA,OAAKA,EAAEuM,GAAKvM,EAAEuM,EAAE7N,KAAOsB,EAAEorB,gBAAiB,GAAOtQ,MAClExb,EACFA,EAAE+rB,SAAS,EAAMvO,EAAI/R,GAAK,OAAQ+R,EAAIvQ,GAAK,OAAoB,MAAZuQ,EAAIyE,KAAe,IAAMzE,EAAIyE,KAAMzE,EAAIwO,OAAQjS,GAEnGA,GAAMA,KAET7T,EAAK,KAAK,kBAAMA,EAAK,IAAKsX,EAAI4H,aAEhC6G,UApIO,SAoIGhgB,GACR,IAAKA,EAAG,OAAO,EACf,GAAIyF,KAAK8Z,SAASvf,GAAI,OAAO,EAC7B,IAAI5M,EAAI,GAAEgiB,OAAOpV,GACjB,OAAI5M,GAAKA,EAAE6sB,UAAkBxa,KAAKua,UAAU5sB,EAAE6sB,gBAA9C,GAEF5rB,KA1IO,SA0IFhB,EAAMya,GACT,IAAI3a,EAAIqpB,GAAU/W,KAAK4I,OAASmO,GAAU/W,KAAK4I,KAAO,IAEtD,OADKlb,EAAEE,KAAOF,EAAEE,GAAQya,GAAMrI,KAAKpS,IAC5BF,EAAEE,IAEX6sB,eA/IO,SA+IQ7sB,GACb,OAAO,GAAEsiB,cAAclQ,KAAK0a,OAAQ9sB,IAEtC+sB,UAlJO,SAkJGjN,EAAKkN,EAAKC,GAClB,IAAIC,EAAOpN,EAAIC,WAAW,OAASD,EAAI2H,SAAS,KAChD,OAAOyF,EAAO,gBAAE,IAAK,CACnBzC,MAAO,CAACuC,EAAKlN,EAAI/c,QAAQ,MAAO,KAChCkqB,YACG,gBAAE,MAAO,CACZnN,MACAmN,UACAxC,MAAOuC,KAGXG,KA7JO,WA6JgB,IAAlBntB,EAAkB,uDAAX,UACV,OAAOoS,KAAK0a,OAAO9sB,GAAQoS,KAAK0a,OAAO9sB,KAAU,IAEnDotB,WAhKO,WAiKL,OAAOhb,KAAK0a,QAEdO,UAnKO,SAmKG1gB,GACR,OAAO,gBAAEyF,KAAKkb,SAAW,MAAO3gB,EAAI,gBAAWyF,KAAKmb,WAAYnb,KAAKob,WAAYpb,KAAKoY,QAAU,gBAAWpY,KACxGmb,WAAYnb,KAAKob,YAAapb,KAAKgb,eAExCrY,KAvKO,WAwKL,OAAO3C,KAAKib,cAGhBI,SAAU,CACRC,MADQ,WAEN,OAAO,IAET5L,UAJQ,WAKN,IAAI1gB,EAAIgR,KAAKub,YACb,MAAOvsB,IAAMA,EAAEygB,OAAQzgB,EAAIA,EAAEusB,YAC7B,OAAOvsB,GAETwsB,UATQ,WAUN,OAAOxb,KAAKyb,kBAAoB,GAAEhP,OAAOzM,KAAK+R,SAAS2J,cAAe1b,KAAKyb,iBAAiB1J,SAASnkB,OACnGoS,KAAKyb,kBAETta,WAbQ,WAcN,OAAO,GAAEnB,KAAKyC,KAAKkZ,gBAErBT,QAhBQ,WAiBN,MAAO,OAETC,WAnBQ,WAoBN,MAAO,CACL5S,GAAIvI,KAAK4I,IACTyP,MAAO,CAACrY,KAAK+R,SAASnkB,KAAMoS,KAAK4b,YACjC5X,MAAO,CAAC,CACNoC,MAAOpG,KAAKzE,EAAE6K,OAAS,GAAEgG,SAASpM,KAAKzE,EAAE6K,OACzCC,OAAQrG,KAAKzE,EAAE8K,QAAU,GAAE+F,SAASpM,KAAKzE,EAAE8K,QAC3C,mBAAqBrG,KAAKzE,EAAEsgB,UAA8B,GAAnB7b,KAAKzE,EAAEsgB,QAA1B,eAAyD7b,KAAKzE,EAAEsgB,SAAtB,KAC9D,mBAAqB7b,KAAKzE,EAAEugB,UAA8B,GAAnB9b,KAAKzE,EAAEugB,QAA1B,eAAyD9b,KAAKzE,EAAEugB,SAAtB,MAC7D9b,KAAK+b,YACR,QAAS/b,KAAK2Z,SACd,UAA4B,MAAjB3Z,KAAKzE,EAAE6K,MAAgB,IAAM,KACxC,WAA8B,MAAlBpG,KAAKzE,EAAE8K,OAAiB,IAAM,OAG9C0V,WAlCQ,aAqCRH,WArCQ,aAwCRR,WAxCQ,aA2CRY,WA3CQ,WA4CN,OAAO,gBAAWhc,KAAKmb,WAAYnb,KAAKob,WAAYpb,KAAKoY,UAG7D6D,OA/Pa,WAgQX,OAAOjc,KAAK2C,SCtQH,MCAE,I,8BAAA,CACbqU,MAAO,CAAC,MAAO,YACftrB,KAFa,WAGX,MAAO,CACL0H,SAAS,EACT8oB,QAAQ,IAGZlE,QAAS,CACPmE,OADO,WAEL,OAAQnc,KAAKzE,GAAKyE,KAAK4X,QAAQlK,KAEjC0O,QAJO,SAIC/T,GAAI,WACNqF,EAAM1N,KAAKmc,SACXzO,IAAQ1N,KAAK5M,UACf4M,KAAKqc,aAAY,GACE,oBAAR3O,GACTA,EAAI1N,MAAMwT,MAAK,SAAAC,GACb,EAAK4I,aAAY,GACjB,EAAKH,QAAS,EACd7T,GAAMA,OACLiM,OAAM,SAAA1R,GACP,EAAKyZ,aAAY,GACjB,EAAKH,QAAS,OAKtBG,YApBO,SAoBK9hB,GACVyF,KAAK5M,QAAUmH,MC7BR,M,ICCF8d,MAAM,eAAeiE,UAAQ,K,UAC3BjE,MAAM,iB,kRAJnB,gBAoBU,Q,yBAnBR,iBAOe,CAPf,gBAOe,GAPDA,MAAM,gBAAc,C,yBAChC,iBAIgB,CAJhB,gBAIgB,Q,yBAHd,iBAEM,CAFN,gBAEM,MAFN,GAEM,CAD6B,EAAA1D,O,kBAAjC,gBAAuD,MAAvD,GAAuD,gBAAb,EAAAA,OAAK,I,mCAGnD,gBAA0D,KAAvD0D,MAAM,8BAA+B,QAAK,8BAAE,EAAAzlB,OAAA,EAAAA,MAAA,2B,MAEjD,gBAUa,GAVDylB,MAAM,gBAAc,C,yBAC9B,iBAKe,CALf,gBAKe,GALDA,MAAM,gBAAc,C,yBAChC,iBAAoD,CAApD,gBAAoD,GAA7CA,MAAM,eAAgB3K,IAAK,EAAA6O,U,gBAClC,gBAEO,uBAFP,iBAEO,CADL,gBAA0D,OAArDD,UAAQ,IAAIjE,MAAM,eAAe,UAAQ,EAAArW,M,qCAGrB,IAAV,EAAAwa,Y,kBAAnB,gBAEc,G,MAF0BnE,MAAK,gCAAoC,EAAAiD,MAAM/V,GAAGpV,OAAOC,O,0BAC/F,iBAA8F,CAA9F,gBAA8F,GAApFqsB,KAAK,UAAUpE,MAAM,iBAAiBrW,KAAK,KAAM,QAAO,EAAAhQ,KAAOmmB,aAAa,G,sFAS5F,IAAM,GAAQ,CACZuE,KAAM,uBACNC,QAAS,0BACTjJ,QAAS,0BACTkJ,SAAU,2BACVviB,MAAO,yBAGM,IACb2c,MAAO,CAAC,OAAQ,QAAS,OAAQ,cACjCtrB,KAFa,WAGX,MAAO,CACLmxB,gBAAiB,SAGrB7E,QAAS,CACPhmB,KADO,SACF+J,GACH,GAAE4T,OAAO5T,GAAG+gB,UAEdlqB,MAJO,SAIDmJ,GACJ,GAAEnJ,MAAMmJ,KAGZsf,SAAU,CACRC,MADQ,WAEN,OAAO,IAETiB,SAJQ,WAKN,OAAO,GAAMvc,KAAK+c,OAAS/c,KAAK+c,MAAQ,GAAM/c,KAAK6c,oBCpD3D,GAAOZ,OAAS,GAED,U,ICDF5D,MAAM,eAAeiE,UAAQ,K,UAASjE,MAAM,iB,oRAHvD,gBAoBY,Q,yBAnBV,iBAKe,CALf,gBAKe,GALDA,MAAM,gBAAc,C,yBAChC,iBAEgB,CAFhB,gBAEgB,Q,yBADd,iBAAmG,CAAnG,gBAAmG,MAAnG,GAAmG,CAA5B,EAAA1D,O,kBAAjC,gBAAuD,MAAvD,GAAuD,gBAAb,EAAAA,OAAK,I,mCAEvF,gBAA2D,KAAxD0D,MAAM,8BAA+B,QAAK,8BAAE,EAAAnmB,QAAA,EAAAA,OAAA,2B,MAEjD,gBAYa,GAZDmmB,MAAM,gBAAc,C,yBAC9B,iBAKe,CALf,gBAKe,GALDA,MAAM,eAAe2E,OAAO,U,0BACxC,iBAAoD,CAApD,gBAAoD,GAA7C3E,MAAM,eAAgB3K,IAAK,EAAA6O,U,gBAClC,gBAEO,uBAFP,iBAEO,CADL,gBAA0D,OAArDD,UAAQ,IAAIjE,MAAM,eAAe,UAAQ,EAAArW,M,oCAGlD,gBAIc,GAJAqW,MAAK,gCAAoC,EAAAiD,MAAM/V,GAAGpV,OAAOC,O,0BACrE,iBACuB,CADvB,gBACuB,GADbqsB,KAAK,UAAUpE,MAAM,iBAAiBrW,KAAK,KAAM,QAAO,EAAAhQ,KAC/DmmB,aAAa,G,oBAChB,gBAAgF,GAAtEE,MAAM,iBAAiBrW,KAAK,KAAM,QAAO,EAAA9P,OAASimB,aAAa,G,8DAUhE,QACb8E,OAAQ,CAACC,IACTxxB,KAFa,WAGX,MAAO,CACLmxB,gBAAiB,aAGrB7E,QAAS,CACPhmB,KADO,SACF+J,GACH,GAAE4T,OAAO5T,GAAG+gB,UAEd5qB,OAJO,SAIA6J,GACL,GAAE4T,OAAO5T,GAAGohB,WCrCpB,GAAOlB,OAAS,GAED,U,ICHN5D,MAAM,4B,IACJA,MAAM,c,iFAFf,gBAIQ,Q,yBAHN,iBAEM,CAFN,gBAEM,MAFN,GAEM,CADJ,gBAAmD,MAAnD,GAAmD,CAA3B,gBAAqB,uBAArB,iBAAqB,C,gCAAb,EAAArW,MAAI,e,MAQzB,QACbgV,MAAO,CAAC,QACRgB,QAAS,GAGTqD,SAAU,ICbd,GAAOY,OAAS,GAED,U,6ECJb,gBAAa,GCAf,MAAMmB,GAAS,GACfA,GAAOnB,OAAS,GAED,UCIPoB,GAAgB,CACpB,UAAWH,GACX,YAAaI,GACb,QAASC,GACT,YAAaC,IAGA,IACb5vB,KAAM,QACNopB,MAAO,CAAC,KACRiF,OAHa,WAIX,IAAI3tB,EAAI0R,KAAKhR,EAAE+pB,SACX0E,EAAM,gBAAmB,kBAANnvB,EAAiB+uB,GAAc/uB,GAAKA,GAC3D,OAAOmvB,GAAO,gBAAEA,EAAKzd,KAAKhR,EAAEgoB,SClBnB,MCAE,IACbiG,OAAQ,CAACS,IACTC,OAAQ,CAAC,gBCFE,M,aCKPC,GAAW,SAAS7hB,GACxB,GAAIiE,KAAK6d,gBAAiB,CACxB,IAAI5Y,EAAOlJ,EAAEiM,OAAOtB,WACpB1G,KAAK8d,gBAA0B,GAAR7Y,EAAY,OAASA,GAAQjF,KAAK+d,aAAe,QAAU,SAClF/d,KAAKge,MAAMC,iBAAiBja,MAAMka,UAAlC,qBAA4DjZ,EAAKjF,KAAK6d,gBAAtE,OAEF,GAAI7d,KAAKme,gBAAiB,CACxB,IAAIpZ,EAAMhJ,EAAEiM,OAAOpB,UACnB5G,KAAKoe,gBAAyB,GAAPrZ,EAAW,MAAQA,GAAO/E,KAAKqe,aAAe,SAAW,SAChFre,KAAKge,MAAMM,iBAAiBta,MAAMka,UAAlC,qBAA4DnZ,EAAI/E,KAAKme,gBAArE,OAEFne,KAAK4d,SAAS7hB,IAGV,GAAc,SAASwiB,GAAM,IAC7BzU,EAAK0U,EAAKC,EAAKC,EAASC,EADK,OAE7BC,EAAK5e,KAAKge,MAAMa,gBAChBtjB,EAAIyE,KAAK6d,gBACT9jB,EAAIiG,KAAKme,gBACb,GAAE3U,QAAO,SAACsV,GACHhV,IACHA,EAAM,EAAKkU,MAAMC,mBAAqBM,EAAKvW,OAAS,IAAM,IAC1DwW,EAAMD,EAAKvX,QACXyX,EAAMF,EAAKtX,QACXyX,EAAUE,EAAGlY,WACbiY,EAASC,EAAGhY,UACZ2X,EAAKvW,OAAO7G,WAAW4d,UAAU5sB,IAAI,WAE3B,MAAR2X,EACF8U,EAAGlY,WAAagY,GAAYI,EAAK9X,QAAUwX,GAAOjjB,EAElDqjB,EAAGhY,UAAY+X,GAAWG,EAAK7X,QAAUwX,GAAO1kB,KAEjD,SAACilB,EAAMzI,GACJA,GACFgI,EAAKvW,OAAO7G,WAAW4d,UAAU9sB,OAAO,YACzCssB,IAGU,IACbtB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,UAAW,UAAW,aAAc,cAC5CtrB,KAHa,WAIX,MAAO,CACLmyB,iBAAiB,EACjBM,iBAAiB,EACjBJ,cAAc,EACdM,cAAc,EACdP,gBAAiB,OACjBM,gBAAiB,MACjBc,eAAe,IAGnBC,MAAO,CACLrB,gBADK,SACW/Z,GACd/D,KAAKof,iBAAiBrb,IAExBqa,gBAJK,SAIWra,GACd/D,KAAKof,iBAAiBrb,IAExB8Z,gBAPK,SAOW9Z,GACd,IAAItB,EAAKzC,KAAKyC,KACVA,IACFsB,EAAItB,EAAGiT,aAAa,kBAAmB,IAAMjT,EAAGkT,gBAAgB,qBAGpEwI,gBAbK,SAaWpa,GACd,IAAItB,EAAKzC,KAAKyC,KACVA,IACFsB,EAAItB,EAAGiT,aAAa,kBAAmB,IAAMjT,EAAGkT,gBAAgB,sBAItEqC,QAAS,CACP4F,SADO,SACE7hB,KAGTqjB,iBAJO,aAOPC,wBAPO,SAOiBtjB,KAIxBse,SAXO,SAWEte,EAAGhC,EAAGwB,EAAGvM,EAAGmc,EAAGjd,GACtB,IAAIqM,EAAIyF,KAAKsf,MACb,IAAK/kB,EAAG,OAAOrM,GAAKA,IACpB,IAIII,EAAGd,EAJHyN,EAAI+E,KAAKge,MAAMuB,aAAehlB,EAC9B7M,EAAI,GAAEsY,IAAIzL,GACV5M,EAAI,GAAEqY,IAAI/K,GACVwB,EAAIV,EAAI,GAAEiK,IAAIjK,GAAKpO,EA8CvB,IA5CS,MAALoM,GAAagC,KACN,MAALhC,GAAc4C,MAAM5C,IAGZA,EAAEjK,QAAQ,OACpBxB,EAAImO,EAAEsI,IAAMpX,EAAEoX,KAAQhL,EAAE5K,MAAM,IACpB4K,EAAEjK,QAAQ,UACpBxB,EAAImO,EAAEuI,OAASrX,EAAEoX,IAAMrX,EAAE2Y,SAAWtM,EAAE5K,MAAM,GAC7B,WAAN4K,EACTzL,EAAImO,EAAEsI,IAAMpX,EAAEoX,KAAQrX,EAAE2Y,OAAS,EAAM5J,EAAE4J,OAAS,GACnC,YAANtM,EACL0C,EAAEsI,IAAMrX,EAAEqX,IACZzW,EAAIiM,EAAEqM,UAAYlZ,EAAEqX,IAAMtI,EAAEsI,IACrBtI,EAAEuI,OAAStX,EAAEsX,SACpB1W,EAAIiM,EAAEqM,UAAYnK,EAAEuI,OAAStX,EAAEsX,SAE7BvI,EAAEsI,IAAMrX,EAAEqX,KAAOtI,EAAEuI,OAAStX,EAAEsX,UAChC1W,EAAImO,EAAEsI,IAAMpX,EAAEoX,KAAQrX,EAAE2Y,OAAS,EAAM5J,EAAE4J,OAAS,KAfpD/X,EAAI,GAAEoO,OAAO3C,GACTgC,IAAGzN,EAAImO,EAAEsI,IAAMpX,EAAEoX,IAAMzW,MAiBtB,MAALiN,GAAaQ,KACN,MAALR,GAAcoB,MAAMpB,IAGZA,EAAEzL,QAAQ,QACpBtC,EAAIiP,EAAEwI,KAAOtX,EAAEsX,MAAS1J,EAAEpM,MAAM,IACtBoM,EAAEzL,QAAQ,SACpBtC,EAAIiP,EAAEyI,MAAQvX,EAAEsX,KAAOvX,EAAE0Y,QAAU7K,EAAEpM,MAAM,GAC5B,WAANoM,EACT/N,EAAIiP,EAAEwI,KAAOtX,EAAEsX,MAASvX,EAAE0Y,MAAQ,EAAM3J,EAAE2J,MAAQ,GACnC,YAAN7K,EACLkB,EAAEwI,KAAOvX,EAAEuX,KACbzX,EAAI+M,EAAEmM,WAAahZ,EAAEuX,KAAOxI,EAAEwI,KACvBxI,EAAEyI,MAAQxX,EAAEwX,QACnB1X,EAAI+M,EAAEmM,WAAajK,EAAEyI,MAAQxX,EAAEwX,QAE7BzI,EAAEwI,KAAOvX,EAAEuX,MAAQxI,EAAEyI,MAAQxX,EAAEwX,SACjC1X,EAAIiP,EAAEwI,KAAOtX,EAAEsX,MAASvX,EAAE0Y,MAAQ,EAAM3J,EAAE2J,MAAQ,KAfpD5Y,EAAI,GAAEkP,OAAOnB,GACTQ,IAAGvO,EAAIiP,EAAEwI,KAAOtX,EAAEsX,KAAOzX,KAiBxB,MAAL2d,IACG,MAAL7c,IAAcA,GAASA,EAAI6c,GACtB,MAAL3d,IAAcA,GAASA,EAAI2d,KAEzBnc,GAAW,MAALV,GAAkB,MAALd,EASZ,MAALc,IAAWiM,EAAEqM,UAAYtY,GACpB,MAALd,IAAW+M,EAAEmM,WAAalZ,GAC9BU,GAAKA,QAX4B,CACjC,IAAIgZ,EAAI3M,EAAEqM,UACN,EAAIrM,EAAEmM,WACV,GAAE6J,MAAK,SAACvkB,GACG,MAALsC,IAAWiM,EAAEqM,UAAYM,GAAK5Y,EAAI4Y,GAAKlb,GAClC,MAALwB,IAAW+M,EAAEmM,WAAa,GAAKlZ,EAAI,GAAKxB,GACtC,IAANA,GAAWkC,GAAKA,MACfc,KAQPwwB,UA9EO,SA8EGzjB,EAAGhC,EAAG/K,EAAGmc,EAAGjd,GACpB,GAAyB,IAArBoW,UAAUpY,OACZ,OAAO8T,KAAKsf,MAAM1Y,UACH,WAAb,eAAO7K,KACT7N,EAAIid,EAAGA,EAAInc,EAAGA,EAAI+K,EAAGA,EAAIgC,EAAGA,EAAI,MAEjB,oBAANoP,IACTjd,EAAIid,EAAGA,EAAI,MAEbnL,KAAKqa,SAASte,EAAGhC,EAAG,KAAM/K,EAAGmc,EAAGjd,IAGlCuxB,UA1FO,SA0FG1jB,EAAGR,EAAGvM,EAAGmc,EAAGjd,GACpB,GAAyB,IAArBoW,UAAUpY,OACZ,OAAO8T,KAAKsf,MAAM5Y,WACH,WAAb,eAAO3K,KACT7N,EAAIid,EAAGA,EAAInc,EAAGA,EAAIuM,EAAGA,EAAIQ,EAAGA,EAAI,MAEjB,oBAANoP,IACTjd,EAAIid,EAAGA,EAAI,MAEbnL,KAAKqa,SAASte,EAAG,KAAMR,EAAGvM,EAAGmc,EAAGjd,IAElCoxB,IArGO,WAsGL,OAAO,GAAE/Z,GAAGlV,OAAS2P,KAAKyC,KAAOzC,KAAKge,MAAMa,iBAAmB7e,KAAKge,MAAMuB,aAE5EG,kBAxGO,SAwGWpyB,GAChB,OAAO0S,KAAKzE,EAAEokB,SAAW3f,KAAKzE,EAAEqkB,QAAU,CAAC,gBAAE,MAAO,CAChDC,IAAK,kBACLxH,MAAO,oBACPyH,SAAUlC,GAAShvB,KAAKoR,MACxB+f,aAAc/f,KAAKggB,YAClB,gBAAE,MAAO,CACV3H,MAAO,gBACPrU,MAAOhE,KAAKigB,uBACZJ,IAAK,eACJvyB,GAAM0S,KAAK0a,OAAOwF,SAAWlgB,KAAK0a,OAAOwF,aAC3C,GAAE3a,GAAGlV,QAAU2P,KAAKzE,EAAEokB,SAAW,CAAC,gBAAE,MAAO,CAC1CtH,MAAO,gBACPwH,IAAK,cACL/J,YAAa,GAAYlnB,KAAKoR,OAC7B,gBAAE,MAAO,CACVqY,MAAO,oBACPwH,IAAK,wBAEN,GAAEta,GAAGlV,QAAU2P,KAAKzE,EAAEqkB,SAAW,CAAC,gBAAE,MAAO,CAC1CvH,MAAO,gBACPwH,IAAK,cACL/J,YAAa,GAAYlnB,KAAKoR,OAC7B,gBAAE,MAAO,CACVqY,MAAO,oBACPwH,IAAK,wBAEJvyB,GAAM0S,KAAK0a,OAAOwF,SAAWlgB,KAAK0a,OAAOwF,WAGhD9F,YAtIO,WAuIL,IAAI,GAAE7U,GAAGlV,QAAW2P,KAAKge,MAAMuB,aAAgBvf,KAAKyC,KAApD,CACA,IAEIlH,EAAGxB,EAFDomB,EAAOngB,KAAKge,MAAMa,gBAAgBhY,wBAClCuZ,EAAOpgB,KAAKge,MAAMuB,YAAY1Y,wBAEpC,GAAI7G,KAAKzE,EAAEokB,QAAS,CAClB,IAAItT,EAAO+T,EAAKha,MAAQ+Z,EAAK/Z,OAASga,EAAKha,MAAQ+Z,EAAK/Z,MACpDiG,GAAQA,GAAQ,IAAGA,GAAO,GAC1BA,IACF9Q,EAAI,CACF8Q,OACAgU,QAASF,EAAK/Z,MAAQga,EAAKha,QAIjC,GAAIpG,KAAKzE,EAAEqkB,QAAS,CAClB,IAAI,EAAOQ,EAAK/Z,OAAS8Z,EAAK9Z,QAAU+Z,EAAK/Z,OAAS8Z,EAAK9Z,OACvD,IACFtM,EAAI,CACFsS,KAAA,EACAgU,QAASF,EAAK9Z,OAAS+Z,EAAK/Z,SAIlC,MAAO,CAAC9K,IAAGxB,OAEbimB,WAhKO,WAiKL,IAAMxR,EAAQxO,KAAKoa,cACnB,GAAK5L,EAAL,CACA,IAAM8R,EAAOtgB,KAAKyC,KAAKoE,wBAChBtL,EAAQiT,EAARjT,EAAGxB,EAAKyU,EAALzU,EACV,GAAIwB,EAAG,CACL,IAAIglB,EAAOhlB,EAAE8kB,QAAUC,EAAKla,MAC5BpG,KAAKge,MAAMC,iBAAiBja,MAAMoC,MAAQpJ,KAAKC,IAAI,GAAIsjB,GAAQ,KAC/DvgB,KAAK+d,aAAexiB,EAAE8Q,KACtBrM,KAAK6d,gBAAkBtiB,EAAE8Q,MAAS9Q,EAAE8Q,OAAS,EAAI9Q,EAAE8kB,UAAYC,EAAKla,OAASma,EAAO,GAAK,GAAKA,EAAO,UAErGvgB,KAAK+d,aAAe/d,KAAK6d,iBAAkB,EAE7C,GAAI9jB,EAAG,CACL,IAAIymB,EAAOzmB,EAAEsmB,QAAUC,EAAKja,OAC5BrG,KAAKge,MAAMM,iBAAiBta,MAAMqC,OAASrJ,KAAKC,IAAI,GAAIujB,GAAQ,KAChExgB,KAAKqe,aAAetkB,EAAEsS,KACtBrM,KAAKme,gBAAkBpkB,EAAEsS,MAAStS,EAAEsS,OAAS,EAAItS,EAAEsmB,UAAYC,EAAKja,QAAUma,EAAO,GAAK,GAAKA,EAAO,UAEtGxgB,KAAKqe,aAAere,KAAKme,iBAAkB,IAG/CsC,eAtLO,WAuLDzgB,KAAKkf,gBACTlf,KAAKggB,aACLhgB,KAAKge,MAAMa,iBAAmB7e,KAAKge,MAAMa,gBAAgBhP,cAAc,IAAInF,MAAM,cAGrF2Q,SAAU,CACR4E,uBADQ,aAIRS,kBAJQ,WAKN,IAAIC,EAAK3gB,KAAKzE,EAAEokB,QACZiB,EAAK5gB,KAAKzE,EAAEqkB,QAChB,MAAO,CACL,WAAYe,GAAMC,EAClB,aAAcD,EACd,aAAcC,EACd,gBAAiB5gB,KAAKzE,EAAEslB,cAK9BrK,QA9Oa,WA8OH,WACJxW,KAAKzE,EAAEulB,YAAc9gB,KAAKyC,MAC5Bse,YAAW,WACT,IAAIte,EAAK,EAAKA,KAAKue,cAAc,EAAKzlB,EAAEulB,YACxCre,GAAM,EAAK+c,UAAU/c,EAAI,aAIzB,GAAE8C,GAAGlV,SAAY2P,KAAKzE,EAAEokB,UAAW3f,KAAKzE,EAAEqkB,UAC9C5f,KAAKge,MAAMa,iBAAmB,IAAI,QAAe7e,KAAKygB,gBAAgBQ,QAAQjhB,KAAKge,MAAMa,iBACzF7e,KAAKge,MAAMuB,aAAe,IAAI,QAAevf,KAAKygB,gBAAgBQ,QAAQjhB,KAAKge,MAAMuB,aACrFvf,KAAKyC,MAAQ,IAAIye,iBAAiBlhB,KAAKqf,yBAAyB4B,QAAQjhB,KAAKyC,KAAM,CAAC0e,YAAY,MAElGC,YA3Pa,WA4PXphB,KAAKkf,eAAgB,GAEvBmC,UA9Pa,WA+PXrhB,KAAKkf,eAAgB,EAEjBlf,KAAKzE,EAAEqkB,SAAW5f,KAAKge,MAAMM,kBAC/Bte,KAAKwf,UAAU,GAAE9iB,OAAOsD,KAAKge,MAAMM,iBAAiBta,MAAMka,WAAale,KAAKme,iBAE1Ene,KAAKzE,EAAEokB,SAAW3f,KAAKge,MAAMC,kBAC/Bje,KAAKyf,UAAU,GAAE/iB,OAAOsD,KAAKge,MAAMC,iBAAiBja,MAAMka,WAAale,KAAK6d,mBC/SrE,I,UAAA,ICFE,IACb7G,MAAO,CAAC,QAAS,SAAU,OAC3BqE,SAAU,CACRvR,IADQ,WAEN,MAAO,KAETwX,iBAJQ,WAKN,MAAO,CACLthB,KAAKzE,EAAEgmB,OAAS,MAAQvhB,KAAKzE,EAAEimB,SAAW,IAAMxhB,KAAK8J,KAAO,UAAY9J,KAAKzE,EAAEgmB,MAC/EvhB,KAAKzE,EAAEyhB,QAAU,MAAQhd,KAAKzE,EAAEimB,SAAW,IAAMxhB,KAAK8J,KAAO,WAAa9J,KAAKzE,EAAEyhB,WCT5E,MCEE,IACbpvB,KAAM,eACNqvB,OAAQ,CAACwE,GAAQC,IACjB1K,MAAO,CAAC,MACR2K,QAJa,WAKX,MAAO,CACLC,cAAe5hB,KAAK+R,SAASnkB,OAGjCoqB,QAAS,CACPC,UADO,WAEL,MAAO,CACL7nB,IAAK,IAGT4qB,WANO,WAOL,OAAOhb,KAAK0f,sBAGhBrE,SAAU,CACRvR,IADQ,WAEN,MAAO,KAETsR,WAJQ,WAKN,IAAIhrB,EAAM4P,KAAKzE,EAAEnL,IACjB,MAAO,CACLioB,MAAO,CAACrY,KAAK0gB,kBAAmB1gB,KAAKshB,iBAA9B,iBAAiD,OAAQthB,KAAKzE,EAAEgK,IAAhE,YAA0EvF,KAAK8J,IAA/E,QAAkG,MAAP1Z,GAAsB,IAAPA,IAAc,GAAEmV,GAAGpV,OAAOC,KAAOA,EAAM,KACxJ4T,OAAQhE,KAAKzE,EAAEokB,UAAY3f,KAAKzE,EAAEqkB,SAAW5f,KAAKigB,yBAGtDA,uBAXQ,WAYN,IAAI7vB,EAAM4P,KAAKzE,EAAEnL,IACjB,GAAW,MAAPA,GAAsB,IAAPA,EACjB,MAAO,CACL,IAAO,GAAEgc,SAAShc,GAAK,GACvB,iBAAmB,GAAEmV,GAAGpV,OAAOC,KAAOA,EAAM,EAAK,GAAEgc,SAAShc,GAAK,GAAQ,SCrCtE,MCCE,IACbxC,KAAM,aACNqvB,OAAQ,CAAC4E,IACTxG,SAAU,CACRvR,IADQ,WAEN,MAAO,OCNA,MCKE,IACblc,KAAM,QACN8tB,cAAe,UACfuB,OAAQ,CAACgC,IACTtB,OAAQ,CAAC,oBACT3G,MAAO,CAAC,MAAO,OAAQ,SAAU,WAAY,YAAa,UAAW,WAAY,YACjFtrB,KANa,WAOX,MAAO,CACLo2B,OAAO,IAGX9J,QAAS,CACPC,UADO,WAEL,MAAO,CACLuJ,UAAU,IAGdO,QANO,SAMChmB,GACFiE,KAAKgiB,UAASjmB,EAAEiM,OAAO0F,IAAM1N,KAAKgiB,UAExChH,WATO,WASM,WACPtN,EAAM1N,KAAKzE,EAAEmS,IACboN,EAAOpN,GAAOA,EAAIC,WAAW,OAASD,EAAI2H,SAAS,KACnD4M,EAAMvU,GAAOA,EAAIC,WAAW,KAC5ByS,EAAOpgB,KAAK0a,OAAOwF,UAAYlgB,KAAKzE,EAAEyG,KAAO,CAC/Cke,QAAS,kBAAM,EAAK3kB,EAAEyG,OACpB,MAEJ,OADA0L,EAAMA,GAAO1N,KAAKgiB,QACX,CACLtU,GAAO,gBAAE,MAAO,CACd2K,MAAO,aACN,CAACyC,EAAO,gBAAE,IAAK,CACdzC,MAAO,cAAgB3K,EAAI/c,QAAQ,MAAO,MAE5CsxB,EAAM,gBAAE,MAAO,CACb5J,MAAO,SAAW3K,EAAIve,MAAM,IAC3B,gBAAE,MAAO,CACV,aAAcue,KAEhB,gBAAE,MAAO,CACPmS,IAAK,MACLnS,IAAKA,EACL2K,MAAO,aACP0J,QAAS/hB,KAAK+hB,UAEhB/hB,KAAK0a,OAAO9F,OAAS,gBAAE,MAAO,CAC5ByD,MAAO,0BACNrY,KAAK0a,OAAO9F,WAEjBwL,GAAQ,gBAAE8B,GAAU,CAClB7J,MAAO,qBACN+H,MAIT/E,SAAU,CACR8G,UADQ,WAEN,OAAOniB,KAAKwb,WAAaxb,KAAKwb,UAAU4G,UAAUpiB,OAEpDob,WAJQ,WAIK,WACPhd,EAAI,GAAEgO,SAASpM,KAAKzE,EAAE8mB,SAAWriB,KAAKzE,EAAE8mB,SAAWriB,KAAKzE,EAAE6K,OAC1DpI,EAAI,GAAEoO,SAASpM,KAAKzE,EAAE+mB,UAAYtiB,KAAKzE,EAAE+mB,UAAYtiB,KAAKzE,EAAE8K,QAChE,MAAO,CACLgS,MAAO,iBACL,OAAQrY,KAAK8hB,MACX,OAAQ9hB,KAAKmiB,UACb,OAAQniB,KAAKzE,EAAEgnB,SACf,WAAYviB,KAAKzE,EAAEinB,OACnB,YAAaxiB,KAAKzE,EAAEknB,QACpB,aAAcziB,KAAKzE,EAAEimB,UANpB,YAOKxhB,KAAKzE,EAAEimB,SAAS,IAAI,IAPzB,QAOqC,GAAEjc,GAAGpV,OAAOC,KAEtD4T,MAAO,CACL,qBAAsB5F,EACtB,sBAAuBJ,GAEzB+hB,aAAc,SAAAhkB,GAAA,OAAM,EAAKR,EAAEgnB,WAAa,EAAKT,OAAQ,IACrDY,aAAc,SAAA3mB,GAAA,OAAM,EAAKR,EAAEgnB,WAAa,EAAKT,OAAQ,QChFhD,I,UAAA,ICOE,IACbl0B,KAAM,SACNqvB,OAAQ,CAAC0F,IACThB,QAHa,WAIX,MAAO,CACLpG,YAAavb,OAGjBgX,MAAO,CAAC,YACRtrB,KATa,WAUX,MAAO,CACL+jB,QAAQ,EACRmT,KAAM,KAGVC,aAfa,WAgBX7iB,KAAK8iB,cAAgB,IAEvB9K,QAAS,CACP+K,OADO,WAEL/iB,KAAKoc,WAEP4G,KAJO,SAIFzoB,GACH,IADM,EACAU,EAAI+E,KAAKyC,KAAKwgB,iBAAV,kBAAsC1oB,EAAtC,OADJ,iBAEQU,GAFR,IAEN,2BAAiB,KAARvN,EAAQ,QACf,IAAKA,EAAI,GAAEA,KAAOA,EAAEgiB,YAAc1P,KAAM,OAAOtS,GAH3C,gCAMRw1B,GAVO,SAUJ3oB,EAAGU,GACJ,IAAItN,EAAIqS,KAAKvD,EAAElC,GACf,GAAyB,IAArB+J,UAAUpY,OACZyB,IAAMA,EAAEw1B,aAAex1B,EAAEw1B,aAAaloB,GAAKtN,EAAEy1B,IAAInoB,QAC5C,IAAiB,WAAb,eAAOV,GAGhB,OAAO5M,IAAMA,EAAEw1B,aAAex1B,EAAEw1B,eAAiBx1B,EAAE01B,WAFnD,IAAK,IAAIr3B,KAAKuO,EAAGyF,KAAKkjB,GAAGl3B,EAAGuO,EAAEvO,MAKlCyQ,EApBO,SAoBLlC,EAAGU,GACH,OAAO+E,KAAKsjB,KAAK/oB,EAAGU,GAAG,IAGzBqoB,KAxBO,SAwBF/oB,EAAGU,GACN,GAAU,MAANV,GAAkB,MAALA,EAAW,CAC1B,IAAK,IAAwD5M,EAAGoO,EAAvD/P,EAAI,EAAGmf,EAAInL,KAAK0Y,YAAYzd,GAAG,GAAOzN,EAAI2d,EAAEjf,OAAcuQ,EAAI,GAAIzQ,EAAIwB,EAAGxB,KAC/E2B,EAAI,GAAEwd,EAAEnf,MAAQ2B,GAAKoO,GAAKU,EAAEjQ,KAAKuP,EAAIpO,GACxC,OAAO8O,EAET,IAAI8mB,EAAMtoB,EAAKA,EAAEyH,SAAWzH,EAAEwH,KAAOxH,EAAK+E,KAAKyC,KAC3CvU,EAAI,GAAEid,EAAE,gBAAkB5Q,EAAI,KAAMgpB,GAExC,OADKr1B,EAAEhC,SAAQgC,EAAI,GAAEid,EAAE,kBAAoB5Q,EAAI,KAAMgpB,IAC9C,GAAEvnB,OAAOiQ,IAAI/d,EAAEs1B,IAAI,2BAA2B,SAAA71B,GAAA,OAAK,GAAEA,OAG9D+qB,YApCO,SAoCKne,EAAGU,GACb,GAAIW,MAAMC,QAAQtB,GAAI,OAAOA,EAC7B,IAAIrM,EAAGuO,EAAI,sBAAwBxB,EAAI,GAAK,mBAC5C,GAAIV,GAAkB,kBAANA,EAAgB,CAC9B,IAAI5M,EAAoB,MAAhB4M,EAAE+C,OAAO,GACbvB,EAAIxB,EAAE5J,QAAQ,MAAO,IAAI0M,MAAM,KAAK4O,KAAI,SAAAlI,GAAA,wBAAgBA,EAAhB,cAAuBtH,OAC/DV,EAAIA,EAAEM,UACRnO,EAAI,GAAEid,EAAExd,EAAI,GAAJ,OAAO8O,EAAP,gBAAgBV,EAAhB,KAAuBA,EAAGiE,KAAKyC,YAEzCvU,EAAI,GAAEid,EAAE1O,EAAGlC,EAAKA,EAAEmI,SAAWnI,EAAEkI,KAAOlI,EAAKyF,KAAKyC,MAElD,OAAOvU,EAAI,GAAE8N,OAAOiQ,IAAI/d,EAAEs1B,IAAI,2BAA6B,IAG7D1K,YAlDO,SAkDKH,GACV,IAAIzqB,EAAI,GAiCR,OAhCA8R,KAAK0Y,YAAYC,GAAO5b,SAAQ,SAAAxC,GAC9B,IAAI5M,EAAI4M,EAAE3M,KACNmW,EAAIxJ,EAAElM,MACV,GAAKV,EAAL,CACA,OAAQ4M,EAAEkN,MACR,IAAK,OACH,IAAInZ,EAAIiM,EAAEiX,aAAa,eACb,WAANljB,IACFyV,EAAIA,EAAEpT,QAAQ,YAAa,KAC7B,MACF,IAAK,WACH,IAAK4J,EAAElM,QAAWkM,EAAEuX,WAAavX,EAAEkpB,gBAAiBlpB,EAAEiX,aAAa,oBACjE,OAAO,KACT,MACF,IAAK,QACH,IAAKjX,EAAElM,QAAUkM,EAAEuX,QACjB,OAAO,KACTnkB,EAAI4M,EAAEiX,aAAa,WAAa7jB,EAChC,MACF,IAAK,aACH,GAAI4M,EAAEmpB,cAAgB,EACpB,OAAO,KACT,MAEJ3f,IAAMA,EAAI,GAAElJ,QAAQkJ,IAChBpW,KAAKO,GACF0N,MAAMC,QAAQ3N,EAAEP,MACnBO,EAAEP,GAAK,CAACO,EAAEP,KACZO,EAAEP,GAAGnB,KAAKuX,IAEV7V,EAAEP,GAAKoW,MAEJ7V,GAGTy1B,cAvFO,SAuFOhL,GAEZ,IADA,IAAI5c,EAC0BrO,EAAGqW,EAD1BoH,EAAInL,KAAK0Y,YAAYC,GADT,WAEV3sB,EAAOwB,EAFG,MAGZ,EAAI,GAAE2d,EAAEnf,MAAQ,EAAE0lB,eAAiB,EAAI,EAAEiS,mBACvC5nB,IAAGA,EAAI,IACPA,EAAEinB,MAAK,SAAAn0B,GAAA,OAAKA,EAAE+0B,KAAO,EAAEA,QAAM7nB,EAAEvP,KAAK,IAL1B,SAEVR,EAAI,EAAGwB,EAAI2d,EAAEjf,OAAcF,EAAIwB,EAAGxB,IAAK,EAAvCA,EAAOwB,EAAcE,EAAGqW,GAMjC,OAAOhI,GAGT6c,MAlGO,SAkGDD,GACA3Y,KAAK6jB,SACP7jB,KAAK6jB,QAAQ9mB,SAAQ,SAAAgH,GACnB,IAAIlV,EAAI,GAAE4b,OAAOxc,IAAI8V,EAAE6f,KACtB/0B,GAAKA,EAAEi1B,MAAK,MAGjB,IAAI/nB,EAAIiE,KAAK2jB,cAAchL,GAK3B,OAJI5c,IACFA,EAAEgB,SAAQ,SAAAgH,GAAA,OAAK,GAAE0G,OAAOxc,IAAI8V,EAAE6f,KAAKE,UACnC,GAAErZ,OAAOxc,IAAI8N,EAAE,GAAG6nB,KAAKG,aAAahoB,EAAE,GAAGiG,SAElChC,KAAK6jB,QAAU9nB,IAG1BioB,WAjHO,SAiHIrL,EAAOsL,GAChB,OAAOjkB,KAAK0Y,YAAYC,GAAOqK,MAAK,SAAAl1B,GAAA,OAAMA,EAAI,GAAEA,IAAIk2B,YAAcl2B,EAAEk2B,WAAWC,OAGjFC,aArHO,SAqHMvL,EAAOsL,GAClBjkB,KAAK0Y,YAAYC,GAAO5b,SAAQ,SAAAjP,GAAA,OAAMA,EAAI,GAAEA,IAAIo2B,cAAgBp2B,EAAEo2B,aAAaD,OAEjFE,UAxHO,SAwHGxL,EAAOyL,GACfpkB,KAAK0Y,YAAYC,GAAO5b,SAAQ,SAAAN,GAC9B,IAAI/O,EAAI,GAAE+O,GACV/O,EAAE22B,OAAS32B,EAAE22B,MAAMD,OAGvB/H,YA9HO,SA8HK9hB,GACdA,EAAS,MAALA,GAAkBA,EAClBA,EACHyF,KAAKsT,IAAI,YAAa,CACpB7L,KAAM,UACNmN,OAAO,EACP0P,OAAO,IAGTtkB,KAAKsT,IAAI,aAAa,IAGrB2F,UA1IO,SA0IGF,EAAU/B,EAAOwD,GAAW,WACpC,OAAO,IAAIzH,SAAQ,SAACsB,EAASrB,GAC3B,IAAIpK,EAAM,GAAEA,MACPoO,EAAMC,YAAWD,EAAMC,UAAYrO,GACxC,EAAKga,KAAKp2B,KAAK,CACbusB,WACA/B,QACAwD,YACAnG,UACArB,eAINmG,UAvJO,SAuJGnqB,GACZ,IAAIhD,EAAiB,kBAANgD,EAAiBgR,KAAK4iB,KAAK2B,WAAU,SAAAxgB,GAAA,OAAKA,EAAEiT,MAAMC,WAAajoB,KAAKgR,KAAK4iB,KAAK9yB,QAAQd,GACrGhD,GAAK,GAAKgU,KAAK4iB,KAAKx1B,OAAOpB,EAAG,IAE/BktB,QA3JU,YA2Je,IAAhBH,EAAgB,EAAhBA,SAAUnQ,EAAM,EAANA,IAClB,OAAO5I,KAAK4iB,KAAK/Z,QAAO,SAAA7Z,GACvB,QAAI+pB,GAAYA,GAAY/pB,EAAE+pB,aAC1BnQ,GAAO5Z,EAAEgoB,MAAMC,WAAarO,OAI/B4b,UAlKO,WAmKL,MAAO,CAACxkB,KAAK4iB,KAAK3W,KAAI,SAAAjd,GAAA,OAAK,gBAAEy1B,GAAK,CAAC91B,IAAKK,EAAEgoB,MAAMC,UAAWjoB,aC5LpD,I,UAAA,I,ICJRgV,MAAA,sCAAsCoC,MAAM,IAAIC,OAAO,IAAIqe,UAAU,QAAQC,cAAY,Q,GAC5F,gBAKS,UALDpc,GAAG,gBAAgBqc,QAAQ,a,CACjC,gBAGO,QAFLj3B,EAAE,8KACFuwB,UAAU,4B,MAGd,gBAES,UAFD3V,GAAG,kBAAkBqc,QAAQ,e,CACnC,gBAAiC,UAAzBxO,GAAG,KAAKC,GAAG,KAAKnoB,EAAE,S,MAE5B,gBAyBS,UAzBDqa,GAAG,kBAAkBqc,QAAQ,a,CACnC,gBAOO,QAPDrpB,EAAE,IAAIxB,EAAE,UAAUqM,MAAM,IAAIC,OAAO,UAAUwe,QAAQ,O,CACzD,gBACqC,WAD5BC,cAAc,UAAUC,OAAO,aAAaC,MAAM,KAAKC,IAAI,OAClEC,YAAY,eACd,gBACqC,WAD5BJ,cAAc,SAASC,OAAO,aAAaC,MAAM,KAAKC,IAAI,OACjEC,YAAY,eACd,gBACqC,WAD5BJ,cAAc,IAAIC,OAAO,YAAYC,MAAM,KAAKC,IAAI,OAC3DC,YAAY,iBAEhB,gBAOO,QAPD3pB,EAAE,IAAIxB,EAAE,UAAUqM,MAAM,IAAIC,OAAO,UAAUwe,QAAQ,O,CACzD,gBACqC,WAD5BC,cAAc,UAAUC,OAAO,aAAaC,MAAM,QAAQC,IAAI,OACrEC,YAAY,eACd,gBACqC,WAD5BJ,cAAc,SAASC,OAAO,aAAaC,MAAM,QAAQC,IAAI,OACpEC,YAAY,eACd,gBACqC,WAD5BJ,cAAc,IAAIC,OAAO,YAAYC,MAAM,QAAQC,IAAI,OAC9DC,YAAY,iBAEhB,gBAOO,QAPD3pB,EAAE,KAAKxB,EAAE,UAAUqM,MAAM,IAAIC,OAAO,UAAUwe,QAAQ,O,CAC1D,gBACqC,WAD5BC,cAAc,UAAUC,OAAO,aAAaC,MAAM,OAAOC,IAAI,OACpEC,YAAY,eACd,gBACqC,WAD5BJ,cAAc,SAASC,OAAO,aAAaC,MAAM,OAAOC,IAAI,OACnEC,YAAY,eACd,gBACqC,WAD5BJ,cAAc,IAAIC,OAAO,YAAYC,MAAM,OAAOC,IAAI,OAC7DC,YAAY,mB,MAGlB,gBAIS,UAJD3c,GAAG,kBAAkBqc,QAAQ,iB,CACnC,gBAEqB,QADnBj3B,EAAE,4zBACFw3B,OAAK,W,qDAvCX,gBAyCM,MAzCN,GAyCM,CAxCJ,GAMA,GAGA,GA0BA,KASa,QACbv3B,KAAM,iB,UC1CV,GAAOquB,OAAS,GAED,U,ICFA5D,MAAM,uB,IAKVA,MAAM,W,GAET,gBAAuB,QAAjBA,MAAM,MAAG,KAAC,G,kLAXtB,gBAmBW,GAnBDA,MAAM,mBAAmBjS,MAAM,qBAAqBC,OAAO,qBAAsB8R,aAAa,EAAOvD,OAAO,EAAOwQ,UAAU,G,0BACrI,iBAaW,CAbc,SAAT,EAAA15B,KAAK+b,M,kBAArB,gBAaW,iBAZT,gBAMW,GANDoY,IAAI,SAASxH,MAAM,WAAYgN,QAAS,EAAAA,QAAUC,MAAO,EAAA55B,KAAKskB,KAAK9jB,OAAM,EAAOq5B,iBAAgB,EAAA75B,KAAKskB,KAAK9jB,OAAM,EAAMs5B,SAAS,O,0BACxH,iBAAiC,E,oBAAhD,gBAIgB,6BAJsB,EAAA95B,KAAKskB,MAAI,SAAxByV,EAAKnW,G,yBAA5B,gBAIgB,GAJkC3gB,IAAK2gB,GAAK,C,yBAC1D,iBAEM,CAFN,gBAEM,MAFN,GAEM,CADJ,gBAAgC,OAA3B+I,MAAM,OAAQ3K,IAAK+X,G,2FAI9B,gBAIM,MAJN,GAIM,CAHJ,gBAAoD,KAAjDpN,MAAM,KAAI,QAAK,+BAAE,EAAAqN,KAAG,M,gBAAQ,EAAAra,IAAIvY,aAAW,GAC9C,GACA,gBAAoD,KAAjDulB,MAAM,KAAI,QAAK,+BAAE,EAAAqN,IAAG,M,gBAAO,EAAAra,IAAItY,cAAY,M,wBAIhD,gBAAoD,G,MAA3CslB,MAAM,WAAY3K,IAAK,EAAAhiB,KAAKgiB,K,iBAEvC,gBAAyC,OAApC2K,MAAM,SAAU,QAAK,8BAAE,EAAAzlB,OAAA,EAAAA,MAAA,2B,MAOf,QACbokB,MAAO,CAAC,QACRtrB,KAFa,WAGX,MAAO,CACLi6B,OAAQ,EACRN,QAAS,GAAErpB,OAAO/N,IAAI+R,KAAKtU,KAAM,kBAAmB,KAGxDssB,QAAS,CACPplB,MADO,WAEL,GAAEA,MAAMoN,OAEV0lB,IAJO,SAIHnrB,GACF,IAAIrM,EAAI8R,KAAK2lB,OACT1qB,EAAI,GAAE+K,IAAIhG,KAAKge,MAAM4H,OAAOnjB,MAC5BrE,EAAInD,EAAEmL,MAAQ,GACdpI,EAAI/C,EAAEoL,OAAS,GACf9L,EAAI,EACNrM,GAAK,GACIqM,EAAI,IACbrM,GAAK,IAEP,IAAII,EAAKJ,EAAI,GAAM,EACnB,GAAEid,EAAE,4BAA6BnL,KAAKge,MAAM4H,OAAOnjB,MAAM4B,IAAI,CAC3D6Z,UAAW,UAAYhwB,EAAI,OAC3B23B,SAAUv3B,EAAI0P,EAAII,EAClB0nB,UAAWx3B,EAAI8P,EAAIJ,IAErBgC,KAAK2lB,OAASz3B,IAGlBmtB,SAAU,CACRhQ,IADQ,WAEN,OAAO,GAAEA,MAGbmL,QApCa,cCvBjB,GAAOyF,OAAS,GAED,U,mBCGyD,K,mBAOA,K,mBAOA,K,mBAOA,K,mBAMA,K,mBAOA,K,mBAOA,K,sVAhDtE,gBAsDW,GAtDD5D,MAAM,eAAa,C,yBAC3B,iBAGc,CAHd,gBAGc,GAHDA,MAAM,kBAAkBkJ,MAAM,UAAUlb,OAAO,KAAKrC,MAAA,oB,0BAC/D,iBAAoD,CAApD,gBAAoD,GAA1ChC,KAAK,KAAM,QAAO,EAAA+jB,a,oBAC5B,gBAA4D,GAA5C/jB,KAAK,KAAM,QAAO,EAAAgkB,S,8BAEpC,gBAgDe,GAhDD3f,OAAO,KAAG,C,yBACtB,iBAMa,CANe,EAAA4f,S,kBAA5B,gBAMa,G,MAND7f,MAAM,K,0BAChB,iBAA0E,CAA1E,gBAA0E,GAAlEiS,MAAM,mBAAmBkJ,MAAM,SAASvE,OAAO,U,0BAAS,iBAAC,C,aACjE,gBAGgB,GAHD3W,OAAO,I,WAAa,EAAA6f,U,qDAAA,EAAAA,UAAS,IAAGC,YAAW,EAAAC,QAAUC,YAAW,EAAAC,QAAUC,cAAY,EAClG76B,KAAM,e,0BACG,iBAAqB,E,oBAA/B,gBAAyE,6BAAnD,EAAA86B,UAAQ,SAAbzsB,G,yBAAjB,gBAAyE,GAAxCpL,IAAKoL,EAAI1L,MAAO0L,EAAIiI,KAAMjI,G,uHAGnC,EAAA0sB,U,kBAA5B,gBAMa,G,MANDrgB,MAAM,K,0BAChB,iBAA0E,CAA1E,gBAA0E,GAAlEiS,MAAM,mBAAmBkJ,MAAM,SAASvE,OAAO,U,0BAAS,iBAAC,C,aACjE,gBAGgB,GAHD3W,OAAO,I,WAAa,EAAAqgB,W,qDAAA,EAAAA,WAAU,IAAGP,YAAW,EAAAQ,SAAWN,YAAW,EAAAO,SAAWL,cAAY,EACrG76B,KAAM,gB,0BACG,iBAAsB,E,oBAAhC,gBAA0F,6BAApE,EAAAm7B,WAAS,SAAdp5B,G,yBAAjB,gBAA0F,GAAxDkB,IAAKlB,EAAIY,MAAOZ,EAAIuU,KAAM,EAAAsZ,MAAM5f,OAAOjO,EAAC,I,uHAGlD,EAAAq5B,S,kBAA5B,gBAMa,G,MAND1gB,MAAM,K,0BAChB,iBAA0E,CAA1E,gBAA0E,GAAlEiS,MAAM,mBAAmBkJ,MAAM,SAASvE,OAAO,U,0BAAS,iBAAC,C,aACjE,gBAGgB,GAHD3W,OAAO,I,WAAa,EAAA0gB,U,qDAAA,EAAAA,UAAS,IAAGZ,YAAW,EAAAa,QAAUX,YAAW,EAAAY,QAAUV,cAAY,EAClG76B,KAAM,e,0BACG,iBAAqB,E,oBAA/B,gBAAuF,6BAAjE,EAAAw7B,UAAQ,SAAbv5B,G,yBAAjB,gBAAuF,GAAtDgB,IAAKhB,EAAIU,MAAOV,EAAIqU,KAAM,EAAAsZ,MAAM5f,OAAO/N,I,uHAGhD,EAAAw5B,S,kBAA5B,gBAKa,G,MALD/gB,MAAM,K,0BAChB,iBAA0E,CAA1E,gBAA0E,GAAlEiS,MAAM,mBAAmBkJ,MAAM,SAASvE,OAAO,U,0BAAS,iBAAC,C,aACjE,gBAEgB,GAFD3W,OAAO,I,WAAa,EAAA+gB,U,qDAAA,EAAAA,UAAS,IAAGjB,YAAW,EAAAkB,QAAUhB,YAAW,EAAAiB,QAAUf,cAAY,G,0BACzF,iBAAqB,E,oBAA/B,gBAAuF,6BAAjE,EAAAgB,UAAQ,SAAbvpB,G,yBAAjB,gBAAuF,GAAtDrP,IAAKqP,EAAI3P,MAAO2P,EAAIgE,KAAM,EAAAsZ,MAAM5f,OAAOsC,I,uHAGhD,EAAAwpB,W,kBAA5B,gBAMa,G,MANDphB,MAAM,K,0BAChB,iBAA0E,CAA1E,gBAA0E,GAAlEiS,MAAM,mBAAmBkJ,MAAM,SAASvE,OAAO,U,0BAAS,iBAAC,C,aACjE,gBAGgB,GAHD3W,OAAO,I,WAAa,EAAAohB,Y,qDAAA,EAAAA,YAAW,IAAGtB,YAAW,EAAAuB,UAAYrB,YAAW,EAAAsB,UAChFpB,cAAY,G,0BACH,iBAAuB,E,oBAAjC,gBAAyF,6BAAnE,EAAAqB,YAAU,SAAf57B,G,yBAAjB,gBAAyF,GAAtD2C,IAAK3C,EAAIqC,MAAOrC,EAAIgW,KAAM,EAAAsZ,MAAM5f,OAAO1P,I,uHAGlD,EAAA67B,W,kBAA5B,gBAMa,G,MANDzhB,MAAM,K,0BAChB,iBAA0E,CAA1E,gBAA0E,GAAlEiS,MAAM,mBAAmBkJ,MAAM,SAASvE,OAAO,U,0BAAS,iBAAC,C,aACjE,gBAGgB,GAHD3W,OAAO,I,WAAa,EAAAyhB,Y,qDAAA,EAAAA,YAAW,IAAG3B,YAAW,EAAA4B,UAAY1B,YAAW,EAAA2B,UAChFzB,cAAY,G,0BACH,iBAAuB,E,oBAAjC,gBAAyF,6BAAnE,EAAA0B,YAAU,SAAf36B,G,yBAAjB,gBAAyF,GAAtDqB,IAAKrB,EAAIe,MAAOf,EAAI0U,KAAM,EAAAsZ,MAAM5f,OAAOpO,I,uHAGlD,EAAA46B,S,kBAA5B,gBAKa,G,MALD9hB,MAAM,K,0BAChB,iBAA0E,CAA1E,gBAA0E,GAAlEiS,MAAM,mBAAmBkJ,MAAM,SAASvE,OAAO,U,0BAAS,iBAAC,C,aACjE,gBAEgB,GAFD3W,OAAO,I,WAAa,EAAA8hB,U,qDAAA,EAAAA,UAAS,IAAGhC,YAAW,EAAAiC,QAAU/B,YAAW,EAAAgC,QAAU9B,cAAY,G,0BACzF,iBAAqB,E,oBAA/B,gBAA0F,6BAApE,EAAA+B,UAAQ,SAAblqB,G,yBAAjB,gBAA0F,GAAzDzP,IAAKyP,EAAE/P,MAAQA,MAAO+P,EAAE/P,MAAQ2T,KAAM5D,EAAE4D,M,yJAUlE,IACbgV,MAAO,CAAC,QACRtrB,KAFa,WAGX,IAAI+Q,EAAIuD,KAAKtU,KAAK68B,QAAU,aACxB56B,EAAIqS,KAAKtU,MAAQsU,KAAKtU,KAAK2C,MAAQ,GAAEuP,UAAUoC,KAAKtU,KAAK2C,MAAOoO,GAAK,IAAI6B,KACzEkqB,EAAKxoB,KAAKtU,MAAQsU,KAAKtU,KAAKmL,UAAY,GAAE+G,UAAUoC,KAAKtU,KAAKmL,SAAU4F,GACxEgsB,EAAKzoB,KAAKtU,MAAQsU,KAAKtU,KAAKkL,UAAY,GAAEgH,UAAUoC,KAAKtU,KAAKkL,SAAU6F,GAC5E9O,EAAI,GAAEkP,SAASlP,EAAG66B,EAAIC,GACtB,IACIN,EAAWO,EAAWC,EADtBzC,EAAYv4B,EAAEkQ,cAOlB,OALIpB,EAAE4Y,SAAS,OACb8S,EAAY,GAAE9pB,SAAS1Q,GAAG,GAC1B+6B,EAAY,GAAErpB,cAAc6mB,GAC5ByC,EAAW,GAAErpB,aAAa4mB,IAErB,CACLA,YACAQ,WAAY/4B,EAAEmQ,WACdipB,UAAWp5B,EAAEoQ,UACbqpB,UAAWz5B,EAAEsQ,WACbwpB,YAAa95B,EAAEuQ,aACf4pB,YAAan6B,EAAEwQ,aACfyqB,UAAW,GAAE/rB,SAASlP,EAAEkQ,cAAgB,GAAI2qB,GAAMA,EAAG3qB,eACrDgrB,QAAS,GAAEhsB,SAASlP,EAAEkQ,cAAgB,GAAI,KAAM4qB,GAAMA,EAAG5qB,eACzDirB,UAAW,IAAIxqB,KAAK3Q,EAAEkQ,cAAelQ,EAAEmQ,WAAa,EAAG,GAAGC,UAC1DoqB,YACAO,YACAC,WACAI,QAASP,EACTQ,QAASP,EACTF,OAAQ9rB,IAGZ0iB,MAAO,CACL+G,UADK,SACKnsB,GACJA,GAAKiG,KAAKwmB,SAAS,IAAMzsB,EAAI,KAC/BiG,KAAK4oB,UAAY,GAAE/rB,SAASmD,KAAK4oB,UAAY,GAAI5oB,KAAKomB,SAC7CrsB,GAAKiG,KAAKwmB,SAASxmB,KAAKwmB,SAASt6B,OAAS,KACnD8T,KAAK6oB,QAAU,GAAEhsB,SAASmD,KAAK6oB,QAAU,GAAI,KAAM7oB,KAAKsmB,UAE1DtmB,KAAK8oB,UAAY,IAAIxqB,KAAKvE,EAAGiG,KAAK0mB,WAAa,EAAG,GAAG3oB,UACjDiC,KAAKkoB,UACPloB,KAAK0oB,UAAY,GAAErpB,cAActF,GACjCiG,KAAK2oB,SAAW,GAAErpB,aAAavF,KAGnC2sB,WAbK,SAaMj5B,GACTuS,KAAK8oB,UAAY,IAAIxqB,KAAK0B,KAAKkmB,UAAWz4B,EAAI,EAAG,GAAGsQ,YAGxDia,QAAS,CACPiR,SADO,SACE7qB,KAGT2nB,YAJO,WAKL,GAAEnzB,MAAMoN,OAEVgmB,QAPO,WAQL,GAAIhmB,KAAKtU,KAAKgoB,QAAS,CACrB,IAAI/lB,EAAIqS,KAAKkoB,QAAU,GAAEtqB,UAAF,UAAeoC,KAAKkmB,UAApB,YAAiClmB,KAAKmoB,WAAa,WACxE,IAAI7pB,KAAK0B,KAAKkmB,UAAWlmB,KAAK0mB,WAAY1mB,KAAK+mB,UAAW/mB,KAAKonB,UAAWpnB,KAAKynB,YAAaznB,KAAK8nB,aACnG9nB,KAAKtU,KAAKgoB,QAAQ,GAAE/V,WAAWhQ,EAAGqS,KAAKuoB,SAEzC,GAAE31B,MAAMoN,QAGZqb,SAAU,CACRC,MADQ,WAEN,OAAO,IAETkL,SAJQ,WAIG,WACT,OAAO5qB,MAAMstB,KAAKttB,MAAMoE,KAAK6oB,QAAU7oB,KAAK4oB,UAAY,IAAI3c,KAAI,SAAClI,EAAG/X,GAAJ,OAAU,EAAK48B,UAAY58B,MAE7F66B,UAPQ,WAQN,OAAOjrB,MAAMstB,KAAKttB,MAAM,KAAKqQ,KAAI,SAAClI,EAAG/X,GAAJ,OAAUA,MAE7Ck7B,SAVQ,WAWN,OAAOtrB,MAAMstB,KAAKttB,MAAMoE,KAAK8oB,YAAY7c,KAAI,SAAClI,EAAG/X,GAAJ,OAAUA,EAAI,MAE7Du7B,SAbQ,WAcN,OAAO3rB,MAAMstB,KAAKttB,MAAM,KAAKqQ,KAAI,SAAClI,EAAG/X,GAAJ,OAAUA,MAE7C47B,WAhBQ,WAiBN,OAAOhsB,MAAMstB,KAAKttB,MAAM,KAAKqQ,KAAI,SAAClI,EAAG/X,GAAJ,OAAUA,MAE7Ci8B,WAnBQ,WAoBN,OAAOrsB,MAAMstB,KAAKttB,MAAM,KAAKqQ,KAAI,SAAClI,EAAG/X,GAAJ,OAAUA,MAE7Cs8B,SAtBQ,WAuBN,IAAI36B,EAAIqS,KAAK0oB,UAAU,GACvB,OAAO9sB,MAAMstB,KAAKttB,MAAMoE,KAAK2oB,SAAS,KAAK1c,KAAI,SAAClI,EAAG/X,GACjD,IAAIm9B,EAAYx7B,EACZy7B,EAAU,GAAE3qB,QAAQ9Q,EAAG,IAAK,GAEhC,OADAA,EAAI,GAAE8Q,QAAQ9Q,EAAG,IAAK,GACf,CACLU,MAAOrC,EAAI,EACXgW,KAAM,GAAF,OAAK,GAAEtG,OAAO1P,EAAI,GAAlB,aAAyB,GAAE2R,WAAWwrB,EAAW,SAAjD,cAA+D,GAAExrB,WAAWyrB,EAAS,SAArF,UAIVnD,QAlCQ,WAmCN,OAAOjmB,KAAKuoB,OAAOlT,SAAS,MAE9BoR,SArCQ,WAsCN,OAAOzmB,KAAKuoB,OAAOlT,SAAS,MAE9ByR,QAxCQ,WAyCN,OAAO9mB,KAAKuoB,OAAOlT,SAAS,MAE9B8R,QA3CQ,WA4CN,OAAOnnB,KAAKuoB,OAAOlT,SAAS,MAE9BmS,UA9CQ,WA+CN,OAAOxnB,KAAKuoB,OAAOlT,SAAS,MAE9BwS,UAjDQ,WAkDN,OAAO7nB,KAAKuoB,OAAOlT,SAAS,MAE9B6S,QApDQ,WAqDN,OAAOloB,KAAKuoB,OAAOlT,SAAS,MAE9B+Q,QAvDQ,WAwDN,OAAOpmB,KAAK+oB,SAAW/oB,KAAKimB,SAAWjmB,KAAK+oB,QAAQlrB,eAEtDyoB,QA1DQ,WA2DN,OAAOtmB,KAAKgpB,SAAWhpB,KAAKimB,SAAWjmB,KAAKgpB,QAAQnrB,eAEtD8oB,SA7DQ,WA8DN,OAAO3mB,KAAK+oB,WAAa/oB,KAAKimB,SAAWjmB,KAAKomB,SAAWpmB,KAAKkmB,YAAclmB,KAAK+oB,QAAQjrB,YAE3F8oB,SAhEQ,WAiEN,OAAO5mB,KAAKgpB,WAAahpB,KAAKimB,SAAWjmB,KAAKsmB,SAAWtmB,KAAKkmB,YAAclmB,KAAKgpB,QAAQlrB,YAE3FkpB,QAnEQ,WAoEN,OAAOhnB,KAAK+oB,WAAa/oB,KAAKimB,SAAWjmB,KAAKomB,SAAWpmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK2mB,UAClG3mB,KAAK0mB,aAAe1mB,KAAK+oB,QAAQhrB,WAErCkpB,QAvEQ,WAwEN,OAAOjnB,KAAKgpB,WAAahpB,KAAKimB,SAAWjmB,KAAKsmB,SAAWtmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK4mB,UAClG5mB,KAAK0mB,aAAe1mB,KAAKgpB,QAAQjrB,WAErCspB,QA3EQ,WA4EN,OAAOrnB,KAAK+oB,WAAa/oB,KAAKimB,SAAWjmB,KAAKomB,SAAWpmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK2mB,UAChG3mB,KAAK0mB,eACL1mB,KAAK8mB,SAAW9mB,KAAKgnB,SAAWhnB,KAAK+mB,YAAc/mB,KAAK+oB,QAAQ9qB,YAEtEqpB,QAhFQ,WAiFN,OAAOtnB,KAAKgpB,WAAahpB,KAAKimB,SAAWjmB,KAAKsmB,SAAWtmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK4mB,UAChG5mB,KAAK0mB,eACL1mB,KAAK8mB,SAAW9mB,KAAKinB,SAAWjnB,KAAK+mB,YAAc/mB,KAAKgpB,QAAQ/qB,YAEtEypB,UArFQ,WAsFN,OAAO1nB,KAAK+oB,WAAa/oB,KAAKimB,SAAWjmB,KAAKomB,SAAWpmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK2mB,UAChG3mB,KAAK0mB,eACL1mB,KAAK8mB,SAAW9mB,KAAKgnB,SAAWhnB,KAAK+mB,cAAgB/mB,KAAKmnB,SAAWnnB,KAAKqnB,SAAWrnB,KAAKonB,YAAcpnB,KACzG+oB,QAAQ7qB,cAEbypB,UA3FQ,WA4FN,OAAO3nB,KAAKgpB,WAAahpB,KAAKimB,SAAWjmB,KAAKsmB,SAAWtmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK4mB,UAChG5mB,KAAK0mB,eACL1mB,KAAK8mB,SAAW9mB,KAAKinB,SAAWjnB,KAAK+mB,cAAgB/mB,KAAKmnB,SAAWnnB,KAAKsnB,SAAWtnB,KAAKonB,YAAcpnB,KACzGgpB,QAAQ9qB,cAEb6pB,UAjGQ,WAkGN,OAAO/nB,KAAK+oB,WAAa/oB,KAAKimB,SAAWjmB,KAAKomB,SAAWpmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK2mB,UAChG3mB,KAAK0mB,eACL1mB,KAAK8mB,SAAW9mB,KAAKgnB,SAAWhnB,KAAK+mB,cAAgB/mB,KAAKmnB,SAAWnnB,KAAKqnB,SAAWrnB,KAAKonB,cAC1FpnB,KAAKwnB,WAAaxnB,KAAK0nB,WAAa1nB,KAAKynB,cAAgBznB,KAAK+oB,QAAQ5qB,cAE5E6pB,UAvGQ,WAwGN,OAAOhoB,KAAKgpB,WAAahpB,KAAKimB,SAAWjmB,KAAKsmB,SAAWtmB,KAAKkmB,cAAgBlmB,KAAKymB,UAAYzmB,KAAK4mB,UAChG5mB,KAAK0mB,eACL1mB,KAAK8mB,SAAW9mB,KAAKinB,SAAWjnB,KAAK+mB,cAAgB/mB,KAAKmnB,SAAWnnB,KAAKsnB,SAAWtnB,KAAKonB,cAC1FpnB,KAAKwnB,WAAaxnB,KAAK2nB,WAAa3nB,KAAKynB,cAAgBznB,KAAKgpB,QAAQ7qB,cAE5EiqB,QA7GQ,aAgHRC,QAhHQ,e,UC1Hd,GAAOpM,OAAS,GAED,UCGE,IACbruB,KAAM,YACNqvB,OAAQ,CAACS,GAAW2L,IACpB1H,QAHa,WAIX,MAAO,CACLlG,iBAAkB,KAClB6N,iBAAkB,KAClBC,mBAAoB,OAGxB1G,aAVa,WAWX,GAAEjjB,QAAUI,KACZ,GAAEmL,EAAElb,SAAS2R,MAAMwB,QAAQ,gCAE7B4U,QAAS,CACPvV,GADO,WAEL,OAAOxS,SAAS8pB,eAAe,QAEjCJ,OAJO,WAKL,OAAO,MAET7J,aAPO,SAOMpC,GACX1N,KAAKsT,IAAIkW,GAAsB,CAAC99B,KAAM,CAAC+b,KAAM,QAASiG,UAExDqC,aAVO,SAUMC,EAAMC,GACjBjQ,KAAKsT,IAAIkW,GAAsB,CAAC99B,KAAM,CAAC+b,KAAM,QAASuI,OAAMC,cAG9DtQ,UAdO,SAcG8pB,EAAaC,GACrB1pB,KAAKsT,IAAIqW,GAAmB,CAC1B5Q,SAAU4Q,GACVvjB,MAAO,OACPC,OAAQ,MACRoO,SAAU,IACVG,OAAO,EACPwQ,UAAU,EACV15B,KAAM+9B,EACNG,GAAI,CACF,cAAe,GAAEh3B,UAIvB+P,KA5BO,WA6BL,MAAO,CACL3C,KAAK0a,OAAOwF,SAAWlgB,KAAK0a,OAAOwF,UACnClgB,KAAKwkB,YACL,gBAAEqF,OAIRrT,QAlDa,WAmDP,GAAEjb,EAAE1F,QC1DC,MCME,IACbjI,KAAM,SACNqvB,OAAQ,CAACiF,GAAUmH,IACnB1L,OAAQ,CAAC,eACT3F,QAAS,CACPrV,KADO,WAEL,MAAO,CAAC3C,KAAKib,WAAU,GAAOjb,KAAKwkB,eAGvCnJ,SAAU,CACRO,WADQ,WAEN,MAAO,CAAC,mBAAoB5b,KAAK0gB,sBCjB1B,MCQPoJ,GAAI,GACR,IAAI,EACJ,IAAI,EACJ,GAAI,KAIAC,GAAmB,CACvBz7B,EAAG,KACHJ,EAAG,KACH+M,EAAG,KACHzN,EAAG,KACHE,EAAG,KACHyX,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJE,GAAI,KACJD,GAAI,KACJG,GAAI,KACJD,GAAI,KACJ,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,MAGHukB,GAAc,SAASzvB,GAC3B,IAAIU,EAAIV,IAAMA,EAAEka,UAAYla,GAC5B,MAAoB,kBAANU,GAAkBA,EAAEoC,MAAM,KAAK4O,KAAI,SAAAlI,GAAA,OAAKgmB,GAAiBhmB,IAAMA,KAAG1H,QAGnE,IACbzO,KAAM,WACNqvB,OAAQ,CAACgN,IACTjT,MAAO,CAAC,QAAS,OAAQ,WAAY,UAAW,QAAS,cAAe,UACtE,QAAS,WAAY,QAAS,aAAc,YAAa,eAAgB,aAE3EkT,MAAO,CAAC,QAAS,eACjB/K,MAAO,CACL1K,SADK,SACI1Q,GACP/D,KAAKmqB,SAGTz+B,KAZa,WAaX,MAAO,CACLmpB,UAAU,EACVuV,aAAc,GACdC,UAAW,GACXC,WAAW,EACXC,WAAY,KACZC,UAAW,KACXC,QAAQ,EACRC,WAAW,EACXxL,eAAe,EACfyL,KAAM,KACNC,UAAW,KACX9E,UAAW,OAGfzE,UA5Ba,WA6BXrhB,KAAKkf,eAAgB,GAEvBkC,YA/Ba,WAgCXphB,KAAKkf,eAAgB,GAEvBlH,QAAS,CACP2B,OADO,WAEL,OAAO,MAETwC,OAJO,WAKL,IAAIzO,EAAM1N,KAAKzE,EAAEmS,IACjB,IAAKA,EAAK,MAAO,GACjB,IAAMmd,EAAO7qB,KAAK8qB,aAKlB,OAJID,EAAKrwB,OACPkT,EAAM,GAAEL,UAAUK,EAAKmd,EAAKrwB,OAC1BkT,EAAI2H,SAAS,OACf3H,EAAM,GAAEL,UAAUK,EAAK1N,KAAKzE,EAAE7P,KAAMsU,KAAKzE,IACpCmS,GAETqd,SAdO,WAeL,IAAI3kB,EAAQpG,KAAKyC,KAAKyB,YAClBmC,EAASrG,KAAKyC,KAAK0B,aACvB,MAAO,CACLc,KAAMjI,KAAKmC,MAAMlP,SAAS2U,gBAAgBqB,YAAcG,GAAS,GACjErB,IAAK/H,KAAKmC,MAAMlP,SAAS2U,gBAAgBsB,aAAeG,GAAU,GAClED,QAAOC,WAGX2kB,aAvBO,WAwBL,IAAIt9B,EAAIsS,KAAKirB,eACb,OAAOv9B,GAAKA,EAAE+U,MAEhByoB,eA3BO,WA4BL,IAAIv9B,EAAIqS,KAAKzE,EAAEuL,MAAQ9G,KAAKzE,EAAEuL,KAAKkB,OACnC,GAAiB,kBAANra,EAAgB,CACzB,IAAIoO,EAAIiE,KAAK0P,UAAUsT,KAAKr1B,GAC5B,OAAOoO,GAAKA,EAAEme,WACT,MAAiB,oBAANvsB,EACTA,IACEA,EACFA,EAAE+U,SAAW/U,EAAEusB,WAAavsB,EAE5BqS,KAAKzE,EAAE+oB,MAAQtkB,KAAKgrB,eAAiBhrB,KAAKmrB,uBAGrDC,QAxCO,SAwCC7wB,GACN,IAAI5M,EAAIqS,KAAKkrB,iBACTh9B,EAAI8R,KAAK2qB,KACb,GAAIh9B,IACF,GAAEgf,SAAShf,EAAG,SAAU4M,GACpBrM,GAAKA,EAAEuZ,MAAM,CACf,IAAIha,EAAI,UAAYS,EAAE6Z,MAAQ,IAAM7Z,EAAE4Z,MAAQ,IAAM5Z,EAAE2Z,MAAQ,IAAM,KACpE,GAAE8E,SAAS3M,KAAKyC,KAAMhV,EAAI,kBAAoBS,EAAEuZ,KAAMlN,GACtD,GAAEoS,SAAShf,EAAGF,EAAG8M,KAIvB8wB,aApDO,WAqDL,IAAIn9B,EAAI8R,KAAK2qB,KACTr9B,EAAI,GACJY,EAAEuZ,MACAvZ,EAAEwZ,MACJpa,EAAE4X,MAAQhX,EAAEgX,MAEZ5X,EAAE2X,KAAO/W,EAAE+W,KAET/W,EAAEyZ,OACJra,EAAEqa,OAAQ,EACVra,EAAE0X,OAAS9W,EAAE8W,QAAU9W,EAAEo9B,WAAa,IAEtCh+B,EAAEyX,IAAM7W,EAAE6W,KAAO7W,EAAEq9B,QAAU,GAE/Bj+B,EAAEma,KAAOvZ,EAAEuZ,MAEXna,EAAIY,EAEN8R,KAAK4qB,UAAYt9B,GAEnB68B,KAzEO,WA0EL,IAAI1nB,EAAKzC,KAAKyC,KACd,GAAKA,IAAMzC,KAAKzE,EAAEya,WAAlB,CACA,IAOI9nB,EAPAuO,EAAIuD,KAAKzE,EAAEkZ,WAAY,EACvB/mB,EAAIsS,KAAKzE,EAAE+oB,MACX32B,EAAIqS,KAAKzE,EAAEuL,MAAQgjB,GACnB5iB,EAAIlH,KAAKkrB,iBAET9sB,EAAIqE,EAAGyB,YACPlG,EAAIyE,EAAG0B,aAGX,GADS,KAAL1H,IAAUA,EAAI,MACD,kBAANA,EAAgB,CACzB,IAAIV,EAAIU,EAAEa,OAAO,GACR,KAALvB,IACFA,EAAIU,EAAEa,OAAO,IAEfpP,EAAI,GAAE4Y,KAAK1I,EAAGJ,EAAGtQ,GAAKwZ,EAAG8iB,GAAYvtB,GAAIuD,KAAKwrB,QAAS79B,EAAE89B,OAAQ/9B,GAAKwZ,GACtE,IAAIwkB,EAAK,GAAEvgB,EAAF,iCAA8B1O,EAA9B,qBAA4CuD,KAAK4I,IAAjD,aAAgE,GACzE,GAAI8iB,GAAgB,MAAVx9B,EAAEuZ,MAA0B,MAAVvZ,EAAEuZ,KAAc,CAC1C,IAAIkkB,EAAKD,EAAG7kB,wBACR3Y,EAAEyZ,MAAOzZ,EAAEo9B,UAAYp9B,EAAE6Z,QAAU4jB,EAAG3mB,OAAS,GAAM/U,SAAS2U,gBAAgBsB,aAAeylB,EAAG5mB,IAAM,EACrG7W,EAAEq9B,OAASr9B,EAAE2Z,QAAU5X,SAAS2U,gBAAgBsB,aAAeylB,EAAG5mB,IAAM,GAAK4mB,EAAG3mB,OAAS,QAEvFkC,IACThZ,EAAI,GAAE4Y,KAAK1I,EAAGJ,EAAGkJ,EAAG8iB,GAAYr8B,IAAMqS,KAAK4rB,qBAAuBnvB,EAAGuD,KAAKwrB,QAAS79B,EAAE89B,QAAU,GAAI99B,EAChG89B,OAAUzrB,KAAKzE,EAAEswB,QAAU,EAAIn+B,GAAKwZ,IAEpChZ,IACHA,EAAI8R,KAAK+qB,YACX/qB,KAAK2qB,MAAQ3qB,KAAKorB,QAAQ,IAC1BprB,KAAK2qB,KAAOz8B,EACZ8R,KAAKqrB,eAED5uB,GACe,kBAANA,IACTuD,KAAKoqB,aAAe,yBAA2B3tB,GAInDuD,KAAKorB,UACDprB,KAAKzE,EAAEkZ,UAAuC,kBAApBzU,KAAKzE,EAAEkZ,SACnCzU,KAAK8rB,aAAa,QAEd59B,EAAEuZ,KACJzH,KAAK+rB,iBAEL/rB,KAAK8rB,aAAa,UAIxBxV,YA5HO,SA4HKhpB,GACV0S,KAAKzE,EAAEkZ,SAAWnnB,GAEpBy+B,eA/HO,WAgIL,IAAIr+B,EAAIsS,KAAK2qB,KACTj9B,EAAEsX,OAAS,EACbhF,KAAK8rB,aAAap+B,EAAE2Y,OAAS3Y,EAAEsX,QACtBtX,EAAEqX,IAAM,GACjB/E,KAAK8rB,aAAap+B,EAAE2Y,OAAS3Y,EAAEqX,MAGnCnS,MAvIO,WAwIDoN,KAAKyqB,SACTzqB,KAAKgsB,eACLhsB,KAAKoZ,QAAQ,SACbpZ,KAAK0P,UAAUyJ,UAAUnZ,KAAK4I,OAEhCojB,aA7IO,WA8ILhsB,KAAKzE,EAAE6pB,UAAYplB,KAAKisB,WAAW,IACnCjsB,KAAKorB,QAAQ,IACbprB,KAAKyqB,QAAS,EACd,IAAIhuB,EAAIuD,KAAKzE,EAAEkZ,SACf,GAAIhY,GAAkB,kBAANA,GAAkBuD,KAAKyC,KAAM,CAC3C,IAAInI,EAAK,GAAE6Q,EAAF,kCAA+B1O,GAAKuD,KAAKyC,MAC9CgpB,EAASzrB,KAAKyC,KAAK0B,aAAe,EACtC7J,EAAGgX,MAAK,SAACtlB,EAAGyW,GACVA,EAAGsc,UAAU5sB,IAAb,uBACA,IAAI7E,EAAI,GAAEmV,GAAImoB,UACVt8B,EAAIhB,EAAEma,KAAKnK,OAAO,GACT,MAAThQ,EAAEyX,IACJzX,EAAEyX,MAAa,GAALzW,GAAe,GAALA,GAAU,EAAI,GAAKm9B,EAClB,MAAZn+B,EAAE0X,SACX1X,EAAE0X,SAAgB,GAAL1W,GAAe,GAALA,GAAU,EAAI,GAAKm9B,GAE5C1K,YAAW,kBAAMte,EAAGsc,UAAU9sB,OAAb,yBAA4C,UAKnEg6B,WAnKO,SAmKI1xB,GAAG,WACRA,IAAM,GACRyF,KAAKksB,cAAc3xB,GAEnBwmB,YAAW,WACJ,EAAK0J,QACR,EAAKyB,cAAc3xB,KAEpB,MAGP4xB,UA9KO,WA+KLC,aAAapsB,KAAKuqB,YAClBvqB,KAAKuqB,WAAa,MAEpB2B,cAlLO,SAkLO3xB,GAAG,WACX5M,EAAIqS,KAAKzE,EAAE8wB,UACXx9B,EAAI0L,EAAI,mBAAqB,sBAC7B+xB,EAAM,GAAE/mB,GAAGlV,OAAS,CAAC,YAAc,CAAC,YAAa,GAAEkV,GAAG7V,QAAU,iBAAmB,cAWvF,GAVA48B,EAAIvvB,SAAQ,SAAAgH,GAAA,OAAK9T,SAASpB,GAAGkV,EAAG,EAAKnV,KAAK,mBAAmB,SAACmN,GACvD,EAAK0uB,SAAW1uB,EAAEiM,OAAO+W,UAAUjF,SAAS,oBAAuB,EAAKS,UAAUxe,EAAEiM,UACrF,EAAKzM,EACJgxB,cAAgB,EAAK/R,UAAU9X,SAAW,EAAK8X,UAAUD,UAAUxe,EAAEiM,QAAU,EAAKwS,UAClFV,SAAS/d,EAAEiM,YACZjM,EAAEiM,OAAOO,IAAM,EAAKA,GAAK,OAAOxM,EAAEywB,kBACtC,EAAK55B,YAEL,OACJpH,OAAOyiB,MAAQA,KAAKtf,IAAIE,GAAG,aAAcmR,KAAKpR,KAAK,SAAU,IACzDjB,EAAG,CACL,IAAIG,EAAIH,IAAM,GAAKqS,KAAKzE,EAAEuL,MAAQ9G,KAAKzE,EAAEuL,KAAKkB,OAAShI,KAAKkrB,iBAAmB,GAAEzoB,GAAGzC,KAAKwa,WAAc,GAAE/X,GAAG9U,GACxG8+B,EAASzsB,KAAKpR,KAAK,uBAAuB,SAAAmN,GAC5CqwB,aAAa,EAAK7B,YAAa,EAAKA,WAAa,QAE/CmC,EAAS1sB,KAAKpR,KAAK,uBAAuB,SAAAmN,GACvCjO,EAAEgsB,SAAS/d,EAAEiM,SAAY,EAAKuS,UAAUxe,EAAEiM,SAAY,EAAKsiB,UAI9DmC,IAHK,EAAKlC,aACR,EAAKA,WAAaxJ,WAAW,EAAKnuB,MAAO,SAI/C,CAAC9E,EAAGkS,KAAKyC,MAAM1F,SAAQ,SAAAgH,GAAA,OAAKA,EAAElV,GAAG,aAAc49B,MAC/Cx8B,SAASpB,GAAG,YAAa69B,KAG7BZ,aAhNO,SAgNM9tB,GACXgC,KAAK8lB,UAAY9nB,GAEnB8sB,WAnNO,WAoNL,OAAO9qB,KAAK0P,UAAUwJ,QAAQ,CAACtQ,IAAK5I,KAAK4I,MAAM,IAEjDqiB,aAtNO,WAuNL,IAAIn9B,EAAIkS,KAAK8qB,aACb,OAAQh9B,GAAKA,EAAE0sB,WAAcxa,KAAKiT,SAAWjT,KAAK0P,WAEpD2E,QA1NO,SA0NCtQ,GACN,IAAIjW,EAAIkS,KAAK8qB,aACbh9B,GAAKA,EAAEumB,SAAWvmB,EAAEumB,QAAQtQ,IAE9BiP,OA9NO,SA8NAjP,GACL,IAAIjW,EAAIkS,KAAK8qB,aACbh9B,GAAKA,EAAEklB,QAAUllB,EAAEklB,OAAOjP,IAE5BiX,WAlOO,WAmOL,IAAI6Q,EACA39B,EAAI8R,KAAK2qB,KACb,GAAI3qB,KAAKzE,EAAEswB,OAAS39B,EAAG,CACrB,IAAIT,EAAIS,EAAE4X,MAAS5X,EAAE2Z,MAAQ,IAAM3Z,EAAE6Z,MAAQ,IAAM7Z,EAAE4Z,MAAQ,IAAM,IAAQ5Z,EAAE2Z,MAAQ,IAAM3Z,EAAE6Z,MAAQ,IAAM7Z,EACxG4Z,MAAQ,IAAM,IACjB+jB,EAAQ,gBAAE,MAAO,CACfxT,MAAO,oBAAsB5qB,GAC5B,CACD,gBAAE,IAAK,CACL4qB,MAAO,kCAAoC5qB,EAAI,MAEjD,gBAAE,IAAK,CACL4qB,MAAO,iCAAmC5qB,EAAI,QAIpD,MAAO,CAACo+B,GAAS,GAAI7rB,KAAK0f,sBAE5B/c,KArPO,WAqPA,WACDjR,EAAKsO,KAAKzE,EAAE+oB,MAAQtkB,KAAKgrB,eAAiB,gBAC1CpW,GAAQ5U,KAAKzE,EAAEqZ,OAAU5U,KAAKyqB,QAAWzqB,KAAKkf,cAI7C,KAJ6D,gBAAE,MAAO,CACzEW,IAAK,QACLxH,MAAO,4BACPwC,QAAS,SAAA9e,GAAA,OAAK,EAAKqd,QAAQ,cAAerd,MAE5C7N,EAAI,CAAC0mB,GAAS,GAAI5U,KAAKib,WAAU,IACjC,MAAO,CAELvpB,EAAK,gBAAE,MAAO,CAAC2mB,MAAO,oBAAqB9P,GAAIvI,KAAK4I,IAAM,YAAa,gBAAE,QAAU,CAAClX,MAAKxD,IAAMA,EAC/F8R,KAAKwkB,eAIXnJ,SAAU,CACRb,UADQ,WAEN,OAAOxa,KAAKirB,gBAEdzwB,KAJQ,WAKN,IAAI1M,EAAIkS,KAAK8qB,aACb,OAAOh9B,GAAKA,EAAE0M,MAEhB2wB,sBARQ,aAWRS,oBAXQ,WAYN,MAAO,MAEThQ,WAdQ,WAeN,MAAO,CAAC,aAAc5b,KAAKoqB,aAAcpqB,KAAKqqB,UAAW,CACvD,SAAUrqB,KAAKkf,cACf,SAAUlf,KAAKzE,EAAEya,cAGrB+F,WApBQ,WAqBN,GAAI/b,KAAKzE,EAAEya,WACT,MAAO,CACL5P,MAAO,OACPC,OAAQ,OACRtB,IAAK,EACLE,KAAM,GAGR,IAAIxI,EAAIuD,KAAKzE,EAAEkZ,SACX5lB,EAAImR,KAAK4qB,UACTt9B,EAAI,GAUR,IAAK,IAAIiX,KATL9H,GAAkB,WAAb,eAAOA,IACd,GAAE6O,OAAOhe,EAAGmP,GACR5N,IACW,MAATvB,EAAEyX,KAA2B,MAAZzX,EAAE0X,QAAgB,GAAEsG,OAAOhe,EAAG,GAAE0O,OAAOoX,KAAKvkB,EAAG,MAAO,WAC7D,MAAVvB,EAAE2X,MAA2B,MAAX3X,EAAE4X,OAAe,GAAEoG,OAAOhe,EAAG,GAAE0O,OAAOoX,KAAKvkB,EAAG,OAAQ,YAG1EA,GAAG,GAAEyc,OAAOhe,EAAGuB,GAEPvB,EACZA,EAAEiX,GAAK,GAAE6H,SAAS9e,EAAEiX,IAKtB,OAHIvE,KAAK8lB,YACPx4B,EAAEw4B,UAAY,GAAE1Z,SAASpM,KAAK8lB,YAEzBx4B,IAIbkpB,QAzVa,WAyVH,WACJxW,KAAKzE,EAAE+oB,OACT,GAAEnZ,EAAEnL,KAAKgrB,gBAAgB2B,SAAS,uBAEpC3sB,KAAKwY,WAAU,WACb,EAAKjd,EAAE6pB,UAAY,EAAK6G,WAAW,IACnClL,WAAW,EAAKoJ,MAChB,IAAMlJ,EAAU,SAACnzB,GACX,EAAK28B,QAAU,EAAKL,eAAiB,EAAK3nB,MAC9C,EAAK0nB,QAEP,IAAI,QAAelJ,GAASA,QAAQ,EAAKxe,MACrC,EAAKlH,EAAEmZ,SACTqM,WAAW,EAAKnuB,MAAO,EAAK2I,EAAEmZ,aAIpC+B,UA1Wa,WA2WNzW,KAAKyqB,QACRzqB,KAAKgsB,iBC3ZE,I,UAAA,I,gCCJb,gBAAa,oBAME,QACbp+B,KAAM,gBACNoqB,QAAS,CACPlC,YADO,SACK/Z,GACV,IAAIjO,EAAI,GAAE6hB,OAAO5T,EAAEoO,eACnB,GAAIrc,IACkB,IAAhBA,EAAEyN,EAAEwa,UAAsBjoB,EAAEyN,EAAEya,WAAY,CAC5C,IAaIvoB,EAbAE,EAAIG,EAAE2U,KACNwT,EAAKtoB,EAAEqW,MAAMiB,KACbiR,EAAKvoB,EAAEqW,MAAMkB,MACb8L,EAAKrjB,EAAEqW,MAAMe,IACboR,EAAKxoB,EAAEqW,MAAMgB,OACb/J,EAAIkb,GAAM,EAAI,EACdjoB,EAAIgoB,GAAM,EAAI,EACdnS,EAAI9I,EAAI,EAAI,SAAW,MACvB+C,EAAI9P,EAAI,EAAI,QAAU,OACtBqN,EAAIQ,EAAEiL,QACNjN,EAAIgC,EAAEkL,QACN3Y,EAAI,GAAEoO,OAAOzB,EAAI,EAAIkb,EAAKnF,GAC1BxjB,EAAI,GAAEkP,OAAOxO,EAAI,EAAIgoB,EAAKD,GAE1BpnB,EAAIoB,SAAS2U,gBAAgBsB,aAC7B9H,EAAInO,SAAS2U,gBAAgBqB,YACjC,GAAEuD,QAAO,SAASzN,GAAG,OAClBtO,IAAMA,EAAI,GAAE0d,EAAE,mCAAmCgH,SAASliB,SAAS2R,OACpE,IAAIwU,EAAK,GAAEvZ,SAASd,EAAEiL,QAAS,EAAG5I,GAC9BiY,EAAK,GAAExZ,SAASd,EAAEkL,QAAS,EAAGpY,GAClCf,EAAEwoB,aAAF,uBAAgBvS,EAAKzV,EAAI2M,GAAKob,EAAKtc,GAAM,MAAzC,kBAAgDiE,EAAKxQ,EAAIU,GAAKkoB,EAAK7a,GAAM,MAAzE,OACC,SAASQ,EAAGwa,GACbA,GAAS9oB,GAAKA,EAAEwE,WACf8J,MAKXya,QAnCa,WAoCXxW,KAAK2K,IAAIjH,mBAAmB2G,iBAAiB,YAAarK,KAAK8V,cAEjEW,UAtCa,WAuCXzW,KAAK2K,IAAIjH,mBAAmB6G,oBAAoB,YAAavK,KAAK8V,e,UCzCxE,GAAOmG,OAAS,GAED,UCHE,IACbruB,KAAM,UACNqvB,OAAQ,CAAC2P,IACT5V,MAAO,CAAC,OAAQ,MAAO,KAAM,cAC7BR,QAJa,WAIH,WACRxW,KAAKkJ,SAAS,SAAS,iBAA4B,WAAtB,EAAK6I,SAASnkB,KAAoB,EAAKi/B,IAAI,EAAKtxB,EAAEhK,KAAO,EAAKs7B,IAAI,EAAKtxB,EAAE/J,QAExGwmB,QAAS,CACP8E,OADO,WAEL9c,KAAKpN,SAEPuqB,MAJO,WAKLnd,KAAKpN,SAEPi6B,IAPO,SAOHtyB,GACFA,GAAKA,EAAEyF,KAAKxF,QAGhB6gB,SAAU,CACRO,WADQ,WAEN,MAAO,CAAC,sBAAuB5b,KAAKoqB,aAAcpqB,KAAKqqB,cCrBhD,MCAE,IACbz8B,KAAM,YACNqvB,OAAQ,CAAC6P,IACT9U,QAAS,CACP8E,OADO,WAEL9c,KAAK6sB,IAAI7sB,KAAKzE,EAAEhK,KAChByO,KAAKzE,EAAE/J,GAAK,KACZwO,KAAKpN,SAEPuqB,MANO,WAOLnd,KAAKpN,UAGTyoB,SAAU,CACR0R,gBADQ,WAEN,MAAO,iCCfA,MCCTC,GAAO,KACPC,GAAW,CACbC,MAAM,IAAI5uB,MAAOE,WAIJ,IACb5Q,KAAM,QACNqvB,OAAQ,CAAC2P,IACT5V,MAAO,CAAC,OAAQ,QAChBgB,QAAS,CACPC,UADO,WAEL,MAAO,CACL4T,OAAO,EACPzG,UAAU,KAIhB/J,SAAU,CACRO,WADQ,WAEN,MAAO,uBAAyB5b,KAAKzE,EAAEkhB,MAAQ,WAAazc,KAAKzE,EAAEkhB,OAErE0O,sBAJQ,WAKN,OAAOnrB,KAAKwa,UAAUN,YAExB0R,oBAPQ,WAQN,MAAO,+BAGXpV,QAvBa,WAwBXyW,GAASC,MAAO,IAAI5uB,MAAOE,UAC3BwuB,IAAQ,GAAEp6B,MAAMo6B,IAChBA,GAAOhtB,KAAK4I,KAEd6N,UA5Ba,WA6BXuW,GAAO,OClCE,I,UAAA,ICIE,IACbp/B,KAAM,WACN8tB,cAAe,cACfuB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,OAAQ,OAAQ,YAAa,OAAQ,SAAU,WAAY,UAAW,WAAY,WAAY,YAAa,eAAgB,YAAa,WAAY,gBAC5J2G,OAAQ,CAAC,oBACTuM,MAAO,CAAC,eACRx+B,KAPa,WAON,WACL,MAAO,CACLyhC,QAAS,KACTC,UAAU,EACVC,OAAQ,CACNtN,aAAc,SAAAhkB,GAAMA,EAAEoO,cAAc4U,UAAU5sB,IAAI,QAAS,EAAKoJ,EAAE8wB,WAAa,EAAKiB,QACpF5K,aAAc,SAAA3mB,GAAA,OAAKA,EAAEoO,cAAc4U,UAAU9sB,OAAO,SACpD6jB,YAAa,SAAA/Z,GAAA,OAAKA,EAAEoO,cAAc4U,UAAU5sB,IAAI,WAChDo7B,UAAW,SAAAxxB,GAAA,OAAKA,EAAEoO,cAAc4U,UAAU9sB,OAAO,cAIvDktB,MAAO,CACLoD,SADK,SACIhoB,GACPA,GAAK,GAAE4Q,EAAE,QAASnL,KAAKyC,MAAM+qB,YAAY,UAG7CxV,QAAS,CACPC,UADO,WAEL,MAAO,CACLwV,cAAc,IAGlBta,SANO,SAME5Y,GACPA,EAAS,MAALA,GAAmBA,EACvByF,KAAKzE,EAAEnI,QAAUmH,GAEnB+yB,KAVO,WAWLttB,KAAKotB,UAAW,GAElBvS,QAbO,SAaC9e,GACFiE,KAAK0tB,QACP1tB,KAAKstB,OAEHttB,KAAKwb,WAAaxb,KAAKwb,UAAUmS,UACnC3tB,KAAKwb,UAAUmS,SAAS3tB,OAG5B4tB,WArBO,SAqBI7xB,GACTA,EAAEywB,kBACFzwB,EAAEud,QAAU,cACZtZ,KAAKoZ,QAAQrd,IAEf8xB,UA1BO,SA0BG9xB,GACJiE,KAAK8tB,aACT/xB,EAAEywB,kBACFxsB,KAAKstB,SAEPS,UA/BO,aAkCP/S,WAlCO,WAkCM,WACP1sB,EAAI0R,KAAKzE,EAAEyG,KACX9T,EAAI,GA+BR,OA9BI8R,KAAKzE,EAAEnI,SACTlF,EAAE1B,KAAK,gBAAE,MAAO,CACd6rB,MAAO,6CACN,gBAAE2V,GAAK,CACRtgB,IAAK,qBAGL1N,KAAKzE,EAAEwhB,MACT7uB,EAAE1B,KAAKwT,KAAK2a,UAAU3a,KAAKzE,EAAE0yB,WAAajuB,KAAKmiB,UAAYniB,KAAKzE,EAAE0yB,UAAYjuB,KAAKzE,EAAEwhB,KACnF,yCAEAzuB,GACFJ,EAAE1B,KAAK,gBAAE,MAAO,CACd6rB,MAAO,iBACN/pB,IAED0R,KAAK0tB,QAAU1tB,KAAKzE,EAAEkyB,cACxBv/B,EAAE1B,KAAK,gBAAEwhC,GAAK,CACZ3V,MAAO,uCACP3K,IAAK1N,KAAKzE,EAAE2yB,UAAY,0BAGxBluB,KAAKzE,EAAE4yB,UACTjgC,EAAE1B,KAAK,gBAAE,MAAO,CACd6rB,MAAO,gCACN,gBAAE,IAAK,CACRA,MAAO,oCACPwC,QAAS7a,KAAK4tB,eAGX,CACL,gBAAE,MAAD,gBACCvV,MAAO,+BACHrY,KAAKouB,UAAYpuB,KAAK8tB,YAAc9tB,KAAKqtB,QAC5Cn/B,GACH8R,KAAKouB,SAAWpuB,KAAKzE,EAAEkyB,cAAgB,gBAAEO,GAAD,eAAC,gBACvC3V,MAAO,uCACP3K,IAAK1N,KAAKzE,EAAE2yB,UAAY,yBACnBluB,KAAK8tB,YAAc9tB,KAAKqtB,QAHS,IAItCxS,QAAS7a,KAAK6tB,aAEhB7tB,KAAKotB,SAAW,gBAAEiB,GAAM,CACtBpb,QAASjT,KACTmY,aAAa,EACbmW,SAAU,GAAEtoB,IAAIhG,KAAKyC,MAAM2D,MAC3Bgf,UAAU,EACViH,UAAWrsB,KAAKzE,EAAE8wB,UAClBkC,UAAWvuB,KAAKzE,EAAEgzB,UAClBC,aAAcxuB,KAAKzE,EAAEizB,aACrB1nB,KAAM,CACJkB,OAAQ,kBAAM,EAAKvF,MACnBgS,SAAUzU,KAAKzE,EAAEizB,eAAiBxuB,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAEimB,SAAW,QAAU,KAC1FiK,OAAQ,GAEVgD,QAAS,kBAAM,EAAKrB,UAAW,IAC9BptB,KAAK0a,QAAU,MAIxBW,SAAU,CACRH,QADQ,WAEN,MAAO,OAETiH,UAJQ,WAKN,OAAOniB,KAAKwb,WAAaxb,KAAKwb,UAAU4G,UAAUpiB,OAEpD0tB,OAPQ,WAQN,QAAS1tB,KAAK0a,OAAOwF,UAAYlgB,KAAKuZ,MAAM,UAE9C6U,QAVQ,WAWN,SAAUpuB,KAAK0a,OAAOwF,UAAWlgB,KAAKuZ,MAAM,WAE9CuU,WAbQ,WAcN,OAAO9tB,KAAKzE,EAAEgnB,UAAYviB,KAAKzE,EAAEnI,SAEnCgoB,WAhBQ,WAgBK,MACX,uBACEmH,SAAUviB,KAAK8tB,WACfzV,OAAK,wCACQrY,KAAKzE,EAAEkhB,MAASzc,KAAKzE,EAAEkhB,MAD/B,kBAEH,UAAWzc,KAAKouB,SAFb,kBAGD,SAAUpuB,KAAK0tB,QAHd,kBAID,OAAQ1tB,KAAKmiB,WAJZ,kBAKD,OAAQniB,KAAKzE,EAAEgnB,UALd,kBAMD,YAAaviB,KAAKzE,EAAEnI,SANnB,kBAOD,aAAc4M,KAAKzE,EAAEimB,UAPpB,kBAQD,aAAcxhB,KAAKzE,EAAE4yB,UARpB,GAULtT,QAAS7a,KAAK6a,UACT7a,KAAKouB,SAAWpuB,KAAKqtB,WC5JrB,MCOE,IACbz/B,KAAM,eACNqvB,OAAQ,CAACyR,IACT1W,QAAS,CACPsV,KADO,WAEDttB,KAAKotB,WACTptB,KAAK2uB,WACL3uB,KAAKotB,UAAW,EAChBptB,KAAK4uB,WAAWC,QAAU7uB,OAE5B6a,QAPO,SAOC9e,GAAG,WACLiE,KAAK0tB,QAET3M,YAAW,kBAAM,EAAK6N,WAAW1jC,KAAK0H,UAAS,KAEjDmtB,aAZO,SAYMhkB,IACViE,KAAKzE,EAAEgnB,UAAYxmB,EAAEoO,cAAc4U,UAAU5sB,IAAI,QAC9C6N,KAAK0tB,OACP1tB,KAAKstB,OAELttB,KAAK2uB,YAGTA,SApBO,WAqBD3uB,KAAK4uB,WAAWC,UAClB7uB,KAAK4uB,WAAWC,QAAQzB,UAAW,EACnCptB,KAAK4uB,WAAWC,QAAU,OAG9BjB,WA1BO,SA0BI7xB,GACTA,EAAEywB,kBACFzwB,EAAEud,QAAU,cACZtZ,KAAKoZ,QAAQrd,IAEfif,WA/BO,WA+BM,WACP1sB,EAAI0R,KAAKzE,EAAEyG,KACX9T,EAAI,GACJwf,EAAM1N,KAAKzE,EAAEwhB,KACbjC,EAAOpN,GAAOA,EAAIC,WAAW,OAASD,EAAI2H,SAAS,KAwCvD,OAvCAnnB,EAAE1B,MAAMkhB,GAAOoN,EAAO,gBAAE,IAAK,CAC3BzC,MAAO,6CAA+C3K,EAAMA,EAAI/c,QAAQ,MAAO,IAAM,MAClF,gBAAE,MAAO,CACZ+c,IAAKA,EACL2K,MAAO,8CAGL/pB,GACFJ,EAAE1B,KAAK,gBAAE,MAAO,CACd6rB,MAAO,8BACN/pB,IAED0R,KAAKzE,EAAE4yB,UACTjgC,EAAE1B,KAAK,gBAAE,MAAO,CACd6rB,MAAO,sBACN,gBAAE,IAAK,CACRA,MAAO,wCACPwC,QAAS7a,KAAK4tB,eAGlB1/B,EAAE1B,KAAK,gBAAEwhC,GAAK,CACZ3V,MAAO,2CACP3K,IAAK1N,KAAK0tB,OAAU1tB,KAAKzE,EAAE2yB,UAAY,wBAA2B,MAEhEluB,KAAKotB,UACPl/B,EAAE1B,KAAK,gBAAE6hC,GAAM,CACbjJ,UAAU,EACVnS,QAASjT,KACTmY,aAAa,EACboW,UAAWvuB,KAAKzE,EAAEgzB,WAAavuB,KAAK4uB,WAAWrzB,EAAEgzB,UACjDznB,KAAM,CACJkB,OAAQ,kBAAM,EAAKvF,MACnBgS,SAAU,QACVgX,OAAQ,GAEVgD,QAAS,kBAAM,EAAKrB,SAAW,OAC9BptB,KAAK0a,SAGHxsB,IAGXmtB,SAAU,CACRH,QADQ,WAEN,MAAO,UAETwS,OAJQ,WAKN,QAAS1tB,KAAK0a,OAAOwF,SAEvB0O,WAPQ,WAQN,IAAI5/B,EAAIgR,KAAKub,YACb,MAAOvsB,IAAMA,EAAEygB,OAAQzgB,EAAIA,EAAEusB,YAC7B,OAAOvsB,GAET0gB,UAZQ,WAaN,OAAO1P,KAAK4uB,WAAWE,cAAcpf,WAEvC0L,WAfQ,WAgBN,MAAO,CACLmH,SAAUviB,KAAKzE,EAAEgnB,SACjBlK,MAAO,CACL,OAAQrY,KAAKmiB,UACX,OAAQniB,KAAKzE,EAAEgnB,UAEnBxC,aAAc/f,KAAK+f,aACnB2C,cAAe1iB,KAAKzE,EAAEgnB,UAAa,SAAAxmB,GAAA,OAAKA,EAAEoO,cAAc4U,UAAU9sB,OAAO,SACzE4oB,QAAS7a,KAAK6a,YC9GT,I,UAAA,ICIT,GAAO,KAEI,IACbjtB,KAAM,SACNqvB,OAAQ,CAAC2P,IACT5U,QAAS,CACPC,UADO,WAEL,MAAO,CACLmN,UAAU,EACVmH,aAAa,IAGjBhS,UAPO,SAOGhgB,EAAGU,GACX,GAAI+E,KAAK8Z,SAASvf,EAAGU,GAAI,OAAO,EAChC,IAAIjM,EAAI,GAAEuL,GAAGqf,QAAQ,uBACrB,SAAI5qB,KAAMA,EAAIA,EAAE4/B,aAAe5/B,EAAE8/B,eAAiB9uB,KAAK8uB,qBAAvD,GAEFxJ,MAZO,SAYD/qB,GACJ,IAAIU,EAAI+E,KAAKge,MAAM+Q,IAAItsB,KACnB/U,EAAI,GAAEsY,IAAI/K,GACdA,EAAE2L,WAAalZ,EAAE2Y,OAAS9L,GAE5By0B,WAjBO,SAiBIjzB,GACTiE,KAAKslB,MAAMvpB,EAAEkzB,WAAa,EAAI,GAAK,IAErCC,QApBO,WAqBL,IAAIxhC,EAAIsS,KACR,MAA0C,iBAAnCtS,EAAEu9B,eAAelZ,SAASnkB,KAAyBF,EAAIA,EAAEu9B,eAAe2D,WAC/E,OAAOlhC,GAGTq+B,eA1BO,WA2BL,IAAIr+B,EAAIsS,KAAK2qB,KACTj9B,EAAEoa,OAASpa,EAAEka,MACXla,EAAEsX,OAAS,GACbtX,EAAEqX,KAAOrX,EAAEsX,OACPtX,EAAEqX,IAAM,IACV/E,KAAK8rB,aAAap+B,EAAE2Y,OAAS3Y,EAAEqX,KAC/BrX,EAAEqX,IAAM,GAEV/E,KAAKqrB,gBACI39B,EAAEqX,IAAM,IACjBrX,EAAEsX,QAAUtX,EAAEqX,IACVrX,EAAEsX,OAAS,IACbhF,KAAK8rB,aAAap+B,EAAE2Y,OAAS3Y,EAAEsX,QAC/BtX,EAAEsX,OAAS,GAEbhF,KAAKqrB,gBAGH39B,EAAEsX,OAAS,EACbhF,KAAK8rB,aAAap+B,EAAE2Y,OAAS3Y,EAAEsX,QACtBtX,EAAEqX,IAAM,GACjB/E,KAAK8rB,aAAap+B,EAAE2Y,OAAS3Y,EAAEqX,MAIrCoqB,aApDO,WAqDL,OAAOnvB,KAAKya,iBAAiBxO,KAAI,SAAA3e,GAC/B,IAAIuB,EAAIvB,EAAEma,KAAK7Z,KACf,MAAa,aAANiB,GAA0B,mBAANA,EAAyB,gBAAEugC,GAAY9hC,EAAE0pB,MAAO1pB,EAAE+iB,UAAY/iB,MAG7F0tB,WA1DO,WA0DM,WACX,MAAO,CACLhb,KAAK8lB,WAAa,gBAAE,MAAO,CACzBzN,MAAO,kBACPwC,QAAS,SAAA9e,GAAA,OAAK,EAAKupB,OAAO,KACzB,gBAAE,IAAK,CACRjN,MAAO,sBAET,gBAAE6J,GAAU,CACV7J,MAAO,aACPhS,OAAQ,IACRwZ,IAAK,MACLwP,QAASrvB,KAAKgvB,YACb,CACD9O,QAAS,kBAAM,EAAKiP,kBAEtBnvB,KAAK8lB,WAAa,gBAAE,MAAO,CACzBzN,MAAO,kBACPwC,QAAS,SAAA9e,GAAA,OAAK,EAAKupB,MAAM,KACxB,gBAAE,IAAK,CACRjN,MAAO,2BAKfgD,SAAU,CACRO,WADQ,WAEN,MAAO,CAAC,sBAAuB5b,KAAKoqB,aAAcpqB,KAAKqqB,UAAWrqB,KAAKzE,EAAEgzB,UAAW,CAClF,SAAUvuB,KAAKkf,cACf,SAAUlf,KAAKzE,EAAEya,WACjB,eAAgBhW,KAAK8lB,aAGzB56B,KARQ,WASN,OAAO8U,KAAKkvB,WAEdJ,cAXQ,WAYN,OAAO9uB,KAAK9U,KAAKsvB,WAEnBoU,WAdQ,WAeN,IAAI5/B,EAAIgR,KAAKub,YACb,MAAOvsB,IAAMA,EAAEygB,OAAQzgB,EAAIA,EAAEusB,YAC7B,OAAOvsB,IAGXwnB,QA1Ga,WA2GPxW,KAAKiT,SAA0C,iBAA/BjT,KAAKiT,QAAQlB,SAASnkB,OACpC,IACF,GAAEgF,MAAM,IAEV,GAAOoN,QCrHA,I,UAAA,ICCE,IACbpS,KAAM,YACNqvB,OAAQ,CAAC2P,IACT5V,MAAO,CAAC,OAAQ,QAChBgB,QAAS,CACPC,UADO,WAEL,MAAO,IAIT+C,WANO,WAOL,OAAO,gBAAEgT,GAAK,CACZtgB,SAAqBnR,IAAhByD,KAAKzE,EAAEwhB,KAAqB/c,KAAKzE,EAAEwhB,KAAO,iBAC/C/a,UAAsBzF,IAAhByD,KAAKzE,EAAEyG,KAAqBhC,KAAKzE,EAAEyG,KAAO,GAAEqJ,IAAIjY,YAI5DioB,SAAU,CACRO,WADQ,WAEN,MAAO,cCpBA,I,UAAA,ICGE,IACbhuB,KAAM,UACNqvB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,OAAQ,WAAY,YAC5B2K,QAJa,WAKX,MAAO,CACL2N,cAAetvB,KACfuvB,cAAe,EACfC,gBAAiB,OAGrB9jC,KAXa,WAYX,MAAO,CACL+jC,OAAQ,CAACxqB,KAAM,KAAMC,MAAO,QAGhCsR,QAhBa,WAgBH,WACFyK,EAAU,SAACllB,GAAD,OAAO,EAAK2zB,eAAe,QAAQvmB,OAAO,EAAKumB,eAAe,WAC9E,GAAE1zB,OAAOsV,KAAK2P,KAAW,SAAAld,GAAA,OAAK,IAAI,QAAekd,GAASA,QAAQld,MAClE/D,KAAK2K,IAAI+K,aAAa,aAAc,QAChC,GAAEnQ,GAAG/V,QAAU,GAAE+V,GAAG/V,QAAU,IAChC,IAAI,SAAe,WACjB,EAAKmb,IAAI+K,aAAa,0BAA2B,IACjDia,uBAAsB,kBAAM,EAAKhlB,IAAIgL,gBAAgB,iCACpDsL,QAAQjhB,KAAK2K,MAGpBqN,QAAS,CACP0X,eADO,SACQ5lB,GACb,IAAI2lB,EAAS,KACTtpB,EAAS,EACTypB,EAAa,GAAE5zB,OAAOiQ,IAAIjM,KAAK2K,IAAIqW,cAAT,SAAgCiC,iBAAhC,sBAAgEnZ,EAAhE,QAO9B,MANY,UAARA,GAAiB8lB,EAAWC,UAChCD,EAAW7yB,SAAQ,SAAA+yB,IAChBL,IAAWA,EAAS,KAAKjjC,KAAK,CAACujC,SAAUD,EAAGE,UAAW7pB,WACxDA,GAAU2pB,EAAG5rB,eAEflE,KAAKyvB,OAAO3lB,GAAO2lB,EACZG,GAET5U,WAbO,WAcL,MAAO,CACLhb,KAAKiwB,UAAUC,MAAOlwB,KAAKiwB,UAAUE,MAAOnwB,KAAKiwB,UAAUG,SAAW,MAI5E/U,SAAU,CACR4U,UADQ,WAEN,IAAM11B,EAAI,GAUV,OATAyF,KAAKya,iBAAiB1d,SAAQ,SAAAjP,GAC5B,IAAIe,EAAIf,EAAE2Z,KAAK7Z,MAAQE,EAAE2Z,KAAK7Z,KAAKuB,MAAM,GACrCN,IACQ,WAANA,GACD0L,EAAE61B,UAAY71B,EAAE61B,QAAU,KAAK5jC,KAAKsB,GAErCyM,EAAE1L,GAAKf,MAGNyM,GAET81B,SAdQ,WAeN,OAAO,GAAEngB,cAAclQ,KAAKiwB,UAAUK,QAAQjgB,UAAUpE,KAAI,SAAAlI,GAAA,OAAKA,EAAEiT,UAErE4E,WAjBQ,WAkBN,MAAO,CAAC,gBAAiB5b,KAAKzE,EAAEkhB,MAAQ,UAAYzc,KAAKzE,EAAEkhB,OAE7DV,WApBQ,WAqBN,IAAI7tB,EAAI,GAOR,OANI8R,KAAKyvB,OAAOxqB,MACdjF,KAAKyvB,OAAOxqB,KAAKlI,SAAQ,SAAAgH,GAAA,OAAK7V,EAAE,qBAAD,OAAsB6V,EAAEgsB,WAAzB,UAA0ChsB,EAAEoC,OAA5C,SAE5BnG,KAAKyvB,OAAOvqB,OACdlF,KAAKyvB,OAAOvqB,MAAMnI,SAAQ,SAAAgH,GAAA,OAAK7V,EAAE,sBAAD,OAAuB6V,EAAEgsB,WAA1B,UAA2ChsB,EAAEoC,OAA7C,SAE1BjY,KC7EA,I,UAAA,ICJE,IACbN,KAAM,aCCK,MCFE,IACbA,KAAM,WACNopB,MAAO,CAAC,QAAS,aCAN,MCAE,I,UAAA,CACbA,MAAO,CAAC,MAAO,WACf2K,QAFa,WAGX,MAAO,CACLlG,iBAAkBzb,OAGtBgY,QAAS,CACPoK,UADO,SACGpa,GAAQ,WACZta,EAAIsS,KAAKzE,EAAE8pB,QACf,GAAS,MAAL33B,EACJ,OAAIkO,MAAMC,QAAQnO,IACR,EAAIA,EAAE62B,WAAU,SAAAxgB,GAAA,OAAK,EAAKwsB,eAAexsB,EAAGiE,MAE7ChI,KAAKuwB,eAAe7iC,EAAGsa,IAGlCuoB,eAVO,SAUQlL,EAASrd,GACtB,GAAuB,WAAnB,eAAOqd,GAAsB,CAC/B,IAAI13B,EAAIqa,EAAOtF,UAAYsF,EAAOzM,GAAKyM,GAAQtc,KAAQsc,EAAOgP,OAAShP,EAAOgP,MAAMtrB,KACpF,GAAIiC,EACF,IAAK,IAAI3B,KAAKq5B,EACZ,GAAI,GAAErpB,OAAO/N,IAAIN,EAAG3B,IAAMq5B,EAAQr5B,GAAI,OAAO,OAE5C,GAAIq5B,IAAYrd,EAAOtF,SAAWsF,EAAO2R,SAAW3R,EAAOrZ,KAChE,OAAO,MCzBF,MCOE,IACbf,KAAM,UACNqvB,OAAQ,CAACgC,GAAYuR,IACrBxZ,MAAO,CAAC,KAAM,QACd2G,OAAQ,CAAC,iBACTgE,QALa,WAMX,MAAO,CACL8O,kBAAmB,EACnBC,kBAAmB,KACnBC,eAAe,EACfC,cAAe5wB,KACf6wB,eAAe,IAGnBnlC,KAda,WAeX,MAAO,CACLolC,KAAM,KACNC,QAAS,OAGb/Y,QAAS,CACPgZ,WADO,WAEL,OAAO,GAETC,UAJO,WAIK,WACV,GAAIjxB,KAAK0a,OAAOwW,IAAK,CACnB,IAAIhjC,EACAijC,EAAMnxB,KAAKzE,EAAE8U,SACjB,GAAIzU,MAAMC,QAAQs1B,GAAM,CACtB,IAAInlC,EAAI,EACRkC,EAAIijC,EAAIllB,KAAI,SAAAwZ,GAAG,OAAK,EAAK/K,OAAOwW,IAAI,CAACzL,SAAOxZ,KAAI,SAAA3d,GAAA,OAAK,GAAE0N,OAAOob,IAAI9oB,EAAG,iBAAkBtC,WAEzF,OAAOkC,GAAK,GAEZ,OAAO8R,KAAKya,iBAAiBxO,KAAI,SAACmlB,EAAIC,GAAL,OAAY,GAAEr1B,OAAOob,IAAIga,EAAI,iBAAkBC,OAGpFC,WAjBO,WAkBL,IAAIC,EAAKvxB,KAAKsvB,cAAce,SACxBS,EAAO9wB,KAAKixB,YACZjtB,EAAQ,GACZ,IAAKhE,KAAKsvB,cAAckC,MAAO,CAC7B,IAAIC,EAAK,EACTF,EAAGx0B,SAAQ,SAAArP,GACT+jC,GAAM,GAAE/0B,OAAOhP,EAAE0Y,QAAU,GAAE1J,OAAOhP,EAAE,iBAEpC+jC,IACFztB,EAAMsqB,SAAW,GAAEliB,SAASqlB,IAIhC,OADAzxB,KAAK8wB,KAAO,GACL,gBAAE,MAAO,CACdzY,MAAO,oBACN,gBAAE,QAAS,CACZwH,IAAK,QACL6R,YAAa,EACbC,YAAa,EACbtZ,MAAO,cACPrU,SACC,CAED,gBAAE,QAAS,KAAM,gBAAE,KAAM,KAAMutB,EAAGtlB,KAAI,SAAAlI,GAAA,OAAK,gBAAE,KAAM,CACjDC,MAAO,CACLoC,MAAkB,KAAXrC,EAAEqC,MAAe,KAAO,GAAEgG,SAASrI,EAAEqC,OAC5CkoB,SAAU,GAAEliB,SAASrI,EAAE,eAEzB,UAAWA,EAAEytB,aAEf,gBAAE,QAASV,OAGf9V,WAnDO,WAoDL,OAAOhb,KAAKsxB,eAGhBjW,SAAU,CACRuW,SADQ,WAEN,OAAO5xB,KAAKzE,EAAEs2B,UCpFP,MCKE,IACbjkC,KAAM,UACNqvB,OAAQ,CAAC,GAAOwE,IAChB9D,OAAQ,CAAC,iBACT3G,MAAO,CAAC,YACR2K,QALa,WAMX,MAAO,CACLiP,cAAe,KACfD,eAAe,EACfE,cAAe7wB,OAGnB4V,QAZa,WAYH,WACR5V,KAAK8X,QAAO,kBAAM,EAAKwX,cAAc/zB,KAAG,SAACA,GACvC,EAAKA,EAAEokB,QAAUpkB,EAAEokB,QACnB,EAAKpkB,EAAEqkB,UAAU,EAAK0P,cAAckC,OAAej2B,EAAEqkB,UACpD,CACDkS,WAAW,KAGf9Z,QAAS,CACV+Z,WADU,WAER,IAAM3sB,EAAK,GAAE+F,EAAE,aAAcnL,KAAKyC,MAAM,GACxC,OAAO2C,GAAM,GAAEA,IAEd4sB,YALO,SAKKv1B,GACdA,EAAIA,GAAKuD,KAAK+xB,aACNt1B,IACFA,EAAEw1B,eACFjyB,KAAKwY,WAAU,kBAAM/b,EAAE0d,eAAe,CAAC5e,EAAG,cAG9CqiB,SAZO,SAYE7hB,GACP,IAAIm2B,EAAKlyB,KAAKsvB,cAAcW,UAAUC,MAClCgC,IACFA,EAAGzvB,GAAGiE,WAAa3K,EAAEiM,OAAOtB,aAGhC0Y,iBAlBO,SAkBUrb,GACf,IAAItB,EAAKzC,KAAKsvB,cAAc7sB,MACxBA,GAAW,QAALsB,GAAoB,UAALA,GAAsB,SAALA,IACxCtB,EAAGiT,aAAa,aAAc3R,IAGlCsb,wBAxBO,SAwBiBtjB,GACtB,IAAI0G,EAAKzC,KAAKsvB,cAAc7sB,KACxBA,GACF1G,EAAEgB,SAAQ,SAAAtP,GACR,IAAIoB,EAAIpB,EAAEq3B,cACVr3B,EAAEua,OAAOmqB,aAAatjC,GAAK4T,EAAGiT,aAAa7mB,EAAG,IAAM4T,EAAGkT,gBAAgB9mB,OAI7EmsB,WAjCO,WAkCL,OAAOhb,KAAK0f,kBAAkB1f,KAAKsxB,gBAGvCjW,SAAU,CACR+W,OADQ,WAEN,OAAO,GAETxW,WAJQ,WAKN,MAAO,CAAC,2BAA4B5b,KAAK0gB,sBCnElC,MCME,IACb9yB,KAAM,OACN8tB,cAAe,kBACfuB,OAAQ,CAACgC,GAAY0D,IACrB3L,MAAO,CAAC,WAAY,WAAY,YAChC2G,OAAQ,CAAC,gBAAiB,mBAAoB,gBAAiB,gBAAiB,eAAgB,mBAChGgE,QANa,WAOX,MAAO,CACL6N,gBAAiBxvB,KACjBuvB,aAAcvvB,KAAKuvB,aAAe,IAGtCvX,QAAS,CACP1H,SADO,WAEL,OAAO,GAAEA,SAAStQ,KAAK0a,OAAQ,SAEjC2X,UAJO,WAKL,IAAKryB,KAAKwvB,gBAAiB,OAAO,EAClC,IAAIxgC,EAAIgR,KACR,MAAOhR,EAAIA,EAAEwgC,gBACX,IAAKxgC,EAAEgiC,aAAc,OAAO,EAE9B,OAAO,GAETA,WAZO,WAaL,OAAOhxB,KAAKzE,EAAE+2B,UAEhBC,YAfO,SAeKC,GACVxyB,KAAKzE,EAAE+2B,SAAkB,MAAPE,EAAcA,GAAOxyB,KAAKzE,EAAE+2B,UAEhDL,aAlBO,WAmBL,IAAIjjC,EAAIgR,KACR,OAAQhR,EAAIA,EAAEwgC,kBAAqBxgC,EAAE+iB,SAASnkB,OAASoS,KAAK+R,SAASnkB,KACnEoB,EAAEyjC,QAAO,IAGbA,OAxBO,SAwBAD,EAAKnqB,GACV,IAAIqqB,EAAO1yB,KAAKlO,MAAM,WAClB4gC,EACFA,EAAKD,OAAOD,EAAKnqB,IAEjBrI,KAAKuyB,YAAYC,GACjBnqB,GAAMrI,KAAKwY,UAAUnQ,KAGzB0X,aAjCO,SAiCMhkB,GACXiE,KAAKyC,KAAKsc,UAAU5sB,IAAI,SAE1BuwB,aApCO,SAoCM3mB,GACXiE,KAAKyC,KAAKsc,UAAU9sB,OAAO,SAE7B+oB,WAvCO,WAwCL,IAAIjK,EAAK/Q,KAAK2yB,SACVC,EAAK5yB,KAAKwb,UAAUsV,KACpB+B,EAAK,EACT,OAAO7yB,KAAKya,iBAAiBxO,KAAI,SAAA6jB,GAK/B,GAJI8C,EAAG7hB,IAAO6hB,EAAG7hB,GAAI8hB,KACnBA,GAAMD,EAAG7hB,GAAI8hB,IAEf/C,EAAGgD,cAAgBD,EACf/C,EAAG9Y,MAAO,CACZ,GAAI8Y,EAAG9Y,MAAM8E,QAAU,EACrB,IAAK,IAAW5tB,EAAPhB,EAAI,EAAMA,EAAI4iC,EAAG9Y,MAAM8E,QAAS5uB,IACvCgB,EAAI0kC,EAAG7hB,EAAK7jB,KAAO0lC,EAAG7hB,EAAK7jB,GAAK,IAChCgB,EAAE2kC,GAAM,GAAEn2B,OAAOozB,EAAG9Y,MAAM6E,UAAY,EAGtCiU,EAAG9Y,MAAM6E,QAAU,IAAGgX,GAAM/C,EAAG9Y,MAAM6E,QAAU,GAGrD,OADAgX,IACO/C,MAGXntB,KA7DO,WA6DA,WACL,OAAI3C,KAAKzE,EAAE8U,UAAYzU,MAAMC,QAAQmE,KAAKzE,EAAE8U,WAAarQ,KAAK6wB,eAAiB7wB,KAAK6wB,cAAcnW,OAAOwW,IAChG,CAAClxB,KAAKib,WAAU,GAAOjb,KAAKzE,EAAE8U,SAASpE,KAAI,SAAAwZ,GAAG,OAAK,EAAKoL,cAAcnW,OAAOwW,IAAI,CAACzL,aAEpFzlB,KAAK0a,OAAOwW,IAAM,CAAClxB,KAAKib,WAAU,GAAOjb,KAAK0a,OAAOwW,OAASlxB,KAAKib,cAG9EI,SAAU,CACRH,QADQ,WAEN,MAAO,MAET6X,MAJQ,WAKN,OAAO/yB,KAAKuvB,aAAe,GAE7BqC,SAPQ,WAQN,OAAO5xB,KAAKwb,UAAUjgB,EAAEs2B,QAE1BzP,UAVQ,WAWN,OAAOpiB,KAAKwb,UAAU4G,UAAUpiB,OAElCob,WAbQ,WAcN,GAAIpb,KAAK2wB,cACP,MAAO,CACLtY,MAAO,CACL,OAAQrY,KAAKoiB,UACb,aAAcpiB,KAAKgxB,aACnB,UAAWhxB,KAAKqyB,aAElBtS,aAAc/f,KAAK+f,aACnB2C,aAAc1iB,KAAK0iB,gBAM3BlM,QA5Ga,WA6GPxW,KAAKoiB,WAAWpiB,KAAKwb,UAAUwW,YAAYhyB,QCnHtC,MCAE,IACbpS,KAAM,OACNopB,MAAO,CAAC,UAAW,UAAW,QAAS,SAAU,QACjD2G,OAAQ,CAAC,gBAAiB,iBAC1B3F,QAAS,CACPgb,SADO,WACI,MACLH,EAAK7yB,KAAK1E,EAAEoe,MAAMoZ,cAClBG,EAAMjzB,KAAKsvB,cAAce,SAASwC,KAAO,EACzCK,EAAMlzB,KAAKsvB,cAAce,SAASnkC,OAClC2vB,EAAU7b,KAAK6b,SACH,GAAZA,IACFA,EAAUqX,GAEZ,IAAI3+B,EAAOs+B,GAAMhX,GAAW,IAAMqX,EAClC,MAAO,CACL7a,MAAO,CAAC,OACN9jB,GAAQ,kBACRyL,KAAK2wB,eAAiBsC,EAAI5a,MAC1B4a,EAAIzB,QAAJ,4CACiByB,EAAIzB,QAAU,GAD/B,yCAE0C,SAAdyB,EAAIzB,OAAqBxxB,KAAKsvB,cAAce,SAASwC,EAAK,IAAM7yB,KAAKsvB,cAAce,SAASwC,EAAK,GAAGrB,OAASyB,EAAIzB,OAF7I,2CAG4C,UAAdyB,EAAIzB,OAAsBxxB,KAAKsvB,cAAce,SAASwC,EAAK,IAAM7yB,KAAKsvB,cAAce,SAASwC,EAAK,GAAGrB,OAASyB,EAAIzB,OAHhJ,IAMFxtB,MAAO,CAAChE,KAAK2wB,eAAiBsC,EAAIjvB,MAAOivB,EAAIzB,OAAJ,6BAAkByB,EAAIzB,OAAtB,2BAAoDyB,EAAIzB,MAAxD,YAAiEqB,EAAjE,OACzChX,UACAC,QAAS9b,KAAK8b,QACdyF,MAAOvhB,KAAKuhB,OAAS0R,EAAI1R,MACzBvE,OAAQhd,KAAKgd,QAAUiW,EAAIjW,UAIjCf,OAhCa,WAiCX,OAAO,gBAAE,KAAMjc,KAAKgzB,WAAYhzB,KAAK0a,UCjC5B,MCME,IACb9sB,KAAM,OACNqvB,OAAQ,CAAC,GAAIgC,IACbjI,MAAO,CAAC,WAAY,aAAc,oBAClC2G,OAAQ,CAAC,iBACTuM,MAAO,CAAC,cACRx+B,KANa,WAOX,MAAO,CACLynC,SAAU,KACVC,UAAW,OAGfpb,QAAS,CACPqb,QADO,SACCt3B,GACFiE,KAAKzE,EAAE+3B,UACTtzB,KAAKuzB,UAAUx3B,EAAG,WAGtBw3B,UANO,SAMGx3B,EAAGy3B,GACXz3B,EAAEywB,kBACF,IAAI1+B,EAAIkS,KAAKozB,UACVpzB,KAAK4wB,cAAcG,SAAW/wB,KAAK4I,MACpC9a,EAAI,MAEN,IAAI2lC,EAASzzB,KAAKzE,EAAEm4B,YAAc,CAAC,MAAO,OAAQ,MAClD,GAAc,WAAVF,EAAoB,CACtB,IAAIxnC,EAAIynC,EAAO3jC,QAAQhC,GACvBA,EAAI2lC,EAAOznC,EAAI,GAAU,GAALA,EAAS,EAAIA,EAAI,QAErC8B,EAAIA,GAAK0lC,EAAQ,KAAOA,EAE1BxzB,KAAKozB,UAAYtlC,EACjBkS,KAAK4wB,cAAcG,QAAU/wB,KAAK4I,IAClC7M,EAAE1N,MAAQP,EACVkS,KAAK2zB,MAAM,aAAc53B,EAAGjO,IAE9BktB,WAxBO,WAwBM,WACX,OAAO,gBAAE6G,GAAY,CAACxJ,MAAO,YAAa2E,OAAQ,SAAUuE,MAAOvhB,KAAKuhB,OAASvhB,KAAKizB,IAAI1R,OAAQ,CAACrB,QAAS,iBAAM,CAChH,gBAAE,MAAO,CAAC7H,MAAO,cAAe,EAAKqC,QACrC,EAAKnf,EAAE+3B,SAAW,gBAAE,MAAO,CAACjb,MAAO,8CAA+C,CAChF,gBAAE,IAAK,CAACA,MAAO,qCAAsCgb,QAAS,SAAAt3B,GAAA,OAAK,EAAKw3B,UAAUx3B,EAAG,UACrF,gBAAE,IAAK,CAACsc,MAAO,yCAA0Cgb,QAAS,SAAAt3B,GAAA,OAAK,EAAKw3B,UAAUx3B,EAAG,aACtF,SAIXsf,SAAU,CACR4X,IADQ,WAEN,OAAOjzB,KAAKsvB,cAAce,SAASrwB,KAAK1E,EAAEoe,MAAMoZ,iBAAkB,GAEpE5X,QAJQ,WAKN,MAAO,MAETE,WAPQ,WAQN,OAAO,gBAAWpb,KAAKgzB,WAAY,CACjC3a,MAAO,iBAAC,aAAcrY,KAAKzE,EAAE+3B,UAAxB,YAAwCtzB,KAAKozB,WAAcpzB,KAAKozB,WAAapzB,KAAK4wB,cAAcG,SAAW/wB,KAAK4I,KACrHyqB,QAASrzB,KAAKqzB,aC9DT,MCME,IACbzlC,KAAM,SACNqvB,OAAQ,CAACwE,IACTzK,MAAO,CAAC,UAAW,OAAQ,MAAO,iBAAkB,QACpDgB,QAAS,CACPC,UADO,WAEL,MAAO,CACLqY,QAAS,GACTlgC,IAAK,IAGT4qB,WAPO,WAQL,OAAOhb,KAAKzE,EAAEokB,SAAW3f,KAAKzE,EAAEqkB,QAAU5f,KAAK0f,oBAAsB,gBAAE,MAAO,CAC5ErH,MAAO,cACPrU,MAAOhE,KAAKigB,wBACXjgB,KAAK0a,UAGZW,SAAU,CACRD,WADQ,WAEN,MAAO,CACL/C,MAAO,CAACrY,KAAKzE,EAAEu1B,KAAO,SAAW,SAAU9wB,KAAKzE,EAAEkhB,MAAQ,UAAYzc,KAAKzE,EAAEkhB,KAAMzc,KAAK0gB,qBAG5FT,uBANQ,WAON,IAAI2T,EAAO5zB,KAAKzE,EAAE+0B,QACd,GAAE1zB,SAASg3B,KAAOA,EAAG,iBAAcA,EAAd,WACzB,IAAI9C,EAAO9wB,KAAKzE,EAAEu1B,KACd,GAAEl0B,SAASk0B,KAAOA,EAAG,iBAAcA,EAAd,WACzB,IAAI+C,EAAK7zB,KAAKzE,EAAEu4B,eAChB,MAAO,CACL,wBAAyBF,EACzB,qBAAsB9C,EACtB,WAAY9wB,KAAKzE,EAAEnL,IAAM,GAAEgc,SAASpM,KAAKzE,EAAEnL,KAAO,GAClD,oBAA4B,GAAPyjC,GAAkB,MAANA,EAAa,GAAzB,eAAsCA,OCtCtD,I,UAAA,ICDE,IACbjmC,KAAM,gBACN8tB,cAAe,WACfiC,OAAQ,CAAC,oBACTV,OAAQ,CAACgC,IACTjI,MAAO,CAAC,QACRtrB,KANa,WAOX,MAAO,CACLwwB,QAAQ,IAGZlE,QAAS,CACPC,UADO,WAEL,MAAO,CACL8b,MAAM,IAGV/Y,WANO,WAOL,OAAIhb,KAAKkc,SAAWlc,KAAK+zB,KAChB/zB,KAAK0a,OAEV1a,KAAKmiB,WACPniB,KAAKkc,QAAS,EACPlc,KAAK0a,aAFd,IAMJW,SAAU,CACRO,WADQ,WAEN,MAAO,CAAC,OAAQ5b,KAAKmiB,YAEvBA,UAJQ,WAKN,OAAOniB,KAAKwb,UAAU4G,UAAUpiB,SCjCzB,MCME,IACbpS,KAAM,WACNqvB,OAAQ,CAACgC,GAAYuR,IACrBxZ,MAAO,CAAC,QAAS,gBAAiB,YAClCtrB,KAJa,WAKX,MAAO,CACLsoC,WAAY,OAGhB7U,MAAO,CACLkG,QADK,SACGthB,GACN/D,KAAKi0B,SAASlwB,KAGlBiU,QAAS,CAEPic,SAFO,SAEE15B,GAAG,WACNjN,EAAI0S,KAAKya,iBACT/sB,EAAIJ,EAAEi3B,WAAU,SAAAxgB,GAAA,OAAK,EAAKwsB,eAAeh2B,EAAGwJ,MAChD/D,KAAKg0B,WAAatmC,GAEpBwmC,WAPO,SAOI35B,GACTyF,KAAKg0B,YAAcz5B,GAErB45B,eAVO,SAUQ55B,GACbyF,KAAKg0B,WAAaz5B,GAEpBygB,WAbO,WAaM,WACY,MAAnBhb,KAAKg0B,YACPh0B,KAAKi0B,SAASj0B,KAAKzE,EAAE8pB,SAEvB,IAAIthB,EAAI/D,KAAKzE,EAAEimB,SACXjnB,EAAIwJ,EAAI,KAAO,OACf9I,EAAI8I,EAAI,OAAS,QACrB,MAAO,CACL,gBAAE,MAAO,CACPsU,MAAO,gBACPwH,IAAK,QACJ7f,KAAK0a,QACR1a,KAAKzE,EAAE+pB,OAAS,gBAAE,MAAO,CACvBjN,MAAO,oBAAsB9d,EAC7BsgB,QAAS,SAAA9e,GAAA,OAAK,EAAKm4B,YAAY,KAC9B,gBAAE,IAAK,CACR7b,MAAO,iBAAmB9d,KAE5ByF,KAAKzE,EAAE+pB,OAAS,gBAAE,MAAO,CACvBjN,MAAO,oBAAsBpd,EAC7B4f,QAAS,SAAA9e,GAAA,OAAK,EAAKm4B,WAAW,KAC7B,gBAAE,IAAK,CACR7b,MAAO,iBAAmBpd,KAE5B+E,KAAKzE,EAAE64B,eAAiB,gBAAE,MAAO,CAC/B/b,MAAO,oCACNrY,KAAKya,iBAAiBxO,KAAI,SAAClI,EAAG/X,GAAJ,OAAU,gBAAE,MAAO,CAC9CqsB,MAAO,0BAA4BrsB,GAAK,EAAKgoC,WAAa,QAAU,IACpEnZ,QAAS,SAAA9e,GAAA,OAAK,EAAKo4B,eAAenoC,aAK1CqvB,SAAU,CACRO,WADQ,WAEN,IAAI5vB,EAAIgU,KAAKg0B,WACb,MAAO,CACL,aAAmB,GAALhoC,EACd,YAAaA,GAAK,GAAKA,GAAKgU,KAAKya,iBAAiBvuB,OAAS,IAG/D6vB,WARQ,WASN,IAAI/vB,EAAIgU,KAAKg0B,WACb,MAAO,CACL,yBAAgC,KAAJhoC,EAAW,IACvC,wBAAyBgU,KAAKzE,EAAEiqB,SAAP,oBAA+BxlB,KAAKzE,EAAEiqB,SAAtC,MAAqD,KAIpFhP,QA5Ea,WA4EH,WACJxW,KAAKge,MAAMoC,MACb,IAAIc,kBAAiB,WACnB,EAAK+S,SAAS,EAAK14B,EAAE8pB,YACpBpE,QAAQjhB,KAAKge,MAAMoC,KAAM,CAC1BiU,WAAW,MCrFN,I,UAAA,ICAE,IACbzmC,KAAM,cACNqvB,OAAQ,CAAC4E,GAAY2O,IACrBxZ,MAAO,CAAC,WAAY,YACpBgB,QAAS,CACPC,UADO,WAEL,MAAO,CACL7nB,IAAK,EACL4sB,OAAQhd,KAAKwhB,SAAW,KAAO,WAGnCxG,WAPO,WAQL,IAAI1tB,EACJ,GAAI0S,KAAK0a,OAAOrd,MAAO,CACrB,IAAI9C,EAAIyF,KAAKya,iBACTxf,EAAI+E,KAAK0a,OAAOrd,QACpB/P,EAAI,GACJ,IAAK,IAAItB,EAAI,EAAGwB,EAAI+M,EAAErO,OAAQF,EAAIwB,EAAGxB,IACnCsB,EAAEd,KAAK+N,EAAEvO,IACLA,EAAIwB,EAAI,GAAGF,EAAEd,KAAKyO,GAG1B,OAAO+E,KAAK0f,kBAAkBpyB,KAGlC+tB,SAAU,CACRvR,IADQ,WAEN,OAAO9J,KAAKzE,EAAEimB,SAAW,IAAM,KAEjC5F,WAJQ,WAKN,MAAO,CAAC5b,KAAKzE,EAAEimB,SAAW,aAAe,mBChClC,MCDE,IACbvE,OAAQ,CAACyR,IACTrT,SAAU,CACRO,WADQ,WAEN,MAAO,WCDA,I,UAAA,ICIE,IACbhuB,KAAM,SACNqvB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,UAAW,WAAY,OAC/BgB,QAAS,CACPC,UADO,WAEL,MAAO,CACLxD,SAAU,MACVrkB,KAAM,IAGVu9B,SAPO,SAOE2G,GACPt0B,KAAKzE,EAAE8pB,QAAUiP,EAAI3a,UAEvBqB,WAVO,WAWL,IAAIzL,EAAU,GACVglB,EAAQ,GACRC,EAAMx0B,KAAKzE,EAAEkZ,SAQjB,OAPAzU,KAAKya,iBAAiB1d,SAAQ,SAACgH,EAAG/X,GAC3B+X,EAAEiT,OAAwB,MAAfjT,EAAEiT,MAAMroB,KACtB,GAAEqN,OAAOob,IAAIrT,EAAG,YAAa/X,GAE/BujB,EAAQ/iB,KAAK,gBAAEioC,GAAY1wB,EAAEiT,QAC7Bud,EAAM/nC,KAAK,gBAAEkoC,GAAY,CAACX,KAAsB,MAAhBhwB,EAAEiT,MAAM+c,MAAsBhwB,EAAEiT,MAAM+c,KAAMplC,IAAKoV,EAAEiT,MAAMroB,KAAMoV,EAAEsM,cAE5F,CACL,gBAAEskB,GAAW,CACXtc,MAAO,mBACPgN,QAASrlB,KAAKzE,EAAE8pB,QAChBj1B,IAAK4P,KAAKzE,EAAEnL,IACZoxB,SAAiB,QAAPgT,GAAwB,SAAPA,EAC3B7U,QAAS3f,KAAKzE,EAAEokB,QAChBC,QAAS5f,KAAKzE,EAAEqkB,QAChB+N,SAAU3tB,KAAK2tB,UACd,CAACzN,QAAS,kBAAM3Q,KACnB,gBAAEqlB,GAAQ,CAACvc,MAAO,8BAA+BgN,QAASrlB,KAAKzE,EAAE8pB,SAAU,CAACnF,QAAS,kBAAMqU,QAIjGlZ,SAAU,CACRO,WADQ,WAEN,IAAI4Y,EAAMx0B,KAAKzE,EAAEkZ,SACjB,MAAO,eAAwB,OAAP+f,GAAuB,UAAPA,EAAkB,UAAY,IAAM,UAAYA,KC9CjF,I,UAAA,ICJE,IACb5mC,KAAM,SCCK,MCIE,IACbA,KAAM,UACNqvB,OAAQ,CAAC4E,GAAY2O,IACrBxY,QAAS,CACPC,UADO,WAEL,MAAO,CACL7nB,IAAK,EACLmV,IAAI,EACJyX,OAAQ,SAId3B,SAAU,CACRO,WADQ,WAEN,MAAO,kBClBA,MCCE,IACbhuB,KAAM,iBACN8tB,cAAe,cACfuB,OAAQ,CAACyR,IACTrT,SAAU,CACRO,WADQ,WAEN,MAAO,cCPA,MCME,IACbhuB,KAAM,SACNqvB,OAAQ,CAACgC,GAAYyC,IACrB1K,MAAO,CAAC,QACRqE,SAAU,CACRD,WADQ,WAEN,IAAIyZ,EAAO70B,KAAKzE,EAAEs5B,KAClB,MAAO,CACLxc,MAAO,EACJrY,KAAKzE,EAAEgmB,OAASvhB,KAAKzE,EAAEyhB,SAAW,eAC3B,MAAR6X,GAAgB,SAChB70B,KAAKshB,kBAEPtd,MAAe,MAAR6wB,GAAgB,CACrB,qBAAsBA,OClBnB,I,UAAA,ICKE,IACbjnC,KAAM,SACNqvB,OAAQ,CAACwE,GAAQ+O,GAAW7N,IAC5BuH,MAAO,CAAC,cACRvI,QAJa,WAKX,MAAO,CACL4N,cAAe,EACfmB,kBAAmB,KACnBlB,gBAAiB,OAGrBxX,QAAS,CACP+Z,WADO,WAEL,IAAMW,EAAO,GAAEvnB,EAAE,eAAgBnL,KAAKyC,MAAM,GAC5C,OAAOiwB,GAAQ,GAAEA,IAEnBV,YALO,SAKKv1B,GACVA,EAAIA,GAAKuD,KAAK+xB,aACVt1B,IACFA,EAAEw1B,eACFjyB,KAAKwY,WAAU,kBAAM/b,EAAE0d,sBAG3Ba,WAZO,WAYM,IACP9sB,EADO,OAEPijC,EAAMnxB,KAAKzE,EAAE8U,SAQjB,OAPIrQ,KAAK0a,OAAOwF,UAEZhyB,EADE0N,MAAMC,QAAQs1B,GACZA,EAAIllB,KAAI,SAAAwZ,GAAG,OAAK,EAAK/K,OAAOwF,QAAQ,CAACuF,YAErC,IAGDzlB,KAAK0f,kBAAkBxxB,KAGlCmtB,SAAU,CACR0X,MADQ,WAEN,OAAQ,GAEV3X,WAJQ,WAKN,MAAO,CACL/C,MAAOrY,KAAK0gB,qBAIlBlK,QA9Ca,WA+CNxW,KAAKzE,EAAE8U,UAAUrQ,KAAKoc,YCpDlB,I,UAAA,ICCE,I,UAAA,CACbxuB,KAAM,UACNqvB,OAAQ,CAACgC,GAAYyC,IACrB1K,MAAO,CAAC,OAAQ,SAAU,YAC1BgB,QAAS,CACPgD,WADO,WAEL,OAAO,gBAAE,QAAS,CAAC3C,MAAO,gBACxB,gBAAE,OAAQrY,KAAK0a,OAAOwF,QAAUlgB,KAAK0a,OAAOwF,UAAYlgB,KAAKzE,EAAEyG,MAAyB,MAAjBhC,KAAKzE,EAAEu5B,OAAiB,GAAK90B,KAAKzE,EAAEu5B,YAGjHzZ,SAAU,CACRO,WADQ,WAGN,OADA5b,KAAKzE,EAAEimB,WAAaxhB,KAAK8K,QAAQiqB,eAAgB,GAC1C,CAAC,aAAe/0B,KAAKzE,EAAEimB,SAAW,cAAgB,IAAKxhB,KAAKshB,mBAErEvF,WALQ,WAMN,MAAO,CACL3V,MAAO,KACP,gBAAiBpG,KAAKzE,EAAE6K,OAAS,GAAEgG,SAASpM,KAAKzE,EAAE6K,YCrB9C,MCeE,IACb6W,OAAQ,CAACgC,GAAYyC,IACrB1K,MAAO,CAAC,OAAQ,QAAS,aAAc,cAAe,QAAS,WAAY,mBAAoB,WAAY,WACzG,kBAAmB,kBAAmB,aAAc,eACtDkT,MAAO,CAAC,oBAAqB,SAAU,OAAQ,SAC/Cx+B,KALa,WAMX,IAAIspC,EAAKh1B,KAAKi1B,WACd,MAAO,CACLvjB,cAAc,EACdwjB,SAAS,EACTC,WAAW,EACXC,UAAU,EACVC,UAAW,GACXN,eAAe,EACfO,cAAeN,EACfpjB,aAAcojB,EACdO,iBAAkB,KAGtBvd,QAAS,CACPoL,IADO,SACHrf,GACF,GAAwB,GAApBO,UAAUpY,OACZ,OAAO8T,KAAKzE,EAAE05B,WAChB,IAAIrW,EAAK5e,KAAKzE,EAAE05B,WAChBj1B,KAAKzE,EAAE05B,WAAalxB,EACpB,IAAIyxB,EAAU5W,IAAO7a,EAWrB,MAVkB,WAAd,eAAO6a,KACT4W,EAAUvoB,KAAKC,UAAU0R,IAAO3R,KAAKC,UAAUnJ,IAE7CyxB,IACFx1B,KAAKq1B,WAAar1B,KAAK8jB,MAAK,GACxB9jB,KAAKy1B,YAAY1xB,KACnB/D,KAAK2zB,MAAM,oBAAqB5vB,GAChC/D,KAAKoZ,QAAQ,SAAUrV,KAGpBA,GAETsf,QAnBO,WAoBL,OAAOrjB,KAAK01B,aAEdD,YAtBO,SAsBK1xB,GACV,OAAO,GAET4xB,iBAzBO,SAyBU/nC,GACf,IAAIM,EAAI8R,KAAK41B,MAAMhoC,GACnB,GAAS,MAALM,EAIF,OAHI0N,MAAMC,QAAQ3N,KAChBA,EAAIA,EAAE,IAEDA,GAAKA,EAAEG,MAAQH,EAAEG,MAAQH,GAGpC0qB,MAlCO,SAkCDQ,GACJ,IAAIrd,EAAIiE,KAAK2jB,cAAcvK,GAK3B,OAJIrd,IACFiE,KAAK8jB,OACL9jB,KAAK+jB,aAAahoB,EAAEiG,QAEdjG,GAEV4nB,cA1CO,SA0COvK,EAASgK,GACrB,IAAIyS,EAAOzc,EAAUpZ,KAAK81B,cAAc1c,GAAWpZ,KAAK+1B,YACxD,GAAIF,IAAS71B,KAAKg2B,UAAah2B,KAAKi2B,YAAcj2B,KAAKzE,EAAE26B,kBAAoB,CAC3E,IAAInyB,OAAYxH,IAAR6mB,EAAoBA,EAAMpjB,KAAKo1B,SAAWp1B,KAAKmjB,eAAiBnjB,KAAKqjB,UAC5D,kBAANtf,IACTA,EAAInI,MAAMC,QAAQkI,GAAKA,EAAE1H,KAAK,KAAY,MAAL0H,EAAY,GAAM,GAAKA,GAC9DA,EAAIA,EAAEoyB,OACN,IAL2E,EAKvEC,EAAKp2B,KAAKq2B,WAL6D,iBAM7DR,GAN6D,IAM3E,2BAAoB,KAAX1qB,EAAW,QACdmrB,EAAuB,WAAlB,eAAOnrB,EAAEorB,MAAoBprB,EAAEorB,UAAwBh6B,IAAjB4O,EAAEorB,KAAKloC,MAAsB8c,EAAEorB,KAAKloC,MAAQ8c,EAAEorB,KACzFx6B,EAAIq6B,EAAGjrB,EAAE1D,MAAM1D,EAAGuyB,EAAInrB,GAC1B,GAAIpP,EAAG,OAAOA,GAT2D,iCAa/Ey6B,QAzDO,SAyDCC,EAAKC,GACX,IAAIC,EAAQ32B,KAAK42B,eACbnvB,EAAOgvB,EAAIhvB,KACXzF,EAAOy0B,EAAIF,MAAQE,EAAIF,KAAKv0B,KAIhC,OAHKA,IACHA,EAAO,GAAEqJ,IAAI/Q,GAAGzN,MAAM,KAAM,CAAC,GAAEwe,IAAIhV,KAAKoR,GAAOkvB,GAAS,IAAIxtB,OAAc,MAAPutB,GAAuB,KAARA,EAAaA,EAAM,MAAQ,IAExG,CACL9S,IAAK5jB,KAAK4I,IACVhb,KAAMoS,KAAKzE,EAAE3N,KACb6Z,OACAkvB,QACA30B,SAGJ8hB,KAxEO,SAwEFvpB,GACH,IAAI6D,EAAiB,kBAAN7D,EAAiBA,GAAU,IAANA,EAAc,QAAU,GAC5DyF,KAAKq1B,UAAYj3B,GACZA,GAAK4B,KAAK62B,OAClB72B,KAAKsT,IAAI,SAAS,GAClBtT,KAAK62B,KAAO,OAGX9S,aAhFO,SAgFM/hB,GAAM,WACjBhC,KAAKma,eAAe,CAClB5J,KAAM,IACNmD,QAAS,WACP,EAAKmjB,KAAO,EAAKvjB,IAAI,QAAS,CAC5BtR,OACAya,KAAM,OACN8P,aAAa,EACbzlB,KAAM,CACJkB,OAAQ,EAAK8uB,sBAMvBC,MA/FO,WAiGL,OADA/2B,KAAKge,MAAMja,EAAEgzB,QACN/2B,MAET2R,SAnGO,WAoGL,IAAIrjB,EAAI0R,KAAKojB,MACb,OAAY,MAAL90B,EAAY,GAAKA,GAE1BsoC,aAvGO,WAwGL,IAAItoC,EAAI0R,KAAKzE,EAAEo7B,OAAU32B,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAEo7B,MAC5D,OAAOroC,EAAKA,EAAE0T,MAAQ1T,EAAK,IAE7B0oC,QA3GO,SA2GCj7B,GACNiE,KAAKojB,IAAIrnB,EAAEiM,OAAO3Z,QAEpB4oC,UA9GO,SA8GGl7B,GACRiE,KAAKk1B,SAAU,EACfl1B,KAAK8jB,MAAK,GACV9jB,KAAKoZ,QAAQrd,IAEfm7B,SAnHO,SAmHEn7B,GAAG,WACLiE,KAAKm3B,cAAcp7B,EAAEq7B,iBAAgBp3B,KAAKk1B,SAAU,GACzDl1B,KAAKoZ,QAAQrd,GACdglB,YAAW,WACT,IAAK,EAAKzlB,EAAE+7B,cAAgB,EAAK/7B,EAAE4jB,cAAe,CAChD,IAAIgO,GAAO,IAAI5uB,MAAOE,UAClB0uB,EAAOD,GAASC,KAAO,KAAK,EAAKtU,MAAM,WAE3C,MAELsB,SA7HO,WA8HL,OAAOla,KAAKyC,GAAG,SAEjB8X,UAhIO,SAgIGhgB,GACR,OAAOyF,KAAKka,WAAWJ,SAASvf,EAAEmI,SAAWnI,EAAEkI,KAAOlI,IAExD48B,cAnIO,SAmIO10B,KAIduhB,WAvIO,SAuIIC,GACT,IAAIqT,EAAKrT,EAAWjkB,KAAK4R,aAAe5R,KAAKs1B,cACzCN,EAAKh1B,KAAKzE,EAAE05B,WAGhB,OAFU,MAANqC,IAAYA,EAAK,IACX,MAANtC,IAAYA,EAAK,IACjBsC,GAAMtC,GAEH/nB,KAAKC,UAAUoqB,IAAOrqB,KAAKC,UAAU8nB,IAG9C9Q,aAjJO,SAiJMD,GACXjkB,KAAKs1B,cAAgB,GAAEt5B,OAAOu7B,MAAMv3B,KAAKzE,EAAE05B,YACvChR,IACFjkB,KAAK4R,aAAe5R,KAAKs1B,gBAI7BjR,MAxJO,SAwJDD,GACJpkB,KAAKojB,IAAIgB,GAA8B,MAArBpkB,KAAK4R,aAAuB,GAAK5R,KAAK4R,eAE1D4lB,WA3JO,WA4JL,OAAOx3B,KAAK0a,OAAOic,MAAQ32B,KAAK0a,OAAOic,QAAW32B,KAAKzE,EAAEo7B,OAAiC,WAAxB,eAAO32B,KAAKzE,EAAEo7B,QAAsB,gBAAEc,GACtGz3B,KAAKzE,EAAEo7B,QAEXe,WA/JO,WAgKL,OAAO,gBAAE13B,KAAK23B,UAAN,gBACNtf,MAAO,gBACPwH,IAAK,IACLtX,GAAIvI,KAAK4I,IAAM,IACfnB,KAAMzH,KAAK43B,WACXhqC,KAAMoS,KAAK63B,WACXxpC,MAAO2R,KAAK01B,YACZoC,SAAU93B,KAAKi2B,WACf1T,SAAUviB,KAAK8tB,WACfiK,YAAa/3B,KAAKg4B,kBAClBC,aAAc,MAGdjB,QAASh3B,KAAKg3B,QACdkB,QAASl4B,KAAKi3B,UACdkB,OAAQn4B,KAAKk3B,UACVl3B,KAAKo4B,cAGZC,kBAnLO,WAoLL,OAAOr4B,KAAKzE,EAAE3N,KAAO,gBAAE,QAAS,CAC9B6Z,KAAM,SACNoY,IAAK,IACLjyB,KAAMoS,KAAK63B,WACXxpC,MAAO2R,KAAK01B,YACZnT,SAAUviB,KAAKzE,EAAEgnB,WACd,IAEP+V,YA5LO,WA6LL,MAAO,IAETC,UA/LO,WAgML,MAAO,CACLv4B,KAAK+a,KAAK,WACV/a,KAAK03B,aACL13B,KAAKs4B,cACLt4B,KAAK+a,KAAK,YAGdyd,UAvMO,WAwML,IAAIC,EAAKz4B,KAAKzE,EAAEm9B,aAAe,GAAEtsB,SAASpM,KAAKzE,EAAEm9B,aACjD,OAAO,gBAAE,MAAO,gBAAW,CACzB7Y,IAAK,OACLtX,GAAIvI,KAAK4I,IAAM,OACfyP,MAAO,CAAC,UAAD,iBACL,iBAAkBrY,KAAKm1B,WADlB,YAECn1B,KAAK8J,IAFN,QAEkB,GAAEvE,GAAGpV,OAAOC,MAErC4T,MAAO,CACL,OAAUy0B,GAEZ9jB,MAAO3U,KAAK24B,aACX34B,KAAK44B,WAAY54B,KAAKu4B,cAE3Bvd,WAtNO,WAuNL,MAAO,CAAChb,KAAKw3B,aAAcx3B,KAAKw4B,YAAax4B,KAAK+a,KAAK,SAAU/a,KAAK+a,KAAK,aAG/EM,SAAU,CACRua,MADQ,WAEN,OAAO51B,KAAKzE,GAEds9B,cAJQ,WAIQ,WACd,MAAO,CACLviC,SAAU,SAACyN,EAAGwyB,EAAME,GAClB,GAAIF,IAASxyB,EAAG,OAAO,EAAKyyB,QAAQC,IAEtCz/B,QAAS,SAAC+M,EAAGwyB,EAAME,GACjB,GAAI1yB,IAAsB,kBAATwyB,GAAqB,GAAE3qB,KAAF,UAAU2qB,EAAV,YAA0B,CAACA,OAAMxyB,OAAOwyB,EAAKzlC,KAAKiT,IACtF,OAAO,EAAKyyB,QAAQC,IAExBqC,gBAAiB,SAAC/0B,EAAGwyB,GACnB,IAAIv0B,EAAOu0B,GAAQA,EAAKxyB,GACxB,GAAI/B,EACF,OAAO,EAAKw0B,QAAQ,CAAC/uB,KAAM,kBAAmB8uB,KAAM,CAACv0B,aAK7Dq0B,WArBQ,WAsBN,OAAOr2B,KAAK64B,eAEd9C,YAxBQ,WAwBM,WACR7nC,EAAI,GACJuZ,EAAO,kBACPzH,KAAKq2B,WAAW5uB,IAAOvZ,EAAE1B,KAAK,CAACib,SAHvB,eAIJlD,GACN,IAAKrW,EAAEmnB,SAAS9Q,GAAI,CAClB,IAAIgyB,EAAO,EAAKX,MAAMrxB,GACV,MAARgyB,IACE36B,MAAMC,QAAQ06B,GAChBA,EAAKx5B,SAAQ,SAAA0oB,GAAG,OAAKv3B,EAAE1B,KAAK,CAACib,KAAMlD,EAAGgyB,KAAM9Q,OAE5Cv3B,EAAE1B,KAAK,CAACib,KAAMlD,EAAGgyB,YAPzB,IAAI,IAAIhyB,KAAKvE,KAAKq2B,WAAY,EAAtB9xB,GAYR,OAAOrW,GAET4nC,cA1CQ,WA0CQ,WACV5nC,EAAI,GAeR,OAdA/B,OAAO4f,KAAK/L,KAAKq2B,YAAYt5B,SAAQ,SAAAwH,GACnC,IAAI5W,EAAI,EAAKioC,MAAMrxB,GACnB,GAAI5W,EACF,GAAIiO,MAAMC,QAAQlO,GAAI,wBACNA,GADM,IACpB,2BAAiB,KAARoO,EAAQ,QACXA,EAAEqd,UACHlrB,EAAE6N,EAAEqd,WAAalrB,EAAE6N,EAAEqd,SAAW,KAAK5sB,KAAK,CAACib,KAAMlD,EAAGgyB,KAAMx6B,KAH3C,oCAMXpO,EAAEyrB,UACVlrB,EAAEP,EAAEyrB,WAAalrB,EAAEP,EAAEyrB,SAAW,KAAK5sB,KAAK,CAACib,KAAMlD,EAAGgyB,KAAM5oC,OAI1DO,GAETwnC,YA5DQ,WA6DN,OAAO11B,KAAKzE,EAAE05B,YAEhB4C,WA/DQ,WAgEN,OAAO73B,KAAKzE,EAAE3N,MAEhB+pC,UAlEQ,WAmEN,MAAO,SAETC,WArEQ,WAsEN,MAAO,QAETe,YAxEQ,aA2ERP,WA3EQ,aA8ERJ,kBA9EQ,WA+EN,GAAKh4B,KAAKg2B,SAAV,CACA,IAAI1oC,EAAI0S,KAAKzE,EAAEw8B,YAIf,OAHS,MAALzqC,GAAa,GAAEiO,EAAEw9B,iBAAmB/4B,KAAKzE,EAAEo7B,QAC7CrpC,EAAI,GAAE+d,IAAI/Q,GAAG,GAAE+Q,IAAIrL,KAAKu1B,kBAAoB,qBAAuBv1B,KAAKzE,EAAEo7B,MAAM30B,MAAQhC,KAAKzE,EAAEo7B,QAE1FrpC,IAETsrC,UAtFQ,aAyFR5C,SAzFQ,WA0FN,OAAQh2B,KAAKi2B,aAAej2B,KAAK8tB,YAEnCA,WA5FQ,WA6FN,OAAO9tB,KAAKzE,EAAEgnB,UAEhB0T,WA/FQ,WAgGN,OAAOj2B,KAAKzE,EAAEu8B,UAEhBhB,eAlGQ,WAmGN,OAAO92B,MAETg5B,QArGQ,aAwGR5d,WAxGQ,WAyGN,IAAI6d,EAAKj5B,KAAKzE,EAAE29B,YAAc,GAAE9sB,SAASpM,KAAKzE,EAAE29B,YAChD,uBACE7gB,MAAO,CAAC,aAAcrY,KAAKq1B,UAAWr1B,KAAKshB,iBAAkB,CAC3D,OAAQthB,KAAKk1B,QACb,QAASl1B,KAAKg2B,SACd,QAASh2B,KAAK41B,MAAMt/B,SACpB,mBAAoB0J,KAAK+0B,cACzB,YAAakE,EACb,SAAgC,MAAtBj5B,KAAKzE,EAAE29B,aAEnBl1B,MAAOi1B,GAAM,CACX,kBAAmBA,IAGlBj5B,KAAKg5B,YCjXH,I,UAAA,ICGE,IACbprC,KAAM,aACN8tB,cAAe,kBACfuB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,OAAQ,UAAW,gBAAiB,UAAW,WACvD2G,OAAQ,CAAC,mBAAoB,oBAC7BuM,MAAO,CAAC,SAAU,iBAAkB,SACpCx+B,KAPa,WAQX,MAAO,CACL0pC,UAAU,EACV3R,eAAe,EACf2V,iBAAiB,EACjBC,gBAAgB,IAGpBzjB,QAfa,WAgBP5V,KAAKspB,mBACPtpB,KAAKspB,iBAAiBgQ,SAAWt5B,MAEnCA,KAAKq5B,eAAiBr5B,KAAK6R,UAC3B7R,KAAKo5B,gBAAkBp5B,KAAK6R,WAE9BmG,QAAS,CACPoL,IADO,SACH7oB,GACF,GAAwB,GAApB+J,UAAUpY,OACZ,OAAO8T,KAAKu5B,SAEdv5B,KAAKw5B,OAAOj/B,EAAG,CACbkN,KAAM,SACNO,OAAQhI,KAAKge,MAAMja,KAGvBw1B,OAVO,WAWL,OAAOv5B,KAAK6R,UAAY7R,KAAK3R,MAAQ,IAEvCmrC,OAbO,SAaA1nB,EAASwD,GACNtV,KAAKwb,UAAb,IACIzX,EAAI/D,KAAKy5B,WACTC,EAA0B,UAApB15B,KAAK43B,WACX5C,EAAKh1B,KAAKzE,EAAE05B,WAEdD,EADE0E,EACG5nB,EAAU,GAAE/W,OAAOgJ,GAAK,GAExB+N,EAAU,GAAEvF,OAAOyoB,EAAIjxB,GAAK,GAAEyI,UAAUwoB,EAAIjxB,GAEnD/D,KAAKzE,EAAE05B,WAAaD,EAChB0E,GACF15B,KAAK25B,WAAW58B,SAAQ,SAAAoZ,GAAC,OAAKA,EAAG5a,EAAE05B,WAAaD,KAElDh1B,KAAK2zB,MAAM,oBAAqBqB,GAChCh1B,KAAKoZ,QAAQ9D,EAAO0f,GACpBh1B,KAAKwb,WAAaxb,KAAKwb,UAAUpC,QAAQ9D,EAAO0f,IAElD3R,QA/BO,WAgCL,OAAQrjB,KAAK8tB,YAAc9tB,KAAK6R,UAAY7R,KAAKzE,EAAElN,MAAQ,IAE7D80B,aAlCO,SAkCM5oB,GACX,GAAS,MAALA,EAAW,CACb,IAAIrM,EAAI,GAKR,OAJA,GAAE8N,OAAOsV,KAAKtR,KAAK25B,SAAS,MAAM,IAAO,SAAAl9B,GACvC,IAAIyK,EAAIzK,EAAE4mB,UACD,MAALnc,GAAkB,IAALA,GAAShZ,EAAE1B,KAAK0a,MAE5BhZ,EAAEmO,KAAK,KAEhB,GAAEL,OAAOsV,KAAKtR,KAAK25B,YAAY,SAAAl9B,GAAA,OAAKA,EAAE2mB,IAAI,GAAE3W,OAAOlS,EAAGkC,EAAEg9B,iBAE1DG,MA7CO,SA6CDr/B,GACCyF,KAAKg2B,UACVh2B,KAAKojB,IAAI7oB,IAGXo/B,SAlDO,SAkDEp/B,EAAGU,GACV,OAAO,GAAEe,OAAOiQ,IAAI,GAAEd,EAAE,gBAAkBnL,KAAK63B,WAAa,kCAAoC58B,EAAI,kBAAoB,MAC/G,IAANV,EAAa,YAAmB,IAANA,EAAc,iBAAoBA,GAAK,IAAMyF,KAAK0P,UAAUjN,OAAO,SAAA1G,GAAA,OAAK,GAAEA,OAEzG89B,OAtDO,aA0DPxV,MA1DO,SA0DDD,GACApkB,KAAKwb,UACPxb,KAAKwb,UAAU6I,MAAMD,GAErBpkB,KAAKojB,MAAIgB,IAAUpkB,KAAKq5B,kBAG5Bxe,QAjEO,SAiEC9e,GAENA,EAAEywB,mBAEJsN,aArEO,SAqEM/9B,GACPiE,KAAKq1B,WAAar1B,KAAKzE,EAAE3N,MAC3BoS,KAAK0P,UAAU4T,KAAKtjB,KAAKzE,EAAE3N,MAAMmP,SAAQ,SAAAgH,GAAA,OAAKA,EAAE+f,MAAQ/f,EAAE+f,MAAK,MAEjE9jB,KAAKw5B,OAAOz9B,EAAEiM,OAAO8J,QAAS/V,IAEhCg+B,SA3EO,SA2EEh+B,GACPiE,KAAK85B,aAAa/9B,IAEpBioB,WA9EO,SA8EIC,GACT,GAAIjkB,KAAKwb,UACP,OAAOxb,KAAKwb,UAAUwI,WAAWC,GAEjC,IAAIv2B,EAAIu2B,EAAWjkB,KAAKq5B,eAAiBr5B,KAAKo5B,gBAC9C,OAAO1rC,GAAKsS,KAAK6R,WAGrBqS,aAtFO,SAsFMD,GACPjkB,KAAKwb,UACPxb,KAAKwb,UAAU0I,aAAaD,IAE5BjkB,KAAKo5B,gBAAkBp5B,KAAK6R,UACxBoS,IACFjkB,KAAKq5B,eAAiBr5B,KAAKo5B,mBAIjClf,SAhGO,WAiGL,OAAOla,KAAKyC,MAEdi1B,WAnGO,WAmGM,WACX,MAAO,CAAC,gBAAE13B,KAAK23B,UAAN,gBACL9X,IAAK,IACLxH,MAAO,gBACP5Q,KAAMzH,KAAK43B,WACXhqC,KAAMoS,KAAK63B,WACXxpC,MAAO2R,KAAK01B,YACZ5jB,QAAS9R,KAAK6R,UACd0Q,SAAUviB,KAAK8tB,WACfjT,QAAS,SAAA9e,GACH,EAAKi6B,SACP,EAAKvS,eAAgB,EAChB1nB,EAAEmO,kBAEX6vB,SAAU/5B,KAAK+5B,UACZ/5B,KAAKo4B,aACN,gBAAE,KAAM,CACVvY,IAAK,SACLxH,MAAOrY,KAAK+R,SAASnkB,KAAO,WAC3B,gBAAE,IAAK,CACRyqB,MAAOrY,KAAKg6B,cAEdh6B,KAAKzE,EAAEyG,KACP,gBAAE,OAAQ,CACRqW,MAAOrY,KAAK+R,SAASnkB,KAAO,SAC3BoS,KAAKzE,EAAEyG,MAAQ,OAGtBw2B,UA/HO,WAgIL,OAAO,gBAAE,QAAS,CAChBngB,MAAO,UACPwC,QAAS7a,KAAK6a,SACb7a,KAAK03B,eAEVuC,YArIO,WAsIL,OAAO,gBAAEpY,GAAY,CACnBxJ,MAAOrY,KAAK+R,SAASnkB,KAAO,UAC5BiyB,IAAK,UACJ7f,KAAK0a,SAEV/X,KA3IO,WA4IL,OAAO3C,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAEimB,SAAW,CAACxhB,KAAKib,WAAU,GAAOjb,KAAKi6B,eAAiBj6B,KAAKib,cAG3GI,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEE9hC,QAAS,SAACgN,EAAG7V,EAAGid,GACd,GAAIpH,GAAU,MAAL7V,GAAmB,KAANA,GAAYA,EAAI,GAAK6V,EAAE1G,MAAM,KAAKnR,OAAS,GAAEwQ,OAAOxO,GACxE,OAAO,EAAKsoC,QAAQrrB,EAAG,CAACjd,KAE5B4I,QAAS,SAACiN,EAAG7V,EAAGid,GACd,GAAIpH,GAAU,MAAL7V,GAAmB,KAANA,GAAYA,EAAI,GAAK6V,EAAE1G,MAAM,KAAKnR,OAAS,GAAEwQ,OAAOxO,GACxE,OAAO,EAAKsoC,QAAQrrB,EAAG,CAACjd,QAIhC0nC,MAdQ,WAeN,MAAO,CACLt/B,SAA6B,MAAnB0J,KAAKzE,EAAEjF,SAAmB0J,KAAKzE,EAAEjF,SAAY0J,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAEjF,SAC1FS,QAA2B,MAAlBiJ,KAAKzE,EAAExE,QAAkBiJ,KAAKzE,EAAExE,QAAWiJ,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAExE,QACvFD,QAA2B,MAAlBkJ,KAAKzE,EAAEzE,QAAkBkJ,KAAKzE,EAAEzE,QAAWkJ,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAEzE,UAG3F8gC,WArBQ,WAsBN,MAAO,YAETC,WAxBQ,WAyBN,OAAO73B,KAAKzE,EAAE3N,MAASoS,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAE3N,MAE5D8nC,YA3BQ,WA6BN,OAAuB,MAAhB11B,KAAKzE,EAAElN,MAAgB,GAAK2R,KAAKzE,EAAElN,OAE5C+pC,WA/BQ,WAgCN,MAAO,CACL3U,cAAezjB,KAAKyjB,cACpB,kBAAmBzjB,KAAKzE,EAAE2+B,cAAgB,EAAI,OAGlDF,WArCQ,WAsCN,MAAO,iBAETP,WAxCQ,WAyCN,OAAOz5B,KAAKzE,EAAElN,OAEhBwjB,UA3CQ,WA4CN,OAAO,GAAEpF,OAAOzM,KAAKzE,EAAE05B,WAAYj1B,KAAKy5B,aAE1C3L,WA9CQ,WA+CN,OAA0B,MAAnB9tB,KAAKzE,EAAEgnB,SAAmBviB,KAAKzE,EAAEgnB,SAAYviB,KAAKwb,WAAaxb,KAAKwb,UAAU+G,UAEvF0T,WAjDQ,WAkDN,OAA0B,MAAnBj2B,KAAKzE,EAAEu8B,SAAmB93B,KAAKzE,EAAEu8B,SAAY93B,KAAKwb,WAAaxb,KAAKwb,UAAUsc,UAEvFlc,WApDQ,WAqDN,MAAO,CACL,SAAU5b,KAAKyjB,iBAIrBjN,QA/Na,WA+NH,WACJxW,KAAKge,MAAMhW,QACbhI,KAAK8X,QAAO,kBAAM,EAAKvc,EAAE05B,cAAY,SAAClxB,GACpC,EAAK41B,WAAW58B,SAAQ,SAACoZ,GACvB,IAAI7nB,EAAI6nB,EAAG6H,MAAMhW,OACb1Z,GAAG,EAAKohB,UAAU4T,KAAK,KAAMh1B,EAAEqc,KAAK5N,SAAQ,SAAAlO,GAAA,OAAKA,EAAE0M,EAAEgnB,UAAYpM,EAAGtE,kBAEzE,CAACigB,WAAW,MC3OR,MCIE,IACblkC,KAAM,cACNqvB,OAAQ,CAACkd,IACTnjB,MAAO,CAAC,OACRpB,QAJa,WAIH,WACR5V,KAAK8X,QAAO,kBAAM,EAAKvc,EAAE05B,cAAY,SAAClxB,EAAG6a,IAC7B,MAAL7a,GAAkB,IAALA,GAAmB,MAAN6a,GAAoB,IAANA,KAC7C,EAAK0K,kBAAoB,EAAKA,iBAAiB8Q,SAC1C,EAAK7+B,EAAE8+B,KAAK,EAAKR,cAG1B7hB,QAAS,CACPuhB,OADO,WAEL,IAAIjsC,EAAI0S,KAAKs6B,aACb,OAAY,GAALhtC,GAAW0S,KAAKzE,EAAE2+B,eAAsB,GAAL5sC,EAAU0S,KAAK3R,MAAQ,IAEnEg1B,QALO,WAML,GAAIrjB,KAAK8tB,WAAY,MAAO,GAC5B,IAAIxgC,EAAI0S,KAAKs6B,aACb,OAAY,GAALhtC,GAAW0S,KAAKzE,EAAE2+B,eAAsB,GAAL5sC,EAAU0S,KAAKge,MAAMja,EAAE1V,MAAQ,IAE3E0rC,SAVO,SAUEh+B,GACPiE,KAAK85B,aAAa/9B,GAClBiE,KAAK65B,UAEPS,WAdO,SAcI//B,GACT,IAAIU,EAAI+E,KAAKyjB,cAAgB,EAAIzjB,KAAK6R,UAAY,EAAI,EACtD,GAAS,MAALtX,EACF,OAAOU,EAET+E,KAAKojB,IAAS,GAAL7oB,GACTyF,KAAKyjB,cAAqB,GAALlpB,GAEvBggC,UAtBO,WAuBL,OAA4B,GAArBv6B,KAAKs6B,cAEdE,WAzBO,WA0BL,OAAOx6B,KAAK0P,UAAU4T,KAAKtjB,KAAKzE,EAAE3N,OAEpCisC,OA5BO,WA6BL,GAAI75B,KAAKzE,EAAE3N,KAAM,CACf,IAAK,IACDD,EADK3B,EAAI,EAAGiP,EAAI+E,KAAKw6B,aAAc9sC,EAAIsS,KAAKu6B,YAAa/sC,EAAIyN,EAAE/O,OAAQ2C,EAAIrB,EAAGitC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAChG3uC,EAAIwB,EAAGxB,IACZ,GAAKiP,EAAEjP,GAAGgqC,SAIV,GAAIh2B,KAAKzE,EAAE8+B,IACT,GAAIr6B,MAAQ/E,EAAEjP,GAAI,CAChB,GAAI0B,EAAG,CACLsS,KAAKs6B,WAAWr/B,EAAEjP,GAAGsuC,cACrB,MAEAr/B,EAAEjP,GAAGsuC,WAAWt6B,KAAK6R,UAAY,EAAI,QAEzB,GAALrkB,IACTG,EAAIqS,WACG/E,EAAEjP,GAAGuP,EAAE8+B,IAChB1sC,EAAIsN,EAAEjP,GAENiP,EAAEjP,GAAG6lB,UAAa6oB,IAAQz/B,EAAEjP,GAAGuuC,YAAeI,IAASF,SAhBvD5rC,IAmBAlB,IAAO8sC,EAAKC,EAAKC,GAAY,GAALntC,IAC1BG,EAAE2sC,WAAWG,GAAM5rC,EAAI,EAAI,EAAI6rC,GAAM7rC,EAAI,EAAI,EAAI,KAIvD+qC,MAzDO,SAyDDr/B,GACJ,GAAKyF,KAAKg2B,SAAV,CACA,IAAI1oC,EAAI0S,KAAKs6B,aACThtC,GAAKiN,IACPyF,KAAKs6B,WAAW//B,GAChByF,KAAK65B,aAIXxe,SAAU,CACRoe,WADQ,WAEN,OAAOz5B,KAAKzE,EAAE8+B,IAAM,UAAYr6B,KAAKzE,EAAElN,QAG3CmoB,QAlFa,cCJF,MCOE,IACb5oB,KAAM,SACN8tB,cAAe,SACfuB,OAAQ,CAACgC,GAAY0D,IACrB3L,MAAO,CAAC,OAAQ,WAAY,eAAgB,gBAAiB,OAAQ,UAAW,MAAO,YACvF2G,OAAQ,CAAC,mBAAoB,eAAgB,oBAAqB,mBAClEgE,QANa,WAOX,MAAO,CACL+O,kBAAmB1wB,KACnBuvB,aAAcvvB,KAAKuvB,aAAe,EAClCjG,iBAAkBtpB,OAGtBtU,KAba,WAcX,MAAO,CACLo2B,OAAO,EACP1uB,SAAS,EACT8oB,OAAQlc,KAAK46B,kBAGjB5iB,QAAS,CACP1H,SADO,WAEL,IAAI6gB,GAAOnxB,KAAKzE,GAAKyE,KAAK4X,QAAQvH,SAClC,IAAY,IAAR8gB,GAAiBv1B,MAAMC,QAAQs1B,IAAQA,EAAIjlC,OAAS,OAAO,GAEjE2uC,aALO,WAML,OAAO,GAAE7+B,OAAOiQ,IAAIjM,KAAKge,MAAMoC,KAAK6C,iBAAiB,qBAAqB,SAAAlf,GAAA,OAAK,GAAEA,OAEnF62B,cARO,WASL,SAAO56B,KAAKsQ,YAAetQ,KAAKmc,WAElC6U,WAXO,WAYL,OAAOhxB,KAAKwvB,gBAAkBxvB,KAAKwvB,gBAAgBwB,aAAehxB,KAAKzE,EAAE+2B,UAE3EC,YAdO,SAcKC,GACVxyB,KAAKzE,EAAE+2B,SAAkB,MAAPE,EAAcA,GAAOxyB,KAAKzE,EAAE+2B,UAEhDwI,SAjBO,WAkBL,QAAO96B,KAAKsQ,eAAuBtQ,KAAKmc,UAAanc,KAAKkc,SAE5DuW,OApBO,SAoBAD,EAAKnqB,IACTrI,KAAKwvB,iBAAmBxvB,MAAMuyB,YAAYC,GACvCxyB,KAAKgxB,eAAiBhxB,KAAKkc,OAC7Blc,KAAKoc,QAAQ/T,GAEbA,GAAMrI,KAAKwY,UAAUnQ,IAGzB0X,aA5BO,SA4BMhkB,IACViE,KAAKzE,EAAEgnB,UAAYviB,KAAKyC,KAAKsc,UAAU5sB,IAAI,SAE9CuwB,aA/BO,SA+BM3mB,GACXiE,KAAKyC,KAAKsc,UAAU9sB,OAAO,SAE7B4oB,QAlCO,SAkCC9e,GACFiE,KAAKzE,EAAEgnB,SACJviB,KAAKge,MAAMyU,QAAWzyB,KAAKge,MAAMyU,OAAO3Y,SAAS/d,EAAEiM,SACtDjM,EAAEywB,kBAGFxsB,KAAKs5B,UAAYt5B,KAAKzE,EAAEw/B,UAC1B/6B,KAAKs5B,SAASM,OAAO55B,KAAKs5B,SAASznB,WACnC7R,KAAKo6B,WAITA,OA9CO,WA+CL,GAAKp6B,KAAKs5B,UAA4C,gBAAhCt5B,KAAKs5B,SAASvnB,SAASnkB,KAA7C,CACA,IAAIoB,EAAIgR,KACR,OAAQhR,EAAIA,EAAE0hC,oBAA0C,WAApB1hC,EAAE+iB,SAASnkB,KACzCoB,EAAEsqC,UAAU,WACd,IAAI5rC,EAAIsB,EAAE6rC,eACNptC,EAAI,CAAC,EAAG,EAAG,GACXD,EAAIE,EAAExB,OACVwB,EAAEqP,SAAQ,SAAAgH,GACR,IAAI9I,EAAI8I,EAAEu1B,SACNr+B,GAAGxN,EAAEwN,EAAEq/B,mBAEbtrC,EAAEsqC,SAASM,MAAMnsC,EAAE,KAAOD,EAAI,EAAIC,EAAE,KAAOD,EAAI,EAAI,GARrC,GAWlB,IAAIE,EAAIsS,KAAKs5B,SAASgB,aAChB,GAAL5sC,GAAUsS,KAAKg7B,UAAUttC,KAE5BstC,UAhEO,SAgEGzgC,GACRyF,KAAK66B,eAAe99B,SAAQ,SAAAgH,GACtBA,EAAEu1B,WACJv1B,EAAEu1B,SAASM,MAAMr/B,GACjBwJ,EAAEi3B,UAAUzgC,QAIlB03B,aAxEO,WAyEL,IAAIjjC,EAAIgR,KACR,OAAQhR,EAAIA,EAAE0hC,oBAAuB1hC,EAAE+iB,SAASnkB,OAASoS,KAAK+R,SAASnkB,KACrEoB,EAAEyjC,QAAO,IAGbxX,UA9EO,WA8EK,WACNuX,EAAMxyB,KAAKgxB,aACXiK,EAAMj7B,KAAK86B,WAActI,EAAMxyB,KAAKzE,EAAE2/B,aAAel7B,KAAKzE,EAAE4/B,cAAiBn7B,KAAKzE,EAAEwhB,KACxF,OAAO,gBAAE,MAAO,gBAAW/c,KAAKmb,WAAYnb,KAAKob,WAAYpb,KAAKoY,QAAS,CACzEpY,KAAK5M,QACL,gBAAE46B,GAAK,CACLtgB,IAAK,iBACL2K,MAAO,mBAET,gBAAE,MAAO,CACPwH,IAAK,SACLxH,MAAO,CAAC,oBAAqBma,EAAM,iBAAmB,mBACtD3X,QAAS,SAAC9e,GACRA,EAAEywB,kBAAmB,EAAKiG,YAG9BzyB,KAAK0a,OAAO0gB,KAAOp7B,KAAK0a,OAAO0gB,MAC/BH,GAAO,gBAAEjN,GAAK,CACZtgB,IAAKutB,EACL5iB,MAAO,gBAET,gBAAE,MAAO,CACPA,MAAO,uBACP1D,MAAO3U,KAAKzE,EAAEyG,MACbhC,KAAK0a,OAAO1Y,KAAOhC,KAAK0a,OAAO1Y,OAAShC,KAAKzE,EAAEyG,SAGtDq5B,UAzGO,WA0GL,IAAIntC,EACAijC,EAAMnxB,KAAKzE,EAAE8U,SACbirB,EAAOt7B,KAAKwb,UAIhB,OAHI5f,MAAMC,QAAQs1B,IAAQmK,IACxBptC,EAAIijC,EAAIllB,KAAI,SAAAwZ,GAAG,OAAK6V,EAAK5gB,OAAOwF,QAAQ,CAACuF,aAEpC,gBAAE,MAAO,CACdld,GAAIvI,KAAK4I,IAAM,OACfiX,IAAK,OACLxH,MAAO,cACPrU,MAAO,CACLu3B,QAASv7B,KAAKzE,EAAE+2B,SAAW,GAAK,SAEjCpkC,IAELyU,KAzHO,WA0HL,MAAO,CAAC3C,KAAKib,YAAajb,KAAKq7B,eAGnChgB,SAAU,CACRigB,KADQ,WAEN,OAAOt7B,KAAKwb,WAEduX,MAJQ,WAKN,OAAO/yB,KAAKwvB,gBAAkBxvB,KAAKwvB,gBAAgBuD,MAAQ/yB,KAAKuvB,aAAe,GAEjFpN,UAPQ,WAQN,OAAOniB,KAAKwb,WAAaxb,KAAKwb,UAAU4G,UAAUpiB,OAEpDob,WAVQ,WAWN,IAAIoX,EAAMxyB,KAAKgxB,aACXwK,EAAMx7B,KAAK86B,WACXW,EAAKz7B,KAAKzE,EAAEgnB,SACZ5K,EAAO,CACTU,MAAO,CACL,OAAQrY,KAAKmiB,UACb,OAAQsZ,EACR,WAAYD,EACZ,aAAcA,GAAMhJ,EACpB,aAAcgJ,IAAOhJ,GAEvBxuB,MAAO,gBAAkB,GAAEoI,SAAsB,GAAbpM,KAAK+yB,QAO3C,OALI/yB,KAAKwb,YACP7D,EAAKoI,aAAe/f,KAAK+f,aACzBpI,EAAK+K,aAAe1iB,KAAK0iB,aACzB/K,EAAK,UAAD,OAAW8jB,EAAG,UAAU,KAAQz7B,KAAK6a,SAEpClD,IAGXnB,QAjLa,WAiLH,WACJxW,KAAKzE,EAAE+2B,UAAUtyB,KAAKyyB,QAAO,GAC7BzyB,KAAKmiB,WAAWniB,KAAKwb,UAAUwW,YAAYhyB,MAC3CA,KAAKs5B,UACPt5B,KAAKwY,WAAU,WACR,EAAKsiB,YAAe,EAAK9c,MAAMoC,KAAK1c,oBACvC,EAAK02B,cC5LF,I,UAAA,ICKE,IACbxsC,KAAM,YACNqvB,OAAQ,CAAC0X,IACTzK,MAAO,CAAC,cACRlT,MAAO,CAAC,QAAS,OAAQ,SAAU,cAAe,cAAe,OAAQ,QACzEtrB,KALa,WAMX,MAAO,CACLgwC,aAAa,EACbtO,UAAU,IAGdpV,QAAS,CACPC,UADO,WAEL,MAAO,CACL0jB,MAAO,EACPtvB,KAAM,EACNlG,OAAQ,EACRy1B,YAAa,EACbnf,KAAM,SACNrsB,IAAK,EACL4sB,OAAQ,WAGZoF,UAZO,SAYG7nB,GACR,OAAOyF,KAAK67B,aAAethC,EAAEyH,MAE/B85B,UAfO,SAeG//B,EAAG/P,GACX,IAAIiP,GAAKjP,EAAI,GAAKgU,KAAKzE,EAAEogC,MACrB1gC,GAAK+E,KAAKzE,EAAE4K,SACdpK,EAAEud,QAAU,aACZvd,EAAE1N,MAAQ4M,EACV+E,KAAKoZ,QAAQrd,EAAGd,KAGpB4yB,UAvBO,SAuBG9xB,GACRiE,KAAKotB,UAAW,GAElB2O,YA1BO,SA0BKhgC,GACV,IAAIgI,EAAI/G,KAAKC,IAAI,EAAG,GAAEP,OAAOsD,KAAKge,MAAMge,UAAU3tC,QAClD2R,KAAK87B,UAAU//B,EAAGgI,IAEpBu0B,YA9BO,SA8BKtsC,EAAGsC,EAAG2tC,EAAIR,GAAI,WACxB,OAAO,gBAAE,SAAU,CACjBpjB,MAAO,CAAC,iCAAD,iBAAoC,QAAS/pB,IAAM2tC,GAAMjwC,GAAKgU,KAAK67B,YAAa,OAAQJ,GAAKQ,EAAKA,IACzG1Z,SAAUkZ,EACV5gB,QAAS,SAAA9e,GAAA,OAAK,EAAK+/B,UAAU//B,EAAG/P,KAC/BsC,IAAM2tC,EAAK,GAAKjwC,KAErBgvB,WArCO,WAsCL,MAAuB,WAAhBhb,KAAKzE,EAAEkhB,KAAoBzc,KAAKk8B,mBAChB,WAAhBl8B,KAAKzE,EAAEkhB,KAAoBzc,KAAKm8B,mBAChCn8B,KAAKo8B,oBAEdjN,aA1CO,WA0CQ,WACb,MAAO,CAAC,gBAAET,GAAQ,CAChBrW,MAAO,kCACP0E,KAAM,uBACNwF,SAA8B,GAApBviB,KAAK67B,YACflnB,MAAO,GAAEtJ,IAAIhX,UAAUI,KACvBomB,QAAS,SAAA9e,GAAA,OAAK,EAAK+/B,UAAU//B,EAAG,EAAK8/B,YAAc,MACjD,gBAAEnN,GAAQ,CACZrW,MAAO,kCACP0E,KAAM,wBACNwF,SAAUviB,KAAK67B,aAAe77B,KAAKq8B,QACnC1nB,MAAO,GAAEtJ,IAAIhX,UAAUG,KACvBqmB,QAAS,SAAA9e,GAAA,OAAK,EAAK+/B,UAAU//B,EAAG,EAAK8/B,YAAc,QAGvD9N,UAzDO,WAyDK,WACNzgC,EAAI,GASR,GARI0S,KAAKzE,EAAEqgC,aACTtuC,EAAEd,KAAK,gBAAEkiC,GAAQ,CACfrW,MAAO,yDACPwH,IAAK,OACL7d,KAAMhC,KAAK67B,YAAc,IAAM77B,KAAKq8B,QACpCxhB,QAAS,SAAA9e,GAAA,OAAK,EAAK8xB,UAAU9xB,OAG7BiE,KAAKotB,SAAU,CAEjB,IADA,IAAInyB,EAAI,GADS,WAERjP,EAAOswC,GAAkCrhC,EAAEzO,KAAK,gBAAEkiC,GAAQ,CAAC1sB,KAAMhW,EAAGqnC,QAAS,SAAAt3B,GAAA,OAAK,EAAK+/B,UAAU//B,EAAG/P,QAApGA,EAAI,EAAGswC,EAAKt8B,KAAKq8B,QAASrwC,GAAKswC,EAAItwC,IAA5C,EAASA,EAAOswC,GAChBhvC,EAAEd,KAAK,gBAAE6hC,GAAM,CAACvnB,KAAM,CAACkB,OAAQ,kBAAM,EAAKgW,MAAMsP,MAAM7Y,SAAU,IAAKgX,OAAQ,GAAIgD,QAAS,kBAAM,EAAKrB,UAAW,IAAQ,CAAClN,QAAS,kBAAMjlB,MAE1I,OAAO3N,GAET6uC,iBA1EO,WA2EL,OAAOn8B,KAAK+tB,YAAY5kB,OAAOnJ,KAAKmvB,iBAEtC+M,iBA7EO,WA8EL,IAAIjhC,EAAI+E,KAAKmvB,eAEb,OADAl0B,EAAE7N,OAAF,MAAA6N,EAAC,CAAQ,EAAG,GAAX,sBAAiB+E,KAAK+tB,eAChB9yB,GAETmhC,iBAlFO,WAkFY,WACX9uC,EAAI,GACNgvC,EAAKt8B,KAAKq8B,QACVE,EAAKv8B,KAAK67B,YACVhtC,EAAI,GAAE6N,OAAOsD,KAAKzE,EAAEqgC,aACpBn/B,EAAIO,KAAKC,IAAI,EAAGs/B,EAAKv/B,KAAKmC,KAAKtQ,EAAI,GAAK,GACxCrB,EAAIwP,KAAKw/B,IAAIF,EAAK,EAAG7/B,EAAI5N,GACzBlB,EAAIH,EAAIiP,EAAI5N,EAAImO,KAAKC,IAAI,EAAGzP,EAAIqB,GAAK4N,EACpCuD,KAAKzE,EAAEkhC,aACVnvC,EAAEd,KAAKwT,KAAKs4B,YAAY,EAAGt4B,KAAK08B,WAAY18B,KAAK28B,UAAiB,GAANJ,IAE9DjvC,EAAEd,KAAKwT,KAAKs4B,YAAYiE,EAAK,EAAGv8B,KAAK48B,UAAW58B,KAAK68B,SAAgB,GAANN,IAC/D,IAAK,IAAIvwC,EAAI2B,EAAG3B,EAAIwB,EAAGxB,IACrBsB,EAAEd,KAAKwT,KAAKs4B,YAAYtsC,IAyB1B,OAvBAsB,EAAEd,KAAKwT,KAAKs4B,YAAYiE,EAAK,EAAGv8B,KAAK88B,UAAW98B,KAAK+8B,SAAUR,GAAMv8B,KAAKq8B,UACrEr8B,KAAKzE,EAAEkhC,aACVnvC,EAAEd,KAAKwT,KAAKs4B,YAAYgE,EAAIt8B,KAAKg9B,UAAWh9B,KAAKi9B,SAAUV,GAAMv8B,KAAKq8B,UAEpEr8B,KAAKzE,EAAE5J,OACTrE,EAAEd,KAAK,gBAAE,OAAQ,CACf6rB,MAAO,qBACN,GAAEhN,IAAI3Z,KACTpE,EAAEd,KAAK,gBAAE,QAAS,CAChB6rB,MAAO,uBACPwH,IAAK,YACLqY,QAAS,SAAAn8B,GAAA,OAAK,EAAK2/B,aAAc,GACjCvD,OAAQ,SAAAp8B,GAAA,OAAK,EAAK2/B,aAAc,GAChCwB,UAAW,SAAAnhC,GAAA,OAAkB,IAAbA,EAAEohC,SAAiB,EAAKpB,YAAYhgC,OAEtDzO,EAAEd,KAAK,gBAAE,SAAU,CACjB6rB,MAAO,yCACPwC,QAAS7a,KAAK+7B,aACb,OACHzuC,EAAEd,KAAK,gBAAE,OAAQ,CACf6rB,MAAO,uBACN,GAAEhN,IAAIjX,QAEJ9G,GAET8vC,eA1HO,WA2HL,OAAOp9B,KAAKo8B,qBAGhB/gB,SAAU,CACRwgB,YADQ,WAEN,OAAQ7+B,KAAKmC,KAAKa,KAAKzE,EAAE4K,OAASnG,KAAKzE,EAAEogC,QAAU,GAAK,GAE1DU,QAJQ,WAKN,OAAOr/B,KAAKmC,KAAKa,KAAKzE,EAAE8Q,KAAOrM,KAAKzE,EAAEogC,QAAU,GAElDe,WAPQ,WAQN,MAAuB,WAAhB18B,KAAKzE,EAAEkhB,KAAoB,GAAEpR,IAAIhX,UAAUC,MAAQ,IAE5D0oC,UAVQ,WAWN,MAAuB,WAAhBh9B,KAAKzE,EAAEkhB,KAAoB,GAAEpR,IAAIhX,UAAUE,KAAO,IAE3DuoC,UAbQ,WAcN,MAAuB,WAAhB98B,KAAKzE,EAAEkhB,KAAoB,GAAEpR,IAAIhX,UAAUG,KAAO,IAE3DooC,UAhBQ,WAiBN,MAAuB,WAAhB58B,KAAKzE,EAAEkhB,KAAoB,GAAEpR,IAAIhX,UAAUI,KAAO,IAE3DkoC,UAnBQ,WAoBN,MAAuB,SAAhB38B,KAAKzE,EAAEkhB,KAAkB,sBAAwB,IAE1DwgB,SAtBQ,WAuBN,MAAuB,SAAhBj9B,KAAKzE,EAAEkhB,KAAkB,qBAAuB,IAEzDsgB,SAzBQ,WA0BN,MAAuB,SAAhB/8B,KAAKzE,EAAEkhB,KAAkB,sBAAwB,IAE1DogB,SA5BQ,WA6BN,MAAuB,SAAhB78B,KAAKzE,EAAEkhB,KAAkB,qBAAuB,IAEzDb,WA/BQ,WAgCN,MAAQ,CACJ,2BACA,UAAY5b,KAAKzE,EAAEkhB,KACnBzc,KAAKshB,iBACLthB,KAAK07B,aAAe,gBClLjB,I,UAAA,ICEE,IACb9tC,KAAM,UACNqvB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,gBAAiB,eAAgB,UAAW,QAAS,SAAU,YACvE2G,OAAQ,CAAC,iBACT/H,QALa,WAKH,WACR5V,KAAK8X,OAAO,YAAY,SAAC/T,GACN,mBAANA,EAAiB,EAAKxI,EAAE+2B,SAAWvuB,EAClB,MAAnB,EAAKxI,EAAE+2B,WAAkB,EAAK/2B,EAAE+2B,UAAW,KACnD,CAACR,WAAW,KAEjB9Z,QAAS,CACPya,OADO,SACAD,GACLxyB,KAAKzE,EAAE+2B,SAAkB,MAAPE,GAAexyB,KAAKzE,EAAE+2B,SAAWE,EACnD,IAAI6K,EAAYr9B,KAAKzE,EAAE+hC,OAASt9B,KAAKyC,KAAKiB,mBAAqB1D,KAAKyC,KAAKc,uBACrE85B,GACF,GAAElyB,EAAEkyB,GAAWE,YAAY,qBAAsBv9B,KAAKzE,EAAE+2B,WAI5DkL,UATO,SASGzhC,GAAG,WACP0hC,EAAWz9B,KAAKyC,KAAKc,uBACrBm6B,EAAW19B,KAAKyC,KAAKiB,mBACzB,GAAI+5B,GAAYC,EAAU,CACxB,IAWIlJ,EACAmJ,EAZAC,EAAO59B,KAAK69B,WACZR,EAAYr9B,KAAKzE,EAAE+hC,OAASI,EAAWD,EACvCK,EAAQ,GAAEz0B,OAAOtN,GACjBgiC,EAAQ,GAAEx0B,OAAOxN,GACjBiiC,EAAUJ,EAAO,MAAQ,OACzBK,EAAWL,EAAO,SAAW,QAC7BM,EAAaN,EAAO,UAAY,UAChCO,EAAUP,EAAOG,EAAQD,EACzBM,EAAS,GAAEp4B,IAAIy3B,GAAUO,GACzBK,EAAS,GAAEr4B,IAAI03B,GAAUE,EAAO,SAAW,SAAW,EACtDU,EAAU,GAAEtiC,OAAOoX,KAAK,GAAEpN,IAAIhG,KAAKge,MAAMjI,SAAU,CAAC,QAAS,SAAU,MAAO,SAGlF,GAAEvM,QAAO,SAACzN,GACH4hC,IACHA,EAAO,GAAExyB,EAAF,gFAAoF9G,IACzFi6B,GAASnsB,SAASliB,SAAS2R,OAE/B4yB,EAAM,GAAE33B,SAASyhC,EAAQN,GAAWjiC,EAAEmiC,GAAcC,EAASC,EAAQC,GACrEV,EAAKt5B,IAAL,mBACG25B,EAAUxJ,OAEZ,SAACz4B,EAAGwa,GACL,GAAIA,GAASonB,EAAM,CACjBA,EAAK1rC,SACL,IAAIoa,GAAQ,EAAK9Q,EAAE+2B,SAAW,GAAEtsB,IAAIq3B,GAAWY,GAAY,IAAM,EAAK1iC,EAAE+hC,OAAS,GAAK,IAAMa,EAC1F3J,GACEnoB,GAAQ,EACV,EAAKomB,QAAO,IAEP,EAAKl3B,EAAE+2B,UAAU,EAAKG,QAAO,GAClC,GAAEtnB,EAAEkyB,GAAWh5B,IAAf,mBACG45B,EAAW5xB,QAIjBtQ,KAGPif,WApDO,WAoDM,WACP9sB,EAAI,GACJgtC,EAAel7B,KAAKzE,EAAE2/B,cAAgBl7B,KAAKzE,EAAE4/B,cAC7CA,EAAgBn7B,KAAKzE,EAAE4/B,eAAiBD,EAW5C,OAVIA,GACFhtC,EAAE1B,KAAKwT,KAAK2a,UAAU3a,KAAKzE,EAAE+2B,SAAW4I,EAAeC,EAAe,gBAAgB,kBAAM,EAAK1I,aAE/FzyB,KAAKzE,EAAEwa,SACT7nB,EAAE1B,KAAK,gBAAE,MAAO,CACdqzB,IAAK,UACLxH,MAAO,kBACPvC,YAAa9V,KAAKw9B,aAGftvC,IAGXmtB,SAAU,CACRwiB,WADQ,WAEN,MAA8B,eAAvB79B,KAAK4hB,eAEdxG,WAJQ,WAKN,MAAO,CACL/C,MAAO,CAAC,YAAcrY,KAAK69B,WAAa,WAAa,cAAe,CAClE,WAAY79B,KAAKzE,EAAE+hC,YAK3B9mB,QA5Fa,WA6FNxW,KAAKzE,EAAE+2B,UACVtyB,KAAKyyB,QAAO,KChGL,I,UAAA,ICIE,IACb7kC,KAAM,WACNqvB,OAAQ,CAACgC,GAAYyC,IACrB1K,MAAO,CAAC,gBAAiB,eAAgB,WAAY,QAAS,UAC9DgB,QAAS,CACPC,UADO,WAEL,MAAO,CACLqa,UAAU,EACVtV,OAAQ,WAGZyV,OAPO,WAOU,IAAV12B,IAAU,yDACXy2B,EAAmB,mBAANz2B,EAAkBA,GAAKiE,KAAKzE,EAAE+2B,SAC/CtyB,KAAKzE,EAAE+2B,SAAWE,EAClB,GAAErnB,EAAEnL,KAAKyC,MAAM87B,UAAU,aAAa9L,OAAOD,IAE/CxX,WAZO,WAaL,IAAIwX,EAAMxyB,KAAKzE,EAAE+2B,SACb2I,EAAMzI,EAAMxyB,KAAKzE,EAAE2/B,aAAel7B,KAAKzE,EAAE4/B,cAC7C,MAAO,CAACF,GAAO,gBAAEjN,GAAK,CACpBtgB,IAAKutB,EACL5iB,MAAO,kBACL,gBAAE,MAAO,CAACA,MAAO,iBAAkBrY,KAAK0a,OAAOwF,cAGvD7E,SAAU,CACRD,WADQ,WAEN,IAAIoX,EAAMxyB,KAAKzE,EAAE+2B,SACjB,MAAO,CACLja,MAAO,CAAC,yBACR,CACE,aAAcma,EACd,cAAeA,GAEjBxyB,KAAKshB,kBACLzG,QAAS7a,KAAKyyB,UAIpBjc,QAvCa,WAwCNxW,KAAKzE,EAAE+2B,UACVtyB,KAAKyyB,QAAO,KC7CL,I,UAAA,ICEE,IACb7kC,KAAM,UACNqvB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,MAAO,UACftrB,KAJa,WAKX,MAAO,CACL8yC,SAAS,IAGbxmB,QAAS,CACPymB,YADO,WAEL,IAAIC,EAAW,GAAEtjC,MAAM4E,KAAKzE,EAAEmS,IAAK,MAAQ1N,KAAKzE,EAAEmS,IAC9CoG,EAAW,GAAE9Y,QAAQ0jC,EAAU,KAAK,IAASA,EAC7C5J,EAAS,GAAE95B,QAAQ8Y,EAAU,KAAK,GACtC,OAAOghB,EAAS6J,SAAS7qB,GAAY,aAEvCkH,WAPO,WAOM,WACX,MAAO,CAAC,gBAAE,QAAS,CACjB3C,MAAO,8BACPwH,IAAK,KACLnS,IAAK1N,KAAKzE,EAAEmS,IACZkxB,OAAQ5+B,KAAKzE,EAAEqjC,OACfC,OAAQ,SAAA9iC,GAAA,OAAK,EAAKyiC,SAAU,GAC5BM,QAAS,SAAA/iC,GAAA,OAAK,EAAKyiC,SAAU,GAC7BO,UAAU,EACV,sBAAsB,EACtB,aAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,uBAAwB,KACxB,uBAAwB,KACxB,8BAA8B,IAC5B,gBAAE,MAAO,CACX1mB,MAAO,0CACPhW,UAAW,+BACXwY,QAAS,SAAA9e,GACP,IAAIjO,EAAI,EAAKkwB,MAAMghB,GACnBlxC,EAAEmxC,OAASnxC,EAAEoxC,OAASpxC,EAAEqxC,cAKhC9jB,SAAU,CACRO,WADQ,WAEN,MAAO,CAAC,sBAAuB,CAAC,SAAU5b,KAAKw+B,aC9CxC,I,UAAA,ICEE,IACb5wC,KAAM,aACNqvB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,UAAW,QAAS,QAC5BgB,QAAS,CACPgD,WADO,WAEL,IAAI5c,EAAI,GAAE1B,OAAOsD,KAAKzE,EAAE8kB,SACxB,MAAO,CACLrgB,KAAKzE,EAAEyG,MAAQ,gBAAE,OAAQ,CACvBqW,MAAO,mBACNrY,KAAKzE,EAAEyG,MACV,gBAAE,MAAO,CACPqW,MAAO,iBACPrU,MAAO,CACLoC,MAAO,GAAF,OAAKhI,EAAL,OAEN,gBAAE,MAAO,CACVia,MAAO,sCACPrU,MAAO,CACLoC,MAAO,GAAF,OAAQ,GAAHhI,EAAKA,EAAG,IAAQA,EAArB,OAEN4B,KAAKzE,EAAEyG,MAAQ,gBAAE,OAAQ,CAC1BqW,MAAO,mBACNrY,KAAKzE,EAAEyG,WAIhBqZ,SAAU,CACRO,WADQ,WAEN,GAAI5b,KAAKzE,EAAEod,MAET,IADA,IAAIpe,EAAIyF,KAAKzE,EAAEod,MAAMtb,MAAM,KAClBrR,EAAIuO,EAAErO,OAAS,EAAGF,GAAK,EAAGA,IACjC,GAAI,GAAE0Q,OAAOsD,KAAKzE,EAAE8kB,UAAY,GAAE3jB,OAAOnC,EAAEvO,IAAK,MAAO,KAAOuO,EAAEvO,MClC7D,I,UAAA,I,GCMkE,gBAA6B,KAA1BqsB,MAAM,iBAAe,S,GAMtB,gBAA4B,KAAzBA,MAAM,gBAAc,S,GAkBlG,gBAAyC,OAApCA,MAAM,yBAAuB,S,IAG/BA,MAAM,mB,IAEuCA,MAAM,uB,IAM7CA,MAAM,wB,IAOVA,MAAM,sB,IAQNA,MAAM,sB,IAQNA,MAAM,sB,iPApEjB,gBAiFa,EAjFb,gBAiFa,EAjFiB,YAAGA,MAAK,4BAAiC9c,EAAEkhB,Q,0BACvE,iBAgDa,CAhD8B,EAAA2iB,S,0CAA3C,gBAgDa,G,MAhDD/mB,MAAM,mB,0BAChB,iBAiCe,CAjCf,gBAiCe,GAjCAA,MAAK,8BAAkC,EAAAiD,MAAM/V,GAAGpV,OAAOC,MAAO4sB,OAAO,SAASuE,MAAM,U,0BACjG,iBAC8B,CADuD,QAAN,EAAAhmB,EAAEkhB,M,kBAAjF,gBAC8B,K,MAD3BpE,MAAM,gEACN,QAAK,+BAAE,EAAAgnB,WAAS,S,uBACnB,gBAA+F,KAA5FhnB,MAAM,2DAA4D,QAAK,+BAAE,EAAAgnB,WAAS,OACrF,gBAwBe,GAxBAhnB,MAAK,kCAAsC,EAAAiD,MAAM/V,GAAGpV,OAAOC,O,0BACxE,iBAAuG,CAAvG,gBAAuG,OAAlGioB,MAAM,8BAA8BwH,IAAI,UAAW,QAAK,+BAAE,EAAAyf,iBAAgB,UAAQ,EAAAC,U,sBACrC,EAAAC,a,kBAAlD,gBAUW,G,MAVDnnB,MAAM,iBAAiBjS,MAAM,KAAyB6M,QAAS,EAAA+K,MAAMyhB,QAAUC,aAAW,EACjGvnB,aAAa,EAAOrR,KAAI,QAAW,EAAAkX,MAAMyhB,QAAO,eAAoB,QAAK,+BAAE,EAAAD,YAAW,Q,0BACvF,iBAAwG,CAAxG,gBAAwG,OAAnGnnB,MAAM,4BAA6B,QAAK,+BAAE,EAAAsnB,kBAAgB,M,CAAM,KACrE,gBAIS,GAJDt5B,OAAO,I,eAAoB,EAAAu5B,mB,0BAC5B,iBAA2B,E,oBAAhC,gBAEgD,6BAF5B,EAAAJ,aAAW,SAAnB/Z,G,yBAAZ,gBAEgD,OAD7CpN,MAAK,qCAAyCoN,GAAQ,EAAAoa,GAAGhiC,gBACzD,QAAK,mBAAE,EAAAiiC,iBAAiBra,K,gBAASA,GAAI,mB,qCAE1C,gBACS,GADDpN,MAAM,4BAA6B,QAAK,+BAAE,EAAAsnB,iBAAgB,M,0BAAK,iBAA4B,CAA5B,O,6DAGrD,QAAN,EAAApkC,EAAEkhB,M,kBAAhB,gBAES,G,MAFuBpE,MAAM,+BAA+BwH,IAAI,WAAY,QAAO,EAAAkgB,e,0BAC1F,iBAAa,C,gCAAX,EAAAC,WAAS,O,4CAEqC,EAAAC,c,kBAAlD,gBAOW,G,MAPD5nB,MAAM,iBAAiBjS,MAAM,KAA0B6M,QAAS,EAAA+K,MAAMkiB,SAAWR,aAAW,EACnGvnB,aAAa,EAAOrR,KAAI,QAAW,EAAAkX,MAAMkiB,SAAQ,eAAoB,QAAK,+BAAE,EAAAD,aAAY,Q,0BACzF,iBAIS,CAJT,gBAIS,GAJD55B,OAAO,KAAG,C,yBACX,iBAA4B,E,oBAAjC,gBAEiD,6BAF7B,EAAA45B,cAAY,SAApBxa,G,yBAAZ,gBAEiD,OAD9CpN,MAAK,qCAAyCoN,GAAQ,EAAAoa,GAAG/hC,WAAQ,IACjE,QAAK,mBAAE,EAAAqiC,kBAAkB1a,K,gBAASA,GAAI,mB,6FAI/C,gBAA+F,KAA5FpN,MAAM,4DAA6D,QAAK,+BAAE,EAAAgnB,UAAS,OACA,QAAN,EAAA9jC,EAAEkhB,M,kBAAlF,gBAC6B,K,MAD1BpE,MAAM,iEACN,QAAK,+BAAE,EAAAgnB,UAAS,S,uBACnB,O,kBAEF,gBAAyB,iBACzB,gBAWM,MAXN,GAWM,CAVkB,QAAN,EAAA9jC,EAAEkhB,M,oBAChB,gBAAwF,gCAApE,EAAApR,IAAI9R,SAASO,aAAW,SAAhC2rB,G,yBAAZ,gBAAwF,MAAxF,GAAwF,gBAAZA,GAAI,M,kDAElF,gBAMM,6BANc,EAAA2a,UAAQ,SAAhB3a,G,yBAAZ,gBAMM,OANyB9Q,MAAO8Q,EAAK9Q,MACxC0D,MAAK,2BAA+BoN,EAAKsR,QAAUtR,EAAKlD,SAAQ,QAAWkD,EAAK4a,IAAG,OAAU5a,EAAKlD,WAClG,QAAK,mBAAE,EAAAuZ,UAAUwE,EAAO7a,K,CACzB,gBAEO,oBAFAA,KAAMA,IAAb,iBAEO,CADL,gBAAqD,MAArD,GAAqD,gBAAjBA,EAAKzjB,MAAI,Q,8CAKjC,EAAAu+B,S,kBAApB,gBAyBe,G,MAzBcloB,MAAM,mB,0BACjC,iBAOa,EAPc,IAAT,EAAA+O,W,kBAAlB,gBAOa,G,MAPwB/O,MAAM,2CAA2CjS,MAAM,K,0BAC1F,iBAAkD,CAAlD,gBAAkD,MAAlD,GAAkD,gBAAhB,EAAAiF,IAAIjS,MAAI,GAC1C,gBAIc,GAJDif,MAAM,uBAAuBwH,IAAI,OAAQwF,QAAS,EAAA+B,UAAY5F,UAAU,EAAOgf,YAAU,EACpGC,cAAY,QAAQp6B,OAAO,K,0BACY,iBAAyB,E,oBAAhE,gBAC+D,6BADZ,EAAAq6B,cAAY,SAAjB1iC,G,yBAA9C,gBAC+D,GADrDqa,MAAM,uBAAkD1pB,IAAKqP,EAAIgE,KAAM,EAAAsZ,MAAM5f,OAAOsC,GAC3FukB,SAAU,EAAAoe,eAAe3iC,GAAK,QAAK,mBAAE,EAAA4iC,UAAUN,EAAOtiC,K,0GAGhC,IAAX,EAAAypB,a,kBAAlB,gBAOa,G,MAP0BpP,MAAM,6CAA6CjS,MAAM,K,0BAC9F,iBAAoD,CAApD,gBAAoD,MAApD,GAAoD,gBAAlB,EAAAiF,IAAIhS,QAAM,GAC5C,gBAIc,GAJDgf,MAAM,uBAAuBwH,IAAI,SAAUwF,QAAS,EAAAoC,YAAcjG,UAAU,EAAOgf,YAAU,EACxGC,cAAY,QAAQp6B,OAAO,K,0BACY,iBAA2B,E,oBAAlE,gBACmE,6BADhB,EAAAw6B,gBAAc,SAAnBpzC,G,yBAA9C,gBACmE,GADzD4qB,MAAM,uBAAoD1pB,IAAKlB,EAAIuU,KAAM,EAAAsZ,MAAM5f,OAAOjO,GAC7F80B,SAAU,EAAAue,iBAAiBrzC,GAAK,QAAK,mBAAE,EAAAszC,YAAYT,EAAO7yC,K,0GAGpC,IAAX,EAAAq6B,a,kBAAlB,gBAOa,G,MAP0BzP,MAAM,6CAA6CjS,MAAM,K,0BAC9F,iBAAoD,CAApD,gBAAoD,MAApD,GAAoD,gBAAlB,EAAAiF,IAAI/R,QAAM,GAC5C,gBAIc,GAJD+e,MAAM,uBAAuBwH,IAAI,SAAUwF,QAAS,EAAAyC,YAActG,UAAU,EAAOgf,YAAU,EACxGC,cAAY,QAAQp6B,OAAO,K,0BACY,iBAA2B,E,oBAAlE,gBACmE,6BADhB,EAAA26B,gBAAc,SAAnB1zC,G,yBAA9C,gBACmE,GADzD+qB,MAAM,uBAAoD1pB,IAAKrB,EAAI0U,KAAM,EAAAsZ,MAAM5f,OAAOpO,GAC7Fi1B,SAAU,EAAA0e,iBAAiB3zC,GAAK,QAAK,mBAAE,EAAA4zC,YAAYZ,EAAOhzC,K,2IAI/C,EAAAomB,S,kBAApB,gBAIe,G,MAJe2E,MAAK,8BAAkC,EAAAiD,MAAM/V,GAAGpV,OAAOC,MAAOmxB,MAAM,UAChGvE,OAAO,U,0BACP,iBAAsF,CAAtF,gBAAsF,OAAjF3E,MAAM,+BAAgC,QAAK,gCAAE,EAAA8oB,UAAA,EAAAA,SAAA,sB,gBAAY,EAAA91B,IAAI9R,SAASC,KAAG,GAC9E,gBAAyF,OAApF6e,MAAM,mCAAoC,QAAK,gCAAE,EAAA+oB,cAAA,EAAAA,aAAA,sB,gBAAgB,EAAA/1B,IAAIzZ,SAAO,O,iEAatE,QACbhE,KAAM,aACNqvB,OAAQ,CAACgC,IACTiL,MAAO,CAAC,aAAc,UACtBlT,MAAO,CAAC,QAAS,WAAY,WAAY,UAAW,MAAO,OAAQ,SAAU,UAAW,KAAM,QAC5F,aAAc,eAAgB,eAAgB,cAAe,gBAAiB,iBAEhFtrB,KAPa,WAQX,IAAIm0C,EAAK7/B,KAAKqhC,aACd,MAAO,CACLxB,KACAyB,YAAa,KACb9B,YAAa,KACbS,aAAc,OAGlB9gB,MAAO,CACL9wB,MADK,SACC0V,GACJ/D,KAAK6/B,GAAK7/B,KAAKqhC,cAEjBxB,GAJK,SAIF0B,EAAI3iB,GACL,IAAI4iB,EAAKD,EAAG1jC,cACR4jC,EAAK7iB,EAAG/gB,cACZ,GAAoB,SAAhBmC,KAAKzE,EAAEkhB,KAAiB,CAC1B,IAAI5tB,GAAK,GAAK2yC,GAAIryC,OAAO,GAAI,GACzBrB,GAAK,GAAK2zC,GAAItyC,OAAO,GAAI,GACzBN,GAAKf,GAAGkS,KAAKoZ,QAAQ,SAAUmoB,OACV,UAAhBvhC,KAAKzE,EAAEkhB,MAAoC,SAAhBzc,KAAKzE,EAAEkhB,KACvC+kB,GAAMC,GAAIzhC,KAAKoZ,QAAQ,SAAUmoB,GACZ,SAAhBvhC,KAAKzE,EAAEkhB,OACX+kB,GAAMC,GAAQF,EAAGzjC,YAAc8gB,EAAG9gB,YAAakC,KAAKoZ,QAAQ,SAAUmoB,KAG/Elc,QAjBK,SAiBGqc,GACN,GAAKA,EAAL,CACA,IAAIH,EAAmB,kBAAPG,EAAkB,GAAE9jC,UAAU8jC,EAAI1hC,KAAK2hC,WAAaD,EAChE9iB,EAAK5e,KAAK6/B,GACV2B,EAAKD,EAAG1jC,cACR4jC,EAAK7iB,EAAG/gB,cACZ,GAAoB,SAAhBmC,KAAKzE,EAAEkhB,KAAiB,CAC1B,IAAI5tB,GAAK,GAAK2yC,GAAIryC,OAAO,GAAI,GACzBrB,GAAK,GAAK2zC,GAAItyC,OAAO,GAAI,GACzBN,GAAKf,IAAGkS,KAAK6/B,GAAK0B,OACG,UAAhBvhC,KAAKzE,EAAEkhB,MAAoC,SAAhBzc,KAAKzE,EAAEkhB,KACvC+kB,GAAMC,IAAIzhC,KAAK6/B,GAAK0B,GACC,SAAhBvhC,KAAKzE,EAAEkhB,OACX+kB,GAAMC,GAAQF,EAAGzjC,YAAc8gB,EAAG9gB,aAAakC,KAAK6/B,GAAK0B,OAIpEvpB,QAAS,CACPC,UADO,WAEL,IAAIhd,EAAI+E,KAAKuoB,QAAU,GACvB,MAAO,CACL9L,KAAY,SAANxhB,EAAe,OAASA,EAAEoa,SAAS,QAAUpa,EAAEoa,SAAS,MAAQ,QAAUpa,EAC7Eoa,SAAS,MAAQ,OAAS,SAGjCgsB,WARO,WASL,IAAIxB,EAAK7/B,KAAK3R,MACVuzC,EAAK5hC,KAAKnJ,SACVgrC,EAAK7hC,KAAKpJ,SACV6F,EAAIuD,KAAKuoB,QAAU,GASvB,OARIqZ,KAAQ/B,GAAMA,EAAK+B,KACrB/B,EAAK+B,GAEHC,KAAQhC,GAAMA,EAAKgC,KACrBhC,EAAKgC,GAEPhC,EAAKA,EAAK,GAAEjiC,UAAUiiC,EAAIpjC,GAAK,IAAI6B,KAC9B0B,KAAK3R,OAAO2R,KAAK8hC,eAAejC,GAC9BA,GAETkC,QAvBO,SAuBCp0C,GACN,IAAIyQ,EAAIzQ,EAAEuR,SACV,OAAY,GAALd,EAAS,EAAIA,EAAI,GAE1B0jC,eA3BO,SA2BQn0C,GACb,IAAIq0C,EAAyB,MAApBhiC,KAAKiiC,YAAsBt0C,EAAEsQ,WAAarO,WAAWoQ,KAAKiiC,aACnE,GAAIjiC,KAAKkiC,WAAY,CACnB,IAAI96B,EAAK,GAAE+E,YAAYnM,KAAKkiC,YACvB96B,EAAGiO,SAAS2sB,KAAKA,EAAK56B,EAAG,IAEhCzZ,EAAEkR,SAASmjC,GACX,IAAIG,EAA2B,MAAtBniC,KAAKoiC,cAAwBz0C,EAAEuQ,aAAetO,WAAWoQ,KAAKoiC,eACvE,GAAIpiC,KAAKqiC,aAAc,CACrB,IAAIC,EAAK,GAAEn2B,YAAYnM,KAAKqiC,cACvBC,EAAGjtB,SAAS8sB,KAAKA,EAAKG,EAAG,IAEhC30C,EAAEmR,WAAWqjC,GACb,IAAI1G,EAA2B,MAAtBz7B,KAAKuiC,cAAwB50C,EAAEwQ,aAAevO,WAAWoQ,KAAKuiC,eACvE,GAAIviC,KAAKwiC,aAAc,CACrB,IAAIC,EAAK,GAAEt2B,YAAYnM,KAAKwiC,cACvBC,EAAGptB,SAASomB,KAAKA,EAAKgH,EAAG,IAGhC,OADA90C,EAAEoR,WAAW08B,GACN9tC,GAET+0C,QAhDO,SAgDC/0C,GAGN,OAFIqS,KAAK2iC,WAAah1C,EAAIqS,KAAK2iC,YAAWh1C,EAAIqS,KAAK2iC,WAC/C3iC,KAAKopB,SAAWz7B,EAAIqS,KAAKopB,UAASz7B,EAAIqS,KAAKopB,SACxCppB,KAAK8hC,eAAe,IAAIxjC,KAAK3Q,EAAE6Q,aAExC6gC,UArDO,SAqDG9kC,GACR,IAAI5M,EAAI,IAAI2Q,KAAK0B,KAAK6/B,GAAGrhC,WACN,QAAfwB,KAAKzE,EAAEkhB,KACT9uB,EAAI,GAAE8Q,QAAQ9Q,EAAG,IAAK,GAAK4M,GACH,SAAfyF,KAAKzE,EAAEkhB,KAChB9uB,EAAI,GAAE8Q,QAAQ9Q,EAAG,IAAK4M,GACE,QAAfyF,KAAKzE,EAAEkhB,KAChB9uB,EAAI,GAAE8Q,QAAQ9Q,EAAG,IAAK4M,GACE,QAAfyF,KAAKzE,EAAEkhB,OAChB9uB,EAAI,GAAE8Q,QAAQ9Q,EAAG,IAAK4M,IAExByF,KAAK6/B,GAAKlyC,GAEZ2xC,aAlEO,SAkEMvlC,GACXA,EAAIA,GAAMiG,KAAK6/B,GAAGhiC,cAAgB,EAC9B9D,EAAI,MAAMA,EAAI,KAClBiG,KAAKw/B,YAAc5jC,MAAMstB,KAAKttB,MAAM,KAAKqQ,KAAI,SAAClI,EAAG/X,GAAJ,OAAU+N,EAAI/N,MAE7D8zC,iBAvEO,SAuEU9mC,GACf,IAAIrL,EAAI,IAAI2Q,KAAK0B,KAAK6/B,GAAGrhC,WACzB7Q,EAAE+Q,YAAY1F,GACdgH,KAAK6/B,GAAKlyC,EACVqS,KAAKw/B,YAAc,MAErBG,iBA7EO,SA6EUplC,GACf,IAAIrM,EAAI8R,KAAKw/B,YACTzlC,EAAIQ,EAAI,EAAIrM,EAAE,GAAK,GAAKA,EAAEA,EAAEhC,OAAS,GAAK,EAC9C8T,KAAKs/B,aAAavlC,IAEpB6lC,kBAlFO,SAkFW7jC,GAChBiE,KAAK2/B,iBAAiB5jC,EAAEkzB,WAAa,GAAK,EAAI,IAEhD8Q,cArFO,WAsFL//B,KAAKigC,aAAerkC,MAAMstB,KAAKttB,MAAM,KAAKqQ,KAAI,SAAClI,EAAG/X,GAAJ,OAAUA,EAAI,MAE9Dm0C,kBAxFO,SAwFWlnC,GACR+G,KAAK6/B,GAAG/hC,WAChBkC,KAAK6/B,GAAK,GAAEphC,QAAQuB,KAAK6/B,GAAI,IAAK5mC,EAAQ,EAAI+G,KAAK6/B,GAAG/hC,YACtDkC,KAAKigC,aAAe,MAEtBnE,UA7FO,SA6FG//B,EAAG0pB,GACPA,EAAKlD,gBACchmB,IAAnByD,KAAKzE,EAAE8pB,UACTrlB,KAAK6/B,GAAK7/B,KAAK0iC,QAAQjd,EAAKmd,OAE9B7mC,EAAEud,QAAU,aACZvd,EAAE1N,MAAQo3B,EACVzlB,KAAKoZ,QAAQrd,EAAG0pB,GACXzlB,KAAKugC,SACRvgC,KAAKkV,SAASuQ,EAAKp3B,SAEvB8yC,SAxGO,WAyGLnhC,KAAKkV,SAASlV,KAAK0iC,QAAQ,IAAIpkC,QAEjC8iC,aA3GO,SA2GM9zC,GACX,IAAIK,EAAIqS,KAAK6/B,GACTpjC,EAAIuD,KAAK+mB,UACb/mB,KAAKkV,SAASlV,KAAK0iC,QAAQ,IAAIpkC,KAAK7B,EAAEoB,cAAepB,EAAEqB,WAAYrB,EAAEsB,UAAWpQ,EAAEsQ,WAAYtQ,EAAEuQ,aAAcvQ,EAAEwQ,iBAElH+W,SAhHO,SAgHEnR,GACU,WAAb,eAAOA,KACTA,EAAI/D,KAAK6iC,GAAG9+B,IAEd/D,KAAKzE,EAAEmY,SAAW1T,KAAKzE,EAAEmY,QAAQ3P,IAEnC68B,UAtHO,SAsHG7kC,EAAGgI,GACX/D,KAAK6/B,GAAGhhC,SAASkF,GACjB/D,KAAK6/B,GAAK7/B,KAAK0iC,QAAQ1iC,KAAK6/B,IAC5B7/B,KAAKge,MAAM5kB,KAAKomB,UAAUzjB,EAAEoO,cAAe,SAAU,MAEvD42B,YA3HO,SA2HKhlC,EAAGgI,GACb/D,KAAK6/B,GAAG/gC,WAAWiF,GACnB/D,KAAK6/B,GAAK7/B,KAAK0iC,QAAQ1iC,KAAK6/B,IAC5B7/B,KAAKge,MAAM3kB,OAAOmmB,UAAUzjB,EAAEoO,cAAe,SAAU,MAEzD+2B,YAhIO,SAgIKnlC,EAAGgI,GACb/D,KAAK6/B,GAAG9gC,WAAWgF,GACnB/D,KAAK6/B,GAAK7/B,KAAK0iC,QAAQ1iC,KAAK6/B,IAC5B7/B,KAAKge,MAAM1kB,OAAOkmB,UAAUzjB,EAAEoO,cAAe,SAAU,MAEzD04B,GArIO,SAqIJtoC,GACD,OAAO,GAAEoD,WAAwB,kBAANpD,EAAiB,GAAEqD,UAAUrD,EAAGyF,KAAK2hC,WAAapnC,EAAGyF,KAAK2hC,YAEvFhB,eAxIO,SAwIQ58B,GACb,IAAIlV,EAAImR,KAAKqnB,QACT55B,EAAIuS,KAAKsnB,QACb,OAAQz4B,GAAKA,EAAIkV,GAAOtW,GAAKA,EAAIsW,GAEnC+8B,iBA7IO,SA6IU/8B,GACf,IAAIlV,EAAImR,KAAK0nB,UACTj6B,EAAIuS,KAAK2nB,UACb,OAAQ94B,GAAKA,EAAIkV,GAAOtW,GAAKA,EAAIsW,GAEnCk9B,iBAlJO,SAkJUl9B,GACf,IAAIlV,EAAImR,KAAK+nB,UACTt6B,EAAIuS,KAAKgoB,UACb,OAAQn5B,GAAKA,EAAIkV,GAAOtW,GAAKA,EAAIsW,IAGrCsX,SAAU,CACRhQ,IADQ,WAEN,OAAO,GAAEA,KAEXs2B,UAJQ,WAKN,OAAO3hC,KAAKzE,EAAEgtB,QAAU,cAE1BgY,QAPQ,WAQN,MAAO,QAAQzvC,KAAKkP,KAAK2hC,YAE3BvC,SAVQ,WAWN,OAAOp/B,KAAKugC,UAAY,QAAQzvC,KAAKkP,KAAK2hC,YAE5CmB,WAbQ,WAcN,IAAIn1C,EAAIqS,KAAK+mB,UACb,OAAOp5B,GAAKqS,KAAK6iC,GAAGl1C,IAEtBo5B,UAjBQ,WAkBN,IAAIr5B,EAAIsS,KAAKzE,EAAE8pB,QACf,OAAI33B,EACK,GAAEkQ,UAAUlQ,EAAGsS,KAAKzE,EAAEgtB,SACnBvoB,KAAKzE,EAAElN,OAAS2R,KAAKzE,EAAEmY,QAC1B1T,KAAKzE,EAAEgtB,QAAUvoB,KAAK6/B,QADxB,GAIT8C,UAzBQ,WA0BN,OAAO3iC,KAAKzE,EAAE1E,UAAY,GAAE+G,UAAUoC,KAAKzE,EAAE1E,SAAUmJ,KAAK2hC,YAE9DvY,QA5BQ,WA6BN,OAAOppB,KAAKzE,EAAE3E,UAAY,GAAEgH,UAAUoC,KAAKzE,EAAE3E,SAAUoJ,KAAK2hC,YAE9Dva,UA/BQ,WAgCN,OAAOpnB,KAAKzE,EAAEgtB,OAAOlT,SAAS,MAAQrV,KAAK6/B,GAAG5hC,YAEhDwpB,YAlCQ,WAmCN,OAAOznB,KAAKzE,EAAEgtB,OAAOlT,SAAS,MAAQrV,KAAK6/B,GAAG3hC,cAEhD4pB,YArCQ,WAsCN,OAAO9nB,KAAKzE,EAAEgtB,OAAOlT,SAAS,MAAQrV,KAAK6/B,GAAG1hC,cAEhDkpB,QAxCQ,WAyCN,GAAIrnB,KAAK2iC,UAAW,CAClB,IAAIh1C,EAAIqS,KAAK2iC,UACTlmC,EAAIuD,KAAK6/B,GACb,GAAIlyC,EAAEkQ,eAAiBpB,EAAEoB,eAAiBlQ,EAAEmQ,YAAcrB,EAAEqB,YAAcnQ,EAAEoQ,WAAatB,EAAEsB,UACzF,OAAOpQ,EAAEsQ,aAIfqpB,QAjDQ,WAkDN,GAAItnB,KAAKopB,QAAS,CAChB,IAAIz7B,EAAIqS,KAAKopB,QACT3sB,EAAIuD,KAAK6/B,GACb,GAAIlyC,EAAEkQ,eAAiBpB,EAAEoB,eAAiBlQ,EAAEmQ,YAAcrB,EAAEqB,YAAcnQ,EAAEoQ,WAAatB,EAAEsB,UACzF,OAAOpQ,EAAEsQ,aAIfypB,UA1DQ,WA2DN,GAAI1nB,KAAKqnB,UAAYrnB,KAAK6/B,GAAG5hC,WAC3B,OAAO+B,KAAK2iC,UAAUzkC,cAG1BypB,UA/DQ,WAgEN,GAAI3nB,KAAKsnB,UAAYtnB,KAAK6/B,GAAG5hC,WAC3B,OAAO+B,KAAKopB,QAAQlrB,cAGxB6pB,UApEQ,WAqEN,GAAI/nB,KAAK0nB,YAAc1nB,KAAK6/B,GAAG3hC,aAC7B,OAAO8B,KAAK2iC,UAAUxkC,cAG1B6pB,UAzEQ,WA0EN,GAAIhoB,KAAK2nB,YAAc3nB,KAAK6/B,GAAG3hC,aAC7B,OAAO8B,KAAKopB,QAAQjrB,cAGxBohC,SA9EQ,WA+EN,IAAIxlC,EAAIiG,KAAK6/B,GAAGhiC,cAKhB,MAJoB,SAAhBmC,KAAKzE,EAAEkhB,OACT1iB,EAAIiG,KAAK6/B,GAAGhiC,cAAiBmC,KAAK6/B,GAAGhiC,cAAgB,GACrD9D,GAAK,OAASA,EAAI,IAEb,GAAEsR,IAAI/Q,GAAG,GAAE+Q,IAAI9R,SAASQ,EAAGA,IAEpCimC,UAtFQ,WAuFN,OAAO,GAAE30B,IAAI9R,SAASS,UAAUgG,KAAK6/B,GAAG/hC,aAE1CsiC,SAzFQ,WA0FN,MAAuB,SAAhBpgC,KAAKzE,EAAEkhB,KAAkBzc,KAAK+iC,aAA+B,UAAhB/iC,KAAKzE,EAAEkhB,KAAmBzc,KAAKgjC,cACjE,SAAhBhjC,KAAKzE,EAAEkhB,KAAkBzc,KAAKijC,aAAejjC,KAAKkjC,cAEtDH,aA7FQ,WA8FN,IAAI70C,EAAI,GACJW,EAAImR,KAAKzE,EAAE1E,SACXpJ,EAAIuS,KAAKzE,EAAE3E,SACX6F,EAAIuD,KAAK8iC,WACT/oC,EAAIiG,KAAK6/B,GAAGhiC,cAAiBmC,KAAK6/B,GAAGhiC,cAAgB,GAAM,EAC3D5C,EAAI,IAAIqD,KAAK0B,KAAK6/B,GAAGrhC,WACzBvD,EAAE2D,QAAQ,GACV3D,EAAEyD,YAAY3E,GACd,IAAK,IAAI/N,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAI+X,EAAIhK,EAAI/N,EACRkb,EAAI,CACN7Y,MAAO0V,EACP/B,KAAM+B,EACN6+B,KAAM,IAAItkC,KAAKrD,EAAEuD,WACjB6hC,IAAU,GAALr0C,GAAe,IAALA,EACfu2B,YAAW1zB,GAAKA,EAAIkV,GAAOtW,GAAKA,EAAIsW,GACpCgzB,MAAOt6B,GAAKsH,GAEd7V,EAAE1B,KAAK0a,GACPjM,EAAEyD,YAAYzD,EAAE4C,cAAgB,GAElC,OAAO3P,GAET80C,cArHQ,WAsHN,IAAI90C,EAAI,GACJW,EAAImR,KAAKzE,EAAE1E,SACXpJ,EAAIuS,KAAKzE,EAAE3E,SACX6F,EAAIuD,KAAK8iC,WAET7nC,GADI+E,KAAK6/B,GAAGhiC,cACR,IAAIS,KAAK0B,KAAK6/B,GAAGrhC,YACzBvD,EAAE2D,QAAQ,GACV3D,EAAE0D,SAAS,GACX,IAAK,IAAI3S,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAI+X,EAAI/D,KAAK6iC,GAAG5nC,GACZiM,EAAI,CACNlF,KAAM,GAAEqJ,IAAI9R,SAASS,UAAUhO,GAC/BqC,MAAO0V,EACP6+B,KAAM,IAAItkC,KAAKrD,EAAEuD,WACjB+jB,YAAW1zB,GAAKA,EAAIkV,GAAOtW,GAAKA,EAAIsW,GACpCgzB,MAAOt6B,GAAKsH,GAEd9I,EAAE0D,SAAS1D,EAAE6C,WAAa,GAC1B5P,EAAE1B,KAAK0a,GAET,OAAOhZ,GAET+0C,aA5IQ,WAsJN,IATA,IAAI/0C,EAAI,GACJW,EAAImR,KAAKzE,EAAE1E,SACXpJ,EAAIuS,KAAKzE,EAAE3E,SACX6F,EAAIuD,KAAK8iC,WACT1kC,EAAI,GAAEC,SAAS2B,KAAK6/B,IACpB9lC,EAAIqE,EAAE,GACNnD,EAAI,GAAEqE,aAAavF,GACnBrM,EAAI,GAAE2R,cAActF,GACpBpM,EAAID,EAAE,GACD1B,EAAI,EAAGwB,EAAIyN,EAAE,GAAIjP,GAAKwB,EAAGxB,IAAK,CACrC,IAAI+X,EAAI/D,KAAK6iC,GAAGl1C,GACZuZ,EAAI,CACNlF,KAAMhW,EACNqC,MAAO0L,EAAI,IAAM,GAAE2B,OAAO1P,GAC1B42C,KAAM,IAAItkC,KAAK3Q,EAAE6Q,WACjB+jB,YAAW1zB,GAAKA,EAAIkV,GAAOtW,GAAKA,EAAIsW,GACpCgzB,MAAOt6B,GAAKsH,EACZ4Q,MAAO,GAAEtJ,IAAI/Q,GAAG,GAAE+Q,IAAI9R,SAASa,QAAS,GAAEuD,WAAWhQ,EAAG,cAAe,GAAEgQ,WAAW,GAAEc,QAAQ9Q,EAAG,IAAK,GACpG,gBAEJA,EAAEiR,QAAQjR,EAAEoQ,UAAY,GACxB7P,EAAE1B,KAAK0a,GAET,OAAOhZ,GAETg1C,aAtKQ,WAuKN,IAAIjoC,EAAI,IAAIqD,KAAK0B,KAAK6/B,GAAGrhC,WACrB9Q,EAAIuN,EAAE6C,WACNnQ,EAAI,IAAI2Q,KAAKrD,EAAEuD,WACf/B,EAAIuD,KAAK8iC,WACTtH,EAAK/+B,GAAK,GAAEkB,WAAW,GAAEC,UAAUnB,EAAGuD,KAAKzE,EAAEgtB,QAAS,cACtDlgB,EAAKrI,KAAK2iC,WAAa,GAAEhlC,WAAWqC,KAAK2iC,UAAW,cACpDE,EAAK7iC,KAAKopB,SAAW,GAAEzrB,WAAWqC,KAAKopB,QAAS,cAChD+Z,EAAO,GACXloC,EAAE2D,QAAQ,GACVjR,EAAEiR,QAAQ,IAAIN,KAAKrD,EAAE4C,cAAenQ,EAAI,EAAG,GAAGqQ,WAC9C,IAAImJ,EAAI,GAAKlH,KAAK+hC,QAAQ9mC,GAAKtN,EAAEoQ,WAAa,EAC1CmJ,GAAKA,EAAI,GACXvZ,EAAEiR,QAAQjR,EAAEoQ,UAAYmJ,GACtBlH,KAAK+hC,QAAQ9mC,GAAK,GACpBA,EAAE2D,QAAQ,EAAIoB,KAAK+hC,QAAQ9mC,IACzB+E,KAAKzE,EAAE8kC,MACTn5B,EAAI,GAAKvZ,EAAE6Q,UAAYvD,EAAEuD,WAAa,MACtC0I,EAAI,IAAMvZ,EAAEiR,QAAQjR,EAAEoQ,UAAY,GAAKmJ,IAEzC,MAAOjM,GAAKtN,EAAG,CACb,IAAIoW,EAAI/D,KAAK6iC,GAAG5nC,GACZioB,EAAK,GAAEvlB,WAAW1C,EAAG,cACrB3M,EAAI,CACN0T,KAAM/G,EAAE8C,UACR1P,MAAO0V,EACP6+B,KAAM,IAAItkC,KAAKrD,EAAEuD,WACjB6hC,IAAKplC,EAAE6C,aAAepQ,EACtB60B,YAAWla,GAAMA,EAAK6a,GAAQ2f,GAAMA,EAAK3f,GACzC6T,MAAOyE,IAAOtY,GAEhBigB,EAAK32C,KAAK8B,GACV2M,EAAE2D,QAAQ3D,EAAE8C,UAAY,GAE1B,OAAOolC,GAETzC,aA1MQ,WA2MN,OAAO1gC,KAAKkiC,WAAa,GAAE/1B,YAAYnM,KAAKkiC,YAActmC,MAAMstB,KAAKttB,MAAM,IAAImQ,SAEjF80B,eA7MQ,WA8MN,OAAO7gC,KAAKqiC,aAAe,GAAEl2B,YAAYnM,KAAKqiC,cAAgBzmC,MAAMstB,KAAKttB,MAAM,IAAImQ,SAErFi1B,eAhNQ,WAiNN,OAAOhhC,KAAKwiC,aAAe,GAAEr2B,YAAYnM,KAAKwiC,cAAgB5mC,MAAMstB,KAAKttB,MAAM,IAAImQ,W,UCnf3F,GAAOkQ,OAAS,GAED,UCIE,IACbruB,KAAM,aACNqvB,OAAQ,CAACwE,GAAQ+O,IACjBxZ,MAAO,CAAC,OAAQ,YAChBgB,QAAS,CACPyT,OADO,WAEL,IAAIyH,EAAMlzB,KAAKge,MAAMsC,KAAK2C,iBAAiB,oBAAoB/2B,OAC/D,KAAIgnC,GAAO,GAAX,CAKA,IAJA,IAAIkQ,EAAKpjC,KAAKzE,EAAEimB,SACZnV,EAAO+2B,EAAK,QAAU,SACtBC,EAAY,EACZC,EAAY,EACPt3C,EAAI,EAAGA,EAAIknC,EAAKlnC,IAAK,CAC5B,IAAIyI,EAAOuL,KAAKge,MAAMsC,KAAKU,cAAhB,oCAA2Dh1B,EAA3D,OACPwI,EAAOxI,EAAIknC,EAAM,GAAKlzB,KAAKge,MAAMsC,KAAKU,cAAhB,oCAA2Dh1B,EAAE,EAA7D,OACtBu3C,EAAU,GAAEv9B,IAAIvR,EAAKusB,cAAc,8BAMvC,GALIvsB,EAAK0M,YAAcnB,KAAKge,MAAMvpB,KAChC4uC,EAAYrmC,KAAKC,IAAIomC,EAAWE,EAAQl3B,IAExCi3B,EAAYtmC,KAAKC,IAAIqmC,EAAWC,EAAQl3B,IAEtC7X,GAAQC,EAAK0M,YAAc3M,EAAK2M,WAAY,CAC9C,IAAIqiC,EAAU,GAAEx9B,IAAIxR,EAAKwsB,cAAc,8BACnCoiB,GAAMG,EAAQv+B,OAAS,GAAKw+B,EAAQz+B,IACtC,GAAEoG,EAAE3W,GAAM6P,IAAI,CACZo/B,UAAWF,EAAQv+B,OAAS,GAAKw+B,EAAQz+B,OAEjCq+B,GAAMG,EAAQr+B,MAAQ,GAAKs+B,EAAQv+B,MAC7C,GAAEkG,EAAE3W,GAAM6P,IAAI,CACZq/B,WAAYH,EAAQr+B,MAAQ,GAAKs+B,EAAQv+B,QAKjD,IAAI0+B,EAAY,GAAEx4B,EAAE,mBAAoBnL,KAAKge,MAAMvpB,MACnDkvC,EAAUryB,MAAK,SAACtlB,EAAG+X,GACjB,IAAIgZ,EAAO,GAAE5R,EAAE,wBAAyBpH,GACpCiC,EAAM,GAAEA,IAAI+W,EAAK,IACrBA,EAAK1Y,IAAL,mBACG++B,EAAK,cAAgB,gBAAkBC,EAAYr9B,EAAIqG,IAAS,OAGrE,GAAElB,EAAE,mBAAoBnL,KAAKge,MAAMxpB,MAAM8c,MAAK,SAACtlB,EAAG+X,GAChD,IAAIgZ,EAAO,GAAE5R,EAAE,wBAAyBpH,GACpCiC,EAAM,GAAEA,IAAI+W,EAAK,IACrBA,EAAK1Y,IAAL,mBACG++B,EAAK,aAAe,aAAeE,EAAYt9B,EAAIqG,IAAS,OAGjEs3B,EAAUz3C,QAAU,GAAEif,EAAEnL,KAAKge,MAAMxpB,MAAM6P,IAArB,mBACjB++B,EAAK,aAAe,YADH,WACqBE,EAAU,EAAID,EAAU,EAD7C,QAIpB,IAAIO,EAAW,GAAE59B,IAAI,GAAEmF,EAAF,0DAA+DnL,KAAKge,MAAMsC,MAAM,IACjGujB,EAAU,GAAE79B,IAAI,GAAEmF,EAAF,oCAAiC+nB,EAAI,EAArC,gCAAsElzB,KAAKge,MAAMsC,MAAM,IACvGwjB,EAAU,GAAE99B,IAAIhG,KAAKge,MAAMsC,MAC3BtgB,KAAKzE,EAAEimB,SACT,GAAErW,EAAEnL,KAAKge,MAAM6W,MAAMxwB,IAAI,CACvB+B,MAAO,EACPC,OAAQw9B,EAAQ9+B,IAAM6+B,EAAS5+B,OAC/BD,IAAK6+B,EAAS5+B,OAAS8+B,EAAQ/+B,IAC/BE,MAAO2+B,EAAS3+B,KAAO2+B,EAAS1+B,OAAS,EAAI4+B,EAAQ7+B,KAAO,IAG9D,GAAEkG,EAAEnL,KAAKge,MAAM6W,MAAMxwB,IAAI,CACvB+B,MAAOy9B,EAAQ5+B,KAAO2+B,EAAS1+B,MAC/BmB,OAAQ,EACRtB,KAAM6+B,EAAS7+B,IAAM6+B,EAAS5+B,QAAU,EAAI8+B,EAAQ/+B,IAAM,EAC1DE,KAAM2+B,EAAS1+B,MAAQ4+B,EAAQ7+B,SAKrC+V,WArEO,WAsEL,IAAI+oB,EAAY,GACZC,EAAY,GACZZ,EAAKpjC,KAAKzE,EAAEimB,SAShB,OARAxhB,KAAKya,iBAAiB1d,SAAQ,SAACrP,EAAG1B,GAChC,GAAEgQ,OAAOob,IAAI1pB,EAAG,cAAe1B,GAC3Bo3C,GACmB,SAApB11C,EAAEspB,MAAMvC,SAAsBsvB,EAAYC,GAAWx3C,KAAKkB,IAEtC,UAApBA,EAAEspB,MAAMvC,SAAuBuvB,EAAYD,GAAWv3C,KAAKkB,MAGzDsS,KAAK0f,kBACV,gBAAE,MAAO,CACPG,IAAK,OACLxH,MAAO,mBACN,CACD,gBAAE,MAAO,CACPwH,IAAK,OACLxH,MAAO,oBAET,gBAAE,MAAO,CACPwH,IAAK,OACLxH,MAAO,CAAC,kBAAD,+BAA2BrY,KAAKzE,EAAEimB,SAAS,IAAI,IAA/C,QAA2D,GAAEjc,GAAGpV,OAAOC,OAC7E2zC,GACH,gBAAE,MAAO,CACPlkB,IAAK,OACLxH,MAAO,CAAC,kBAAD,+BAA2BrY,KAAKzE,EAAEimB,SAAS,IAAI,IAA/C,QAA2D,GAAEjc,GAAGpV,OAAOC,OAC7E4zC,QAKX3oB,SAAU,CACRO,WADQ,WACK,MACX,MAAO,CAAC5b,KAAK0gB,mBAAN,uBAEF,UAAY1gB,KAAKzE,EAAEkhB,KAAOzc,KAAKzE,EAAEkhB,MAF/B,kBAGH,gBAAiBzc,KAAKzE,EAAEimB,UAHrB,kBAIH,aAAcxhB,KAAKzE,EAAEimB,UAJlB,MASXhL,QArHa,WAqHH,WACRxW,KAAKyrB,SACL,IAAMxK,EAAU,WACV,EAAKjD,MAAMsC,MAAQ,EAAKtC,MAAMxpB,OAChC,GAAE2W,EAAE,mBAAoB,EAAK6S,MAAMsC,MAAMjc,IAAzC,mBAA+C,EAAK9I,EAAEimB,SAAW,YAAc,aAAe,IAC9F,GAAErW,EAAE,EAAK6S,MAAMxpB,MAAM6P,IAArB,mBAA2B,EAAK9I,EAAEimB,SAAW,YAAc,aAAe,IAC1E,EAAKiK,WAGT,IAAI,QAAexK,GAASA,QAAQjhB,KAAKge,MAAMsC,QCpItC,I,UAAA,ICeE,IACb1yB,KAAM,kBACN8tB,cAAe,aACfuB,OAAQ,CAACgC,IACTtB,OAAQ,CAAC,oBACT3G,MAAO,CAAC,WAAY,SACpBgB,QAAS,CACPgD,WADO,WAEL,IAAIhZ,EAAO,gBAAE,MAAO,CAClBqW,MAAO,6BACN,gBAAE,MAAO,CACVA,MAAO,6BACNrY,KAAK0a,SACJqC,EAAO,gBAAE,MAAO,CAClB8C,IAAK,OACLxH,MAAO,wBACNrY,KAAK0a,OAAOqC,KAAO,gBAAE,MAAO,CAC7B1E,MAAO,4BACNrY,KAAK0a,OAAOqC,QAAU,gBAAE,IAAK,CAC9B1E,MAAO,wCAET,MAAO,CAAC0E,EAAM/a,KAGlBqZ,SAAU,CACRO,WADQ,WAEN,MAAO,MAAQ5b,KAAKzE,EAAEkZ,WAAazU,KAAKwb,UAAUjgB,EAAEimB,SAAW,OAAS,YAE1EpG,WAJQ,WAKN,MAAO,CACL,UAAWpb,KAAKzE,EAAE+T,UC/Cb,M,ICDNuQ,IAAI,UAAUxH,MAAM,yB,UAGLA,MAAM,wB,UACNA,MAAM,2B,kDAL5B,gBAMM,MANN,gBAMM,CANDwH,IAAI,QAAe,EAAA7D,YAAU,CAChC,gBAEM,MAFN,GAEM,CADJ,gBAAQ,qB,KAEC,EAAAzgB,EAAEqZ,O,kBAAb,gBAAuD,MAAvD,K,uBACW,EAAArZ,EAAEqZ,O,kBAAb,gBAA0D,MAA1D,K,4BAiBa,QACbhnB,KAAM,gBACNqvB,OAAQ,CAACgC,IACT0C,QAHa,WAIX,MAAO,CACLsiB,oBAAqBjkC,OAGzBgX,MAAO,CAAC,eAAgB,aAAc,WAAY,WAAY,YAAa,SAC3EkT,MAAO,CAAC,oBAAqB,UAC7Bga,MAVa,SAUPltB,EAAO/D,GACX,IAGIkxB,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAH9BC,EAAO,kBAAqB17B,IAC5B7d,EAAO,kBACP+kB,EAAU,kBAGV6F,EAAc,SAASnM,GAC3B,IACI+6B,EAAOC,EAAOC,EADd7G,EAAQ,GAAEx0B,OAAOI,GAEjBk7B,EAAQ,EACRC,EAAY,KAChB70B,EAAQ5hB,MAAM2V,MAAM+gC,WAAa,GACjC,GAAEv7B,QAAO,SAAAzN,GACP,IAAIipC,EAAO,GAAEz7B,OAAOxN,GAChBkpC,EAAUlpC,EAAEmpC,UAChBR,EAAQH,EAAOS,EAAOjH,EAClB4G,GAASC,GAAYK,EAAUL,IACjCE,EAAYD,EACZA,GAASG,EAAOL,IAAUM,EAAUL,IAEtCD,EAAQK,EACRJ,EAAWK,EACXP,EAAQ,GAAE7nC,SAAS6nC,EAAOL,EAAOG,EAAMF,EAAOE,GAC9Cv0B,EAAQ5hB,MAAM2V,MAAMka,UAApB,qBAA8CwmB,EAA9C,UACC,SAAC3oC,EAAGwa,GACL,IAAKA,EACH,OAAOsE,EAAQlR,GAEjB,GAAa,MAAT+6B,EAAJ,CACA,IAAIS,EAAW,IACXnoC,KAAKsN,IAAIu6B,GAASM,GAAaL,GAAa9nC,KAAKsN,IAAIw6B,GAAaK,EACpEN,EAAQ,EACCC,GAAa9nC,KAAKsN,IAAIw6B,GAAa9nC,KAAKsN,IAAIu6B,KACrDA,EAAQC,GAEV,IAAI/qC,EAAI2qC,EAAiB,IAARG,EACbv3C,EAAI0P,KAAKsN,IAAIu6B,EAAQ,GACrBO,GAAOd,EAAOvqC,GAAKyqC,EACvBzqC,GAAKqrC,EACDA,EAAOZ,EAAO,IAChBzqC,GAAKyqC,GAEPD,EAAO,GAAE1nC,SAAS9C,EAAGsqC,EAAMC,GACvBC,GAAQG,KACNA,EAAQL,GAAQK,EAAQL,GAAQ/2C,EAAI63C,KACtC73C,EAAI63C,GAEFnoC,KAAKsN,IAAIi6B,EAAOG,GAAS,KAC3Bp3C,EAAI,KAEN2iB,EAAQ5hB,MAAM2V,MAAMka,UAApB,qBAA8CqmB,EAA9C,OACAt0B,EAAQ5hB,MAAM2V,MAAM+gC,WAApB,oBAA8Cz3C,EAA9C,kBAEDqc,IAEC0lB,EAAU,SAAStzB,GACvBwoC,IAASxoC,EAAEkzB,WAAa,GAAK,EAAI,GAAKuV,EACtCD,EAAO,GAAE1nC,SAAS0nC,EAAMF,EAAMC,GAC9Br0B,EAAQ5hB,MAAM2V,MAAMka,UAApB,qBAA8CqmB,EAA9C,OACAt0B,EAAQ5hB,MAAM2V,MAAM+gC,WAApB,2BAEIlqB,EAAU,SAAS9e,GACvB,IAAImL,EAAI,GAAEnL,GACa,YAAnBmL,EAAE6K,SAASnkB,OACby3C,EAAOn+B,EAAE0Q,OAAOvpB,OAChB0oC,GAAM,KAGJA,EAAQ,SAASxmB,GACrB,GAAKrlB,EAAKmD,OAAU4hB,EAAQ5hB,MAA5B,CACA,IAAIi3C,EAAKb,EAAKhqB,iBACd,GAAK6qB,EAAGp5C,OAAR,CACA,IAAI6X,EAAI0gC,EAAKlpC,EAAE05B,WACXsM,EAAKkD,EAAKlpC,EAAE1E,SACZ0uC,EAAKd,EAAKlpC,EAAE3E,UACZ2qC,GAAa,IAAPA,GAAYgE,GAAa,IAAPA,KAC1BxhC,EAAI,GAAElH,SAASkH,EAAGw9B,EAAIgE,GAClBxhC,GAAK0gC,EAAKlpC,EAAE05B,YACdoQ,EAAOthC,IAGX,IAAIyhC,EAAU,GAAEx/B,IAAI9a,EAAKmD,OACrBo3C,EAAS,GAAEz/B,IAAIiK,EAAQ5hB,OACvBq3C,GAAM,EACNC,GAAM,EACNC,GAAM,EA2BV,GA1BApB,EAAOC,EAAKlpC,EAAEsqC,aACd1B,EAASG,GAAQkB,EAAQn/B,OAASm+B,GAAQ,EAC1CJ,EAAOC,EAAOF,EAASsB,EAAOp/B,OAASm+B,GACnCjD,GAAa,IAAPA,KACRmE,EAAKJ,EAAG/gB,WAAU,SAAAj3B,GAAA,OAAKA,EAAE0pB,MAAM3oB,OAASkzC,OAEtCgE,GAAa,IAAPA,KACRI,EAAKL,EAAG/gB,WAAU,SAAAj3B,GAAA,OAAKA,EAAE0pB,MAAM3oB,OAASk3C,OAErCG,GAAM,GAAKC,GAAM,IAAML,EAAG,GAAGtuB,MAAM3oB,MAAQi3C,EAAGA,EAAGp5C,OAAS,GAAG8qB,MAAM3oB,QACtEu3C,GAAM,GAEJF,GAAM,IACJE,EACFtB,GAAQoB,EAAKlB,EAEbH,GAAQqB,EAAKlB,GAGbmB,GAAM,IACJC,EACFvB,IAASiB,EAAGp5C,OAAS,EAAIy5C,GAAMnB,EAE/BF,IAASgB,EAAGp5C,OAAS,EAAIy5C,GAAMnB,GAG1B,MAALzgC,EAAW,CACb,IAAIuL,EAAQg2B,EAAG/gB,WAAU,SAAAj3B,GAAA,OAAKA,EAAE0pB,MAAM3oB,OAAS0V,MAChC,IAAXuL,EACF+1B,EAAe,MAARd,GAAgBA,EAAOH,GAAQK,EAAKqB,UAAYR,EAAGA,EAAGp5C,OAAS,GAAG8qB,MAAM3oB,MAAQi3C,EAAG,GAAGtuB,MAAM3oB,OAEnGk2C,EAAOJ,EAAUK,EAAOl1B,OAG1Bi1B,EAAOJ,EAETI,EAAO,GAAE1nC,SAAS0nC,EAAMF,EAAMC,GAC9Br0B,EAAQ5hB,MAAM2V,MAAM+gC,WAAa,GACjC90B,EAAQ5hB,MAAM2V,MAAMka,UAApB,qBAA8CqmB,EAA9C,OACIh0B,IACFN,EAAQ5hB,MAAM2V,MAAM+gC,WAApB,8BAIEM,EAAS,SAASthC,IACf,EACP0gC,EAAKlpC,EAAE05B,WAAalxB,GAGhBgiC,EAAW,WACf,OAAQ5B,EAASI,GAAQC,GAGrBwB,EAAW,WACf,IAAIC,EAAMxB,EAAKhqB,iBAAiBsrB,KAChCE,GAAOZ,EAAOY,EAAIjvB,MAAM3oB,QAGpB4pB,EAAY,WAChB,MAAO,CACL4tB,aAAc,GACdjxB,OAAO,IAILwG,EAAa,iBAAS,WAC1B,uBACEpX,MAAO,CACL,oBAAqB,GAAEoI,SAASq4B,EAAKlpC,EAAEsqC,gBAErC,GAAEtgC,GAAGlV,OAAS,CAChB61C,aAAcpwB,GACZ,CACFA,cACAuZ,eAqBN,OAhBA,iBAAU,WACR,iBAAM,kBAAMoV,EAAKlpC,EAAE05B,cAAY,SAAAlxB,GAC7BkP,EAAQkzB,KAAK,oBAAqBpiC,GAClCkP,EAAQkzB,KAAK,SAAUpiC,MAEzB,iBAAM,kBAAM0gC,EAAKlpC,EAAE1E,WAAUkgC,GAC7B,iBAAM,kBAAM0N,EAAKlpC,EAAE3E,WAAUmgC,GAC7B,IAAI,SAAe,WACb9mB,EAAQ5hB,QACV0oC,IACAiP,QAED/kB,QAAQhR,EAAQ5hB,OACnB4hB,EAAQ5hB,MAAMgc,iBAAiB,gBAAiB27B,MAG3C,CACL96C,OACA+kB,UACAgI,YACAnC,cACAuZ,UACAjU,gB,UCvNR,GAAOa,OAAS,GAED,UCFE,IACbruB,KAAM,WACNqvB,OAAQ,CAACkc,IACTnhB,QAAS,CACPgM,WADO,WAEL,OAAO,GAETrhB,KAJO,WAKL,OAAO,gBAAE,QAAS,CAChB8E,KAAM,SACNc,GAAIvI,KAAK4I,IACTyP,MAAO,WACPzqB,KAAMoS,KAAKzE,EAAE3N,KACbS,MAAO2R,KAAKzE,EAAE05B,WACdpV,IAAK,SChBA,MCCE,IACbjyB,KAAM,SACNqvB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,YAAa,YAAa,WAClCtrB,KAJa,WAKX,MAAO,CACLypC,WAAW,IAGf9Z,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEEliC,UAAW,SAACoN,EAAG7V,EAAGid,GAChB,GAAIpH,GAAU,MAAL7V,GAAmB,KAANA,GAAYA,EAAI,GAAK,GAAEmN,OAAO0I,GAAK7V,EACvD,OAAO,EAAKsoC,QAAQrrB,EAAG,CAACjd,KAE5BsI,UAAW,SAACuN,EAAG7V,EAAGid,GAChB,IAAIxd,EACJ,GAAIoW,GAAU,MAAL7V,GAAmB,KAANA,GAAYA,EAAI,GAAK6V,IAAMpW,EAAI,GAAE0N,OAAO0I,IAAM7V,EAClE,OAAO,EAAKsoC,QAAQrrB,EAAG,CAACxd,EAAIO,UCrB3B,MCCE,IACbN,KAAM,aACNqvB,OAAQ,CAACmpB,IACT/qB,SAAU,CACRsc,UADQ,WAEN,MAAO,cCNA,MCEE,IACb/pC,KAAM,kBACNqvB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,aAAc,WAAY,WAAY,MAAO,UAAW,WAChE2K,QAJa,WAKX,MAAO,CACLlG,iBAAkBzb,OAGtBgY,QAAS,CACPugB,UADO,WAEL,OAAOv4B,KAAKzE,EAAEimB,SAAW,gBAAE,MAAO,CAACnJ,MAAO,mBAAoBrY,KAAK0a,QAAU1a,KAAK0a,SAGtFW,SAAU,CACRU,WADQ,WAEN,OAAO/b,KAAKzE,EAAEnL,KAAO,CACnB,mBAAoB,GAAEgc,SAASpM,KAAKzE,EAAEnL,SCnBjC,MCCE,IACbxC,KAAM,eACNqvB,OAAQ,CAACopB,KCHE,MCIE,IACbz4C,KAAM,UACN8tB,cAAe,eACfuB,OAAQ,CAACkd,IACTniB,QAAS,GAGTqD,SAAU,CACRuc,WADQ,WAEN,MAAO,SAEToC,WAJQ,WAKN,MAAO,OAETnC,WAPQ,WAQN,OAAO73B,KAAKsmC,QAAWtmC,KAAKsmC,OAAS,IAAMtmC,KAAK0P,UAAU9G,KAE5D09B,OAVQ,WAWN,OAAOtmC,KAAKzE,EAAE3N,MAASoS,KAAKwb,WAAaxb,KAAKwb,UAAUjgB,EAAE3N,MAE5DwqC,WAbQ,WAcN,MAAO,CAAC,SAAUp4B,KAAKsmC,UAG3B9vB,QAxBa,cCJF,MCIE,IACb5oB,KAAM,WACN8tB,cAAe,kBACfuB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,cAAe,gBAAiB,eAAgB,kBACxD2G,OAAQ,CAAC,oBACT3F,QAAS,CACPC,UADO,WAEL,MAAO,CACLsuB,aAAc,EACdC,eAAgB,IAGpB3rB,QAPO,SAOC9e,GACN,IAAIrO,GAAKsS,KAAK6R,UACV9N,EAAIrW,EAAIsS,KAAKzE,EAAEgrC,aAAevmC,KAAKzE,EAAEirC,eACzCxmC,KAAKojB,IAAIrf,IAEX4N,SAZO,WAaL,OAAO3R,KAAK6R,UAAY7R,KAAKzE,EAAEkrC,YAAczmC,KAAKzE,EAAEmrC,eAEtDhP,WAfO,WAgBL,MAAO,CACL13B,KAAKq4B,oBACL,gBAAE,MAAO,CACPhgB,MAAO,eACPwC,QAAS7a,KAAKg2B,UAAYh2B,KAAK6a,SAC9B,CACD,gBAAE,IAAK,CACLxC,MAAO,kBAET,gBAAE,OAAQ,CACRA,MAAO,iBACNrY,KAAK6R,UAAY7R,KAAKzE,EAAEkrC,YAAczmC,KAAKzE,EAAEmrC,oBAKxDrrB,SAAU,CACRqa,YADQ,WAEN,OAAO11B,KAAK6R,UAAY7R,KAAKzE,EAAEgrC,aAAevmC,KAAKzE,EAAEirC,gBAEvD5qB,WAJQ,WAKN,OAAO5b,KAAK6R,UAAY,YAAc,eAExCA,UAPQ,WAQN,OAAO7R,KAAKzE,EAAE05B,YAAcj1B,KAAKzE,EAAEgrC,gBChD5B,I,UAAA,ICHTI,GAAQ,CACZ,OAAQ,YACR,OAAQ,aACR,OAAQ,8BACR,OAAQ,8BACR,OAAQ,8BACR,OAAQ,uCACR,MAAO,yBACP,OAAQ,eACR,QAAS,eACT,QAAS,eACT,OAAQ,iBACR,OAAQ,qBACR,OAAQ,0CACR,OAAQ,aACR,OAAQ,sBACR,OAAQ,iBACR,OAAQ,sBACR,OAAQ,qBACR,OAAQ,iBACR,OAAQ,iBACR,MAAO,cACP,OAAQ,kBACR,OAAQ,eACR,OAAQ,wBACR,OAAQ,aACR,SAAU,sBACV,OAAQ,kBACR,QAAS,mBACT,OAAQ,YACR,OAAQ,sBACR,KAAM,aACN,OAAQ,eACR,OAAQ,+BACR,OAAQ,oBACR,OAAQ,sBACR,OAAQ,oBACR,OAAQ,6BACR,OAAQ,sBACR,QAAS,qBACT,OAAQ,uBACR,OAAQ,cACR,MAAO,8BACP,OAAQ,gBACR,QAAS,aACT,QAAS,qBACT,OAAQ,aACR,OAAQ,6BACR,OAAQ,2BACR,OAAQ,uBACR,OAAQ,6BACR,OAAQ,oBACR,OAAQ,kBACR,QAAS,kBACT,OAAQ,WACR,OAAQ,cACR,OAAQ,yBACR,OAAQ,cACR,OAAQ,6BACR,SAAU,YACV,OAAQ,yBACR,OAAQ,2BACR,OAAQ,qBACR,QAAS,0EACT,OAAQ,qBACR,OAAQ,oBACR,OAAQ,gBACR,OAAQ,wBACR,OAAQ,wBACR,OAAQ,yBACR,OAAQ,6BACR,OAAQ,gCACR,QAAS,gCACT,OAAQ,yBACR,QAAS,uBACT,OAAQ,cACR,MAAO,mBACP,OAAQ,mBACR,OAAQ,0BACR,OAAQ,gBACR,OAAQ,cACR,OAAQ,oBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,uBACR,OAAQ,iBACR,OAAQ,+BACR,MAAO,sBACP,OAAQ,cACR,OAAQ,iBACR,OAAQ,4BACR,OAAQ,+BACR,OAAQ,cACR,OAAQ,YACR,OAAQ,oBACR,QAAS,qBACT,MAAO,qBACP,KAAM,aACN,OAAQ,oBACR,OAAQ,cACR,QAAS,cACT,OAAQ,qBACR,OAAQ,2BACR,OAAQ,kBACR,OAAQ,mBACR,OAAQ,YACR,QAAS,YACT,OAAQ,YACR,OAAQ,mBACR,OAAQ,0BACR,OAAQ,eACR,OAAQ,YACR,OAAQ,YACR,OAAQ,YACR,OAAQ,uBACR,OAAQ,eACR,OAAQ,gCACR,OAAQ,yBACR,OAAQ,qBACR,OAAQ,gCACR,MAAO,cACP,OAAQ,cACR,OAAQ,iBACR,OAAQ,YACR,OAAQ,mCACR,OAAQ,oBACR,OAAQ,2BACR,QAAS,aACT,QAAS,cACT,QAAS,+BACT,OAAQ,aACR,QAAS,aACT,OAAQ,aACR,OAAQ,aACR,MAAO,2BACP,OAAQ,kBACR,OAAQ,oBACR,OAAQ,cACR,SAAU,sBACV,OAAQ,sBACR,OAAQ,4BACR,OAAQ,4BACR,OAAQ,kBACR,OAAQ,cACR,WAAY,kBACZ,OAAQ,aACR,OAAQ,iBACR,OAAQ,iBACR,OAAQ,4BACR,OAAQ,4BACR,OAAQ,cACR,OAAQ,kBACR,SAAU,kBACV,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,oBACR,OAAQ,cACR,OAAQ,YACR,OAAQ,YACR,OAAQ,YACR,OAAQ,YACR,OAAQ,0BACR,OAAQ,2BACR,OAAQ,sBACR,OAAQ,uBACR,OAAQ,yBACR,OAAQ,cACR,MAAO,yBACP,OAAQ,cACR,OAAQ,iBACR,SAAU,iBACV,MAAO,oBACP,OAAQ,YACR,QAAS,aACT,OAAQ,oBACR,OAAQ,eACR,OAAQ,cACR,OAAQ,wBACR,OAAQ,cACR,OAAQ,wBACR,OAAQ,sBACR,SAAU,sBACV,OAAQ,cACR,OAAQ,yBACR,OAAQ,yBACR,OAAQ,yBACR,OAAQ,kBACR,SAAU,oBACV,OAAQ,aACR,OAAQ,aACR,OAAQ,YACR,OAAQ,aACR,OAAQ,qCACR,OAAQ,aACR,QAAS,aACT,OAAQ,aACR,QAAS,YACT,QAAS,aACT,OAAQ,qCACR,OAAQ,6BACR,OAAQ,0BACR,QAAS,aACT,OAAQ,cACR,OAAQ,oBACR,MAAO,yBACP,OAAQ,6BACR,OAAQ,yBACR,OAAQ,yBACR,OAAQ,yBACR,OAAQ,4BACR,OAAQ,yBACR,OAAQ,kBACR,QAAS,aACT,MAAO,uBACP,OAAQ,cACR,QAAS,mBACT,OAAQ,oBACR,OAAQ,uBACR,iBAAkB,6BAClB,OAAQ,uBACR,QAAS,aACT,OAAQ,sBACR,OAAQ,iBACR,OAAQ,kBACR,OAAQ,YACR,OAAQ,iCACR,OAAQ,qBACR,OAAQ,uBACR,OAAQ,mCACR,OAAQ,2BACR,OAAQ,2BACR,OAAQ,kCACR,OAAQ,gCACR,OAAQ,cACR,OAAQ,eACR,OAAQ,oBACR,OAAQ,0BACR,OAAQ,cACR,OAAQ,cACR,OAAQ,iBACR,OAAQ,kBACR,OAAQ,yBACR,OAAQ,uBACR,OAAQ,2BACR,QAAS,eACT,OAAQ,4BACR,MAAO,qBACP,OAAQ,wBACR,OAAQ,wBACR,OAAQ,oBACR,OAAQ,wBACR,OAAQ,wBACR,OAAQ,wBACR,OAAQ,YACR,OAAQ,0BACR,OAAQ,YACR,OAAQ,gCACR,OAAQ,0BACR,OAAQ,gCACR,OAAQ,gCACR,QAAS,4EACT,OAAQ,0BACR,OAAQ,wBACR,OAAQ,oBACR,OAAQ,yBACR,QAAS,aACT,SAAU,oCACV,MAAO,yBACP,QAAS,uBACT,OAAQ,4BACR,OAAQ,iBACR,OAAQ,kBACR,MAAO,kBACP,OAAQ,oBACR,QAAS,oBACT,OAAQ,yBACR,MAAO,uBACP,OAAQ,uBACR,OAAQ,qBACR,MAAO,aACP,OAAQ,sBACR,MAAO,yBACP,OAAQ,cACR,OAAQ,yBACR,MAAO,uBACP,OAAQ,cACR,OAAQ,YACR,OAAQ,uBACR,QAAS,uBACT,OAAQ,gCACR,QAAS,sBACT,MAAO,uBACP,OAAQ,8BACR,MAAO,uBACP,OAAQ,cACR,OAAQ,kBACR,OAAQ,yBACR,OAAQ,gBACR,MAAO,yBACP,OAAQ,2BACR,OAAQ,cACR,OAAQ,cACR,OAAQ,0BACR,OAAQ,2BACR,OAAQ,iBACR,OAAQ,sBACR,OAAQ,wBACR,UAAW,qCACX,UAAW,0CACX,OAAQ,cACR,QAAS,cACT,MAAO,mBACP,QAAS,qBACT,SAAU,8BACV,OAAQ,4BACR,OAAQ,YACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,kCACR,OAAQ,wBACR,OAAQ,qBACR,OAAQ,qBACR,OAAQ,qBACR,OAAQ,qBACR,OAAQ,sBACR,OAAQ,cACR,OAAQ,mBACR,QAAS,mBACT,OAAQ,sBACR,OAAQ,cACR,OAAQ,cACR,OAAQ,mCACR,OAAQ,2BACR,OAAQ,uBACR,UAAW,uBACX,OAAQ,kBACR,OAAQ,oBACR,OAAQ,4BACR,OAAQ,kCACR,OAAQ,0BACR,OAAQ,4BACR,OAAQ,YACR,OAAQ,gBACR,WAAY,wBACZ,UAAW,uBACX,OAAQ,YACR,OAAQ,YACR,OAAQ,gBACR,OAAQ,gCACR,QAAS,gCACT,KAAM,sBACN,QAAS,gBACT,OAAQ,oBACR,OAAQ,oBACR,OAAQ,yBACR,OAAQ,yBACR,OAAQ,oBACR,OAAQ,oBACR,QAAS,wBACT,WAAY,wBACZ,OAAQ,2BACR,OAAQ,0BACR,OAAQ,aACR,QAAS,aACT,OAAQ,uBACR,UAAW,uBACX,OAAQ,kBACR,OAAQ,YACR,MAAO,sBACP,OAAQ,cACR,OAAQ,2BACR,OAAQ,iBACR,OAAQ,sBACR,OAAQ,4BACR,OAAQ,qBACR,OAAQ,aACR,OAAQ,YACR,OAAQ,cACR,SAAU,sBACV,MAAO,yBACP,OAAQ,yBACR,OAAQ,uBACR,OAAQ,eACR,OAAQ,YACR,OAAQ,YACR,OAAQ,aACR,QAAS,aACT,OAAQ,kCACR,OAAQ,kCACR,OAAQ,mCACR,OAAQ,8BACR,OAAQ,gBACR,OAAQ,wBACR,OAAQ,iBACR,OAAQ,iBACR,OAAQ,kBACR,QAAS,iBACT,OAAQ,gBACR,OAAQ,kBACR,OAAQ,sBACR,OAAQ,cACR,OAAQ,iBACR,QAAS,qBACT,OAAQ,2BACR,OAAQ,2BACR,OAAQ,uBACR,QAAS,aACT,MAAO,gBACP,OAAQ,8BACR,OAAQ,2BACR,MAAO,gBACP,OAAQ,iBACR,OAAQ,uBACR,OAAQ,2BACR,OAAQ,mBACR,QAAS,2BACT,QAAS,yBACT,SAAU,iCACV,aAAc,yBACd,OAAQ,iBACR,OAAQ,iBACR,OAAQ,uBACR,QAAS,kBACT,OAAQ,cACR,OAAQ,wBACR,OAAQ,iBACR,OAAQ,iBACR,MAAO,yBACP,OAAQ,iCACR,MAAO,gBACP,OAAQ,iBACR,OAAQ,oBACR,UAAW,qBACX,OAAQ,iBACR,OAAQ,uBACR,OAAQ,kBACR,OAAQ,qBACR,QAAS,qBACT,OAAQ,sCACR,OAAQ,wBACR,QAAS,wBACT,SAAU,wBACV,OAAQ,2BACR,OAAQ,2BACR,OAAQ,sBACR,OAAQ,2BACR,OAAQ,2BACR,QAAS,oEACT,OAAQ,2BACR,OAAQ,2BACR,MAAO,cACP,OAAQ,kBACR,OAAQ,cACR,OAAQ,iBACR,OAAQ,0BACR,OAAQ,kBACR,QAAS,WACT,OAAQ,WACR,OAAQ,WACR,OAAQ,sBACR,OAAQ,iBACR,OAAQ,oBACR,KAAM,yBACN,OAAQ,2BACR,QAAS,mBACT,OAAQ,wBACR,MAAO,mBACP,OAAQ,oBACR,OAAQ,qBAGK,YAASpsC,GACtB,IAAIU,EAAID,EAAQT,EAAG,KAAK,IAASA,EACjC,OAAOosC,GAAM,IAAM1rC,ICndb2rC,GAAc,CAClB,EAAK,gCACLC,IAAK,WACLniC,IAAK,eACLoiC,IAAK,WACLC,IAAK,WACLC,IAAK,oDACLC,IAAK,UACLC,IAAK,sCACLC,IAAK,0CACLC,IAAK,wKACLC,IAAK,+JACLC,IAAK,qCAGD,GAAU,WACd,IAAIp5C,EAAI,GADiB,WAEhBqW,GACPqiC,GAAYriC,GAAGlH,MAAM,KAAKN,SAAQ,SAAAgH,GAAA,OAAK7V,EAAE6V,GAAU,KAALQ,EAAWR,EAAIQ,MAD/D,IAAK,IAAIA,KAAKqiC,GAAa,EAAlBriC,GAGT,OAAOrW,EALO,GAQV,GAAY,SAASinB,GACzB,IAAI5a,EAAI,GAAES,QAAQma,GAAO,GAAI,KAAK,GAAM5lB,cACxC,OAAO,GAAOgL,IAAM,QAIhB,GAAW,SAAS6oB,GACxB,IAAImkB,EAOJ,OANW,MAAPnkB,GAAgBzmB,MAAMymB,KACxBA,GAAO,KACTA,EAAM,GAAE1mB,OAAO0mB,EAAIzyB,QAAQ,YAAY,SAAS8J,GAE9C,OADA8sC,EAAO9sC,EAAG6C,OAAO,GAAGuG,cACb,OAEFuf,GAAgB,MAATmkB,EAAe,KAAgB,MAATA,EAAe,QAAuB,MAATA,EAAe,WAC9E,MADmGA,EAC7F,cAA4B,IAGhCC,GAAgB,CACpBC,MAAOb,GAAYQ,IACnBM,MAAOd,GAAYS,IACnBM,MAAOf,GAAYU,KAGN,IACb15C,KAAM,eACNqvB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,YAAa,eAAgB,cAAe,cAAe,YAAa,cAAe,cAC7F,YAAa,SAAU,UAAW,QAAS,YAAa,aAAc,YAExEkT,MAAO,CAAC,cACRx+B,KAPa,WAQX,MAAO,CACLk8C,KAAM,GACNC,SAAS,EACT/9B,IAAK,MAGT8L,QAda,WAcH,WACR5V,KAAK8X,QAAO,kBAAM,EAAKvc,EAAE05B,cAAY,SAAAlxB,GACnC,GAAI,EAAK8jC,QAAS,OAAO,EAAKA,SAAU,EACpC9jC,GAAkB,kBAANA,IAAgBA,EAAIkJ,KAAK66B,MAAM/jC,IAC/C,EAAK6jC,KAAOhsC,MAAMC,QAAQkI,GAAKA,EAAEkI,KAAI,SAAA5d,GAAU,MAAO,CAACA,YAAW0V,EAAI,CAAC,CAAC1V,MAAO0V,IAAM,KACpF,CAAC+tB,WAAW,KAEjB9Z,QAAS,CACPoL,IADO,SACHrf,GACF,GAAwB,GAApBO,UAAUpY,OAAa,CACzB,IAAIgC,EAAI,GAER,OADA8R,KAAK4nC,KAAK7qC,SAAQ,SAAA0oB,GAAG,OAAKA,EAAKp3B,OAASH,EAAE1B,KAAKi5B,EAAKp3B,UAC7CH,EAET8R,KAAKzE,EAAE05B,WAAalxB,EACpB/D,KAAK2zB,MAAM,oBAAqB5vB,GAChC/D,KAAKoZ,QAAQ,SAAUrV,IAEzBgkC,aAXO,WAYL,IAAIz5C,EAAI0R,KAAKzE,EAAEysC,UACf,OAAO15C,GAAW,QAANA,EAAcA,EAAEqC,QAAQ,MAAO,IAAIA,QAAQ,KAAM,KAAKpB,cAAgB,IAEpF04C,UAfO,WAgBL,IAAI/5C,EAAI,GACJI,EAAI0R,KAAK+nC,eACb,GAAKz5C,EAAL,CACA,IAAIO,EAAI,GAQR,OAPAP,EAAEiB,cAAc8N,MAAM,KAAKN,SAAQ,SAAA9B,GAC5BA,GACLpM,EAAErC,KAAKg7C,GAAcvsC,IAAMA,MAE7BpM,EAAEkO,SAAQ,SAAA9B,GACRA,GAAK/M,EAAE1B,KAAK07C,GAASjtC,IAAMA,MAEtB/M,EAAEmO,KAAK,OAEhB8rC,QA7BO,SA6BC1iB,GACN,IAAIn4B,EAAI,GAAUm4B,EAAKp3B,MAAQo3B,EAAKp3B,MAAMT,KAAO63B,EAAK2iB,KAAKx6C,MAC3D,MAAY,OAALN,GAET+6C,QAjCO,SAiCC5iB,GACN,IAAIn4B,EAAI,GAAUm4B,EAAKp3B,MAAQo3B,EAAKp3B,MAAMT,KAAO63B,EAAK2iB,KAAKx6C,MAC3D,MAAY,OAALN,GAETg7C,QArCO,SAqCC7iB,GACN,IAAIn4B,EAAI,GAAUm4B,EAAKp3B,MAAQo3B,EAAKp3B,MAAMT,KAAO63B,EAAK2iB,KAAKx6C,MAC3D,MAAY,OAALN,GAETi7C,aAzCO,SAyCMxsC,GAAG,WACd,GAAIiE,KAAKzE,EAAEitC,YAAc,GAAKzsC,EAAEiM,OAAOygC,MAAMv8C,OAAS8T,KAAK4nC,KAAK17C,OAAS8T,KAAKzE,EAAEitC,YAC9E,OAAO,GAAE35B,MAAM,GAAExD,IAAI/Q,GAAG,GAAE+Q,IAAIhV,KAAKqC,aAAcsH,KAAKzE,EAAEitC,cAE1D,IAGIE,EACAC,EACAC,EALAC,EAAM7oC,KAAKzE,EAAEutC,aAAe,GAAS9oC,KAAKzE,EAAEutC,aAC5CC,EAAM/oC,KAAKzE,EAAEytC,aAAe,GAAShpC,KAAKzE,EAAEytC,aAC5CC,EAAKjpC,KAAK+nC,eAId,GAAE/rC,OAAOsV,KAAKvV,EAAEiM,OAAOygC,OAAO,SAAAL,GAC5B,IAAIc,EAAM,IAAM,GAAEluC,QAAQotC,EAAKx6C,KAAM,KAAK,GAAM2B,cAC5Cs5C,GAAOT,EAAK/7B,KAAOw8B,GACpBH,IAAcA,EAAY,KAAKl8C,KAAK47C,EAAKx6C,MACjCm7C,GAAOX,EAAK/7B,KAAO08B,GAC3BJ,IAAcA,EAAY,KAAKn8C,KAAK47C,EAAKx6C,MACjCq7C,IAAO,GAAEx8B,OAAOw8B,EAAIC,EAAK,MACjCN,IAAaA,EAAW,KAAKp8C,KAAK47C,EAAKx6C,MAExC,EAAKg6C,KAAKp7C,KAAK,CAAC47C,YAGhBM,EACF,GAAE75B,MAAM,GAAExD,IAAI/Q,GAAG,GAAE+Q,IAAIhV,KAAKyC,mBAAoB4vC,EAAUrsC,KAAK,QAAS2D,KAAKzE,EAAEutC,cACtEH,EACT,GAAE95B,MAAM,GAAExD,IAAI/Q,GAAG,GAAE+Q,IAAIhV,KAAK0C,mBAAoB4vC,EAAUtsC,KAAK,QAAS2D,KAAKzE,EAAEytC,cACtEJ,GACT,GAAE/5B,MAAM,GAAExD,IAAI/Q,GAAG,GAAE+Q,IAAIhV,KAAKsC,yBAA0BiwC,EAASvsC,KAAK,UAEtEN,EAAEiM,OAAO3Z,MAAQ,GACjB2R,KAAKmpC,cAGPC,OA1EO,SA0EA3jB,GAAM,WACX,GAAIzlB,KAAKzE,EAAE8tC,YAAc5jB,EAAKryB,QAAS,CACrC,IAAIsa,EAAM,GAAEL,UAAUrN,KAAKzE,EAAE8tC,UAAWrpC,KAAKzE,EAAE7P,KAAMsU,KAAKzE,GACtDigC,EAAK,IAAI/oB,SACb+oB,EAAGv4B,OAAO,WAAYwiB,EAAK2iB,MAC3B3iB,EAAKryB,SAAU,EACfqyB,EAAK6jB,OAAS,GAAEl+B,KAAKm+B,YAAYD,SACjC,GAAEl+B,KAAKmI,KAAK7F,EAAK8tB,EAAI,CACnBgO,iBAAkB,SAAAztC,GAAA,OAAK0pB,EAAKgkB,SAAWzsC,KAAKoC,MAAMrD,EAAEmgB,OAASngB,EAAE2tC,MAAQ,MACvEC,YAAalkB,EAAK6jB,OAAOM,QACxBp2B,MAAK,SAAAC,GACNgS,EAAKryB,SAAU,EACfqyB,EAAKvJ,QAAS,EACduJ,EAAK6jB,OAAS,KACd,IAAI37C,EAAI,EAAK4N,EAAEsN,OAAS,EAAKtN,EAAEsN,OAAO4K,EAAK,GAAQA,EAAI/nB,KAClDiC,EAIMA,EAAE0M,MACXorB,EAAKprB,MAAQ1M,EAAE0M,MACL1M,EAAE4a,IAKZkd,EAAKp3B,MAAQV,EACb,EAAK4N,EAAEmY,SAAW,EAAKnY,EAAEmY,QAAQ+R,EAAKp3B,MAAO,EAAMolB,IALnDgS,EAAKprB,MAAQ,CACXwvC,QAAS,GAAEx+B,IAAI/Q,GAAG,GAAE+Q,IAAIhV,KAAKuC,oBAAqBqU,KAAKC,UAAUvf,KAPnE83B,EAAKprB,MAAQ,CACXwvC,QAAS,GAAEx+B,IAAIhV,KAAKwC,gBAYxB,EAAKswC,aACD1jB,EAAKprB,OAASorB,EAAKprB,MAAMwvC,SAAS,GAAEh7B,MAAM4W,EAAKprB,MAAMwvC,YACxDv1B,OAAM,SAAAja,GACPorB,EAAKprB,MAAQA,EACborB,EAAKryB,SAAU,EACfqyB,EAAKvJ,QAAS,EACduJ,EAAK6jB,OAAS,KACVjvC,EAAMka,UAAYla,EAAMka,SAAShG,QAAQ,GAAEM,MAAMxU,EAAMka,SAAShG,OAAS,KAAOlU,QAI1F8uC,WAlHO,WAkHM,uBACMnpC,KAAK4nC,MADX,IACX,2BAA4B,KAAnBniB,EAAmB,QAC1B,GAAIA,EAAKryB,QAAS,OAClB,GAAIqyB,EAAK2iB,OAAS3iB,EAAKvJ,OACrB,OAAOlc,KAAKopC,OAAO3jB,IAJZ,8BAOXzlB,KAAK6nC,SAAU,EACf,IAAI9jC,EAAI/D,KAAKojB,MACbpjB,KAAK2zB,MAAM,oBAAqB5vB,GAChC/D,KAAKoZ,QAAQ,SAAUrV,IAEzB+3B,UA9HO,SA8HG//B,EAAG0pB,GACNA,EAAKp3B,QACN2R,KAAKuZ,MAAM,eACbxd,EAAEud,QAAU,aACZvd,EAAE1N,MAAQo3B,EAAKp3B,MACf2R,KAAKoZ,QAAQrd,EAAG0pB,EAAKp3B,QACZ2R,KAAKzE,EAAEuuC,aAChB,GAAEh8B,SAAS,GAAEL,UAAUzN,KAAKzE,EAAEuuC,YAAarkB,EAAKp3B,MAAO2R,KAAKzE,EAAE7P,SAGlEuG,OAxIO,SAwIAwzB,GACLA,EAAK6jB,QAAU7jB,EAAK6jB,OAAOp3C,SAC3B,IAAIlG,EAAIgU,KAAK4nC,KAAKrjB,WAAU,SAAAxgB,GAAA,OAAKA,GAAK0hB,KACtCzlB,KAAK4nC,KAAKx6C,OAAOpB,EAAG,GACpBgU,KAAKmpC,cAEPx3B,SA9IO,WA+IL,IAAI5N,EAAI/D,KAAKojB,MACb,OAAOrf,EAAEkI,KAAI,SAAAxe,GAAA,OAAKA,EAAEG,QAAMyO,KAAK,OAEjC0tC,WAlJO,WAmJL/pC,KAAKge,MAAMoqB,KAAKj5B,SAElB66B,UArJO,WAqJK,WACV,OAAOhqC,KAAK4nC,KAAK37B,KAAI,SAAAwZ,GACnB,IAAI52B,EAAI42B,EAAKp3B,MAAQo3B,EAAKp3B,MAAMT,KAAO63B,EAAK2iB,KAAKx6C,KACjD,OAAO,gBAAE,MAAO,CACdyqB,MAAO,CAAC,qBAAsB,CAC5B,YAAaoN,EAAKryB,QAClB,QAASqyB,EAAKprB,QAEhB2J,MAAO,CACL,sBAAuByhB,EAAK2iB,KAAL,UAAe3iB,EAAKgkB,UAAY,EAAhC,KAAuC,GAC9DrjC,MAAO,GAAEgG,SAAS,EAAK7Q,EAAE0uC,YAE3Bt1B,MAAO8Q,EAAKprB,MAAQorB,EAAKprB,MAAMwvC,QAAUh7C,EACzCgsB,QAAS,SAAA9e,GAAA,OAAK,EAAK+/B,UAAU//B,EAAG0pB,KAC/B,CACD,gBAAE,IAAK,CACLpN,MAAO,CAAC,8BAA+B,YAAc,GAAUxpB,MAEjE42B,EAAKprB,OAAS,gBAAE,MAAO,CACrBge,MAAO,4BACN,GAAEhN,IAAIhV,KAAKoC,cACd,gBAAE,MAAO,CACP4f,MAAO,oCACNxpB,GAAI,gBAAE,MAAO,CACdwpB,MAAO,yCACP1D,MAAO,GAAEtJ,IAAIpZ,OACb4oB,QAAS,SAAA9e,GACP,EAAK9J,OAAOwzB,GAAO1pB,EAAEywB,2BAM/B0d,gBAtLO,WAuLL,MAAO,CACLlqC,KAAKq4B,oBACL,gBAAE,QAAS,CACT5wB,KAAM,OACNoY,IAAK,OACLsqB,SAAgC,GAAtBnqC,KAAKzE,EAAEitC,YACjB4B,OAAQpqC,KAAKioC,YACblO,SAAU/5B,KAAKuoC,iBAIrB8B,kBAlMO,WAkMa,WAClB,OAAO,gBAAE1V,GAAW,CAClB9U,IAAK,YACLxH,MAAO,mBACPjoB,IAAK,IACJ,CACD8vB,QAAS,iBAAM,CAAC,EAAKxF,OAAO4vB,OAAS,EAAK5vB,OAAO4vB,SAAW,gBAAE5b,GAAQ,CACpE1sB,KAAM,OACN+a,KAAM,mBACN1E,MAAO,sBACPwC,QAAS,EAAKkvB,kBAIpBQ,gBAhNO,WAiNL,OAAOvqC,KAAK4nC,KAAK17C,OAAS,gBAAE,MAAO,CACjC2zB,IAAK,OACLxH,MAAO,CAAC,oBAAD,+BAA6BrY,KAAKzE,EAAEimB,SAAS,IAAI,IAAjD,QAA6D,GAAEjc,GAAGpV,OAAOC,OAC/E4P,KAAKgqC,aAAgBhqC,KAAKg2B,SAEH,KAFc,gBAAE,MAAO,CAC/C3d,MAAO,oCACN,GAAEhN,IAAIhV,KAAKmC,WAEhBk/B,WAxNO,WAyNL,OAAO13B,KAAKkqC,kBAAkB/gC,OAAOnJ,KAAKwqC,WAAaxqC,KAAKqqC,oBAAqBrqC,KAAKuqC,qBAI1FlvB,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEE4R,gBAAiB,SAAC1mC,GAAM,uBACL,EAAK6jC,MADA,IACtB,2BAA4B,KAAnBniB,EAAmB,QAC1B,GAAIA,EAAKryB,QACP,OAAO,EAAKojC,QAAQ,CAAC/uB,KAAM,mBAE7B,GAAIge,EAAKprB,MACP,OAAO,EAAKm8B,QAAQ,CAAC/uB,KAAM,yBANT,mCAY5BiuB,YAhBQ,WAiBN,IAAI3xB,EAAI/D,KAAKojB,MACb,OAAmB,GAAZrf,EAAE7X,OAAc,GAAK+gB,KAAKC,UAAUnJ,IAE7C+yB,eApBQ,WAqBN,OAAO92B,KAAKge,MAAM0sB,WAAa1qC,MAEjCwqC,UAvBQ,WAwBN,QAAKxqC,KAAKg2B,YACNh2B,KAAKzE,EAAEitC,YAAc,GAAKxoC,KAAK4nC,KAAK17C,QAAU8T,KAAKzE,EAAEitC,cAG3D5sB,WA5BQ,WA6BN,MAAO,CAAC,aAAc5b,KAAKzE,EAAEimB,WAE/BzF,WA/BQ,WAgCN,MAAO,CACL,uBAAwB,SAG5Bid,QApCQ,WAoCE,WACR,MAAO,CACLne,QAAS,kBAAM,EAAKiJ,MAAK,QC5UpB,I,UAAA,I,ICDJzL,MAAM,Y,UAGiBwH,IAAI,UAAUzZ,MAAM,KAAKC,OAAO,KAAKgS,MAAM,+C,UAChDA,MAAM,oE,iFAPjC,gBAUQ,GAVAA,MAAK,oCAAwC,EAAAoN,KAAKryB,QAAO,YAAe,EAAAqvB,QAAO,QAAW,EAAAgD,KAAKprB,QAASwlB,IAAI,YAAanS,IAAK,EAAAA,IAAMi9B,WAAU,EAAAC,QACnJxkC,MAAO,EAAAgjC,OAAO7tC,EAAEsvC,eAAiBC,YAAW,EAAA1B,OAAO7tC,EAAEsvC,eAAc,EAAKE,aAAY,EAAA3B,OAAO7tC,EAAEyvC,gBAAe,EAAKC,IAAK,EAAAA,IAAM,QAAO,EAAA97B,O,iBAIzHyF,MAAK,iBACd,iBAA8H,CAAhH,EAAA6Q,KAAKryB,S,kBAAnB,gBAA8H,SAA9H,GAA8H,WAChH,EAAAqvB,S,kBAAd,gBAAoG,IAApG,K,uBACS,EAAA2mB,OAAOpT,U,kBAAhB,gBAA2H,K,MAAjG3d,MAAM,wDAAyD1D,MAAO,EAAAA,MAAQ,QAAK,8BAAE,EAAA1iB,QAAA,EAAAA,OAAA,sB,oDANjG,EAAAm3C,OAAO7tC,EAAE2vC,a,MAAe,U,oBACtC,iBAAoC,CAApC,gBAAoC,MAApC,GAAoC,gBAAZ,EAAAt9C,MAAI,a,oGAajB,IACbopB,MAAO,CAAC,QACR2G,OAAQ,CAAC,iBACTjyB,KAHa,WAIX,MAAO,CACLk/C,QAAS,OAGb5yB,QAAS,CACP7I,MADO,SACDpT,GACJiE,KAAKmrC,cAAcrP,UAAU//B,EAAGiE,KAAKylB,OAEvC2lB,qBAJO,WAIgB,WACjBl9C,EAAI,IAAIm9C,WACZn9C,EAAEo9C,OAAS,SAACvvC,GACN,EAAK0pB,KAAKvJ,SACd,EAAK0uB,QAAU7uC,EAAEiM,OAAOjb,SAE1BmB,EAAEq9C,cAAcvrC,KAAKylB,KAAK2iB,OAE5BoD,qBAZO,WAYgB,WACjB/D,EAAQx3C,SAASmS,cAAc,SACnCqlC,EAAMp9B,iBAAiB,cAAc,WACnC0W,YAAW,WACT,IAAI,EAAK0E,KAAKvJ,OAAd,CACA,IAAIvX,EAAM1U,SAASmS,cAAc,UAC7B2G,EAAMpE,EAAI8mC,WAAW,MACzB9mC,EAAIyB,MAAQqhC,EAAMiE,WAClB/mC,EAAI0B,OAASohC,EAAMkE,YACnB5iC,EAAI6iC,UAAUnE,EAAO,EAAG,GACxB,EAAKmD,QAAUjmC,EAAIknC,UAAU,aAC7BpE,EAAMtI,QACN,GAAEh0B,EAAEs8B,GAAOx1C,YACV,QAELw1C,EAAM/5B,IAAMwG,IAAIC,gBAAgBnU,KAAKylB,KAAK2iB,MAC1CX,EAAMqE,OAAQ,EACdrE,EAAMvI,QAER6M,YA/BO,SA+BKxxC,GACV,IAAIoK,EAAM3E,KAAKge,MAAM5qB,QACrB,GAAK4M,KAAKylB,KAAKryB,SAAYuR,EAA3B,CACA,IAAIoE,EAAMpE,EAAI8mC,WAAW,MACzB9mC,EAAIyB,MAAQzB,EAAIyB,MAChB2C,EAAIijC,YACJjjC,EAAIkjC,UAAU,GAAI,IAClBljC,EAAImjC,OAAO,EAAG,GACdnjC,EAAIojC,IAAI,EAAG,EAAG,GAAe,IAAVnvC,KAAKkU,GAASlU,KAAKkU,IAAO,EAAI3W,EAAI,IAAO,KAC5DwO,EAAIqjC,YACJrjC,EAAIsjC,UAAY,uBAChBtjC,EAAIujC,OACJvjC,EAAIijC,YACJjjC,EAAIojC,IAAI,EAAG,EAAG,GAAI,EAAa,EAAVnvC,KAAKkU,IAC1BnI,EAAIwjC,YAAc,OAClBxjC,EAAIyjC,WAENv6C,OAhDO,SAgDA8J,GACLiE,KAAKopC,OAAOn3C,OAAO+N,KAAKylB,MACxB1pB,EAAEywB,oBAGNnR,SAAU,CACR+tB,OADQ,WAEN,OAAOppC,KAAKmrC,eAEd7D,IAJQ,WAKN,OAAOtnC,KAAKge,MAAMyuB,UAAUzuB,MAAMspB,KAEpC55B,IAPQ,WAQN,OAAO1N,KAAKylB,KAAKp3B,MAAQ,GAAEof,UAAUzN,KAAKylB,KAAKp3B,MAAMo+C,WAAazsC,KAAKopC,OAAO7tC,EAAEmxC,aAAc1sC,KAAKylB,KAAKp3B,MACtG2R,KAAKopC,OAAO7tC,EAAE7P,MAAQ,IAE1BkC,KAXQ,WAYN,OAAOoS,KAAKylB,KAAKp3B,MAAQ2R,KAAKylB,KAAKp3B,MAAMT,KAAOoS,KAAKylB,KAAK2iB,KAAKx6C,MAEjEq9C,IAdQ,WAeN,OAAOjrC,KAAKylB,KAAKprB,MAAQ2F,KAAKylB,KAAKprB,MAAMwvC,QAAU7pC,KAAKpS,MAE1D+mB,MAjBQ,WAkBN,OAAO,GAAEtJ,IAAIpZ,QAEfwwB,QApBQ,WAqBN,OAAOziB,KAAKylB,KAAKp3B,QAAU2R,KAAKopC,OAAOf,QAAQroC,KAAKylB,OAASzlB,KAAKopC,OAAOd,QAAQtoC,KAAKylB,SAG1FjP,QArFa,WAqFH,YACHxW,KAAKylB,KAAKvJ,QAAUlc,KAAKylB,KAAK2iB,OACjCpoC,KAAKopC,OAAOf,QAAQroC,KAAKylB,MAAQzlB,KAAKwrC,uBAAyBxrC,KAAKopC,OAAOjB,QAAQnoC,KAAKylB,OAAQzlB,KAAKorC,uBACrGprC,KAAK8X,QAAO,kBAAM,EAAK2N,KAAKgkB,YAAU,SAAA1lC,GAAA,OAAK,EAAKgoC,YAAYhoC,KAAI,CAC9D+tB,WAAW,O,UCrGrB,GAAO7V,OAAS,GAED,UCIE,IACbruB,KAAM,gBACNqvB,OAAQ,CAAC0vB,IACT31B,MAAO,CAAC,iBAAkB,kBAAmB,gBAC7C2K,QAJa,WAKX,MAAO,CACLwpB,cAAenrC,OAGnBgY,QAAS,CACPC,UADO,WAEL,MAAO,CACL+vB,UAAW,QAEX6C,eAAgB,GAChBG,gBAAiB,KAGrBhB,UATO,WAUL,OAAOhqC,KAAK4nC,KAAK37B,KAAI,SAAAwZ,GACnB,OAAO,gBAAEmnB,GAAiB,CAACnnB,aAG/B4kB,kBAdO,WAca,WAClB,OAAO,gBAAE1V,GAAW,CAClB9U,IAAK,YACLxH,MAAO,mBACPjoB,IAAK,IACJ,CACD8vB,QAAS,iBAAM,CAAC,EAAKxF,OAAO4vB,OAAS,EAAK5vB,OAAO4vB,SAAW,gBAAE5b,GAAQ,CACpE7O,IAAK,eACLlL,MAAO,GAAEtJ,IAAIhV,KAAKvC,aAClBipB,KAAM,iBACN1E,MAAO,uBACPrU,MAAO,CACLoC,MAAO,GAAEgG,SAAS,EAAK7Q,EAAEsvC,gBACzBxkC,OAAQ,GAAE+F,SAAS,EAAK7Q,EAAEyvC,kBAE5BnwB,QAAS,EAAKkvB,kBAIpBrS,WAjCO,WAkCL,OAAO13B,KAAKkqC,kBAAkB/gC,OAAO,gBAAE,MAAO,CAC5CkP,MAAO,CAAC,4BAA6B,CAAC,UAAW,GAAE9S,GAAGpV,OAAOC,OAC5D,CAAC4P,KAAKgqC,YAAahqC,KAAKwqC,WAAaxqC,KAAKqqC,yBAGjDhvB,SAAU,CACRU,WADQ,WAEN,MAAO,CACL,uBAAwB,GAAE3P,SAASpM,KAAKzE,EAAEyvC,qBCzDrC,I,UAAA,ICDE,IACbp9C,KAAM,gBACNqvB,OAAQ,CAAC4vB,IACT70B,QAAS,CACPC,UADO,WAEL,MAAO,CACL+vB,UAAW,QAEX6C,eAAgB,GAChBG,gBAAiB,MAIvB3vB,SAAU,CACRO,WADQ,WAEN,MAAO,mBChBA,M,ICANvD,MAAM,qB,kDAFb,gBAMS,SANT,gBAMS,EANiB,YAAGA,MAAK,gBAAmB,EAAA4rB,oBAAoBlyB,SAASnkB,KAAI,kBAAuB,EAAAsnC,QAAO,OAAU,EAAA3S,SAAQ,QAAW,EAAAuqB,QAC9I,QAAK,8BAAE,EAAA39B,OAAA,EAAAA,MAAA,qBAAQoT,SAAU,EAAAA,SAAW5N,MAAO,EAAA3S,O,CAC5C,gBAEM,MAFN,GAEM,CADJ,gBAAqB,uBAArB,iBAAqB,C,gCAAb,EAAAA,MAAI,SAEH,EAAA8qC,O,kBAAX,gBAAkF,O,MAA/Dz0B,MAAK,qCAAyC,EAAA6c,W,0DAOpD,QACbtnC,KAAM,WACNqvB,OAAQ,CAACgC,IACTjI,MAAO,CAAC,QAAS,OAAQ,YACzB2G,OAAQ,CAAC,uBACT3F,QAAS,CACP7I,MADO,SACDpT,GACAiE,KAAKikC,oBAAoB8I,aAC3B/sC,KAAKikC,oBAAoB8I,YAAY/sC,QAI3Cqb,SAAU,CACR6Z,QADQ,WAEN,IAAIznC,EAAIuS,KAAKikC,oBAAoB1oC,EAAE05B,WACnC,OAAOr5B,MAAMC,QAAQpO,GAAKA,EAAE4nB,SAASrV,KAAK3R,OAAS,GAAEoe,OAAOhf,EAAGuS,KAAK3R,QAEtEy+C,MALQ,WAMN,OAAO9sC,KAAKikC,oBAAoB1oC,EAAE4uC,Y,UC1B1C,GAAOluB,OAAS,GAED,UCAE,IACbruB,KAAM,YACNqvB,OAAQ,CAACmpB,IACTzoB,OAAQ,CAAC,sBACT3G,MAAO,CAAC,UAAW,SAAU,aAAc,iBAAkB,OAAQ,UAAW,UAAW,WAAY,YACvGR,QALa,WAMXxW,KAAKzE,EAAEgtB,QAAUvoB,KAAKgtC,YAExBh1B,QAAS,CACPC,UADO,WAEL,MAAO,CACLg1B,KAAM,EACNC,SAAS,EACT1wB,YAAY,EACZ2wB,eAAgB,QAChBjU,WAAal5B,KAAKupB,oBAAsBvpB,KAAKupB,mBAAmBhuB,EAAE29B,YAAe,MAGrF8T,SAVO,WAUI,WACLjpC,EAAI,GAAK/D,KAAKzE,EAAE05B,WAChB3nC,EAAI0S,KAAKzE,EAAEgtB,OAAO6kB,WAAa,IAC/Bl/C,EAAIiO,OAAO7O,EAAEqD,QAAQ,sBAAuB,QAAS,KACrDrC,EAAI,GAAE8O,UAAU2G,EAAG/D,KAAKzE,EAAEgtB,OAAOr8B,OAAQoB,EAAG0S,KAAKzE,EAAEgtB,OAAO8kB,WAC9D,GAAItpC,IAAMzV,EAAG,CACX,IAAIO,EAAImR,KAAKge,MAAMja,EAAE1C,eACjBpG,EAAI8I,EAAE5U,MAAM,EAAGN,GAAG8B,QAAQzC,EAAG,IAEjC,GADA8R,KAAKojB,IAAI90B,GACL2B,SAASq9C,gBAAkBttC,KAAKge,MAAMja,EAAG,CAC3C,IAAIxJ,EAAIjM,EAAEa,MAAM,EAAGN,GAAG8B,QAAQzC,EAAG,IACjC8R,KAAKwY,WAAU,kBAAM,GAAEpX,UAAU,EAAK4c,MAAMja,EAAGlV,GAAKoM,EAAE/O,OAASqO,EAAErO,eAIvEqhD,OAzBO,SAyBAhzC,GACL,GAAKyF,KAAKg2B,SAAV,CACA,IAAIvoC,EAAIuS,KAAK21B,iBAAiB,YAC1B9mC,EAAImR,KAAK21B,iBAAiB,YAC1BvmC,EAAI4Q,KAAKojB,MACTrf,EAAI,GAAEjH,OAAO,GAAEJ,OAAOtN,GAAImL,EAAIyF,KAAKzE,EAAE0xC,MACrCj+C,EAAIgR,KAAKupB,oBAAsBvpB,KAAKupB,mBAAmBikB,QACvDt/C,EAAI6V,EAGR,GAFK,MAALtW,IAAcS,EAAI8O,KAAKw/B,IAAI/uC,EAAGS,IACzB,MAALW,IAAcX,EAAI8O,KAAKC,IAAIpO,EAAGX,IAC1Bc,EACF,GAAIA,EAAE,IAAMgR,KAAM,CAChB,IAAIytC,EAAWz+C,EAAE,GAAGo0B,MACJ,MAAZqqB,IAAkBv/C,EAAI8O,KAAKw/B,IAAIiR,EAAUv/C,SACxC,GAAIc,EAAE,IAAMgR,KAAM,CACvB,IAAI0tC,EAAa1+C,EAAE,GAAGo0B,MACJ,MAAdsqB,IAAoBx/C,EAAI8O,KAAKC,IAAIywC,EAAYx/C,IAGrD8R,KAAK8jB,MAAK,GACV9jB,KAAK+2B,QACL/2B,KAAKojB,IAAIl1B,GACLA,GAAK6V,GACH/D,KAAK2tC,UACP,GAAE/6C,MAAMoN,KAAK2tC,SACb3tC,KAAK2tC,QAAU,MAGnB3tC,KAAKzE,EAAEgtB,QAAUvoB,KAAKgtC,aAExBvX,YAvDO,SAuDK1xB,GACV,OAAQ/D,KAAK2jB,cAAc,KAAM5f,IAEnCozB,cA1DO,SA0DO10B,GACZ,OAAOzC,KAAKge,MAAM4vB,MAAQ5tC,KAAKge,MAAM4vB,KAAK9zB,SAASrX,IAErDorC,gBA7DO,SA6DS9pC,EAAG7V,GACjB,GAAI6V,GAAK7V,GAAKA,EAAE8Z,QAAUhI,KAAK0P,UAAW,CACxC,IAAIjiB,EAAIS,EAAEK,MAAQ,KACdD,EAAIJ,EAAE8Z,OAAOtF,SAAWxU,EAAE8Z,OAAShI,KAAK0P,UAAUjT,EAAEvO,EAAE8Z,QACtD8lC,EAAKx/C,GAAKA,EAAE+0B,UAChB,GAAItf,GAAK+pC,GAAM,GAAElxC,SAASmH,IAAM,GAAEnH,SAASkxC,GAAK,CAC9C,IAAIngD,EAAI,GAAE+O,OAAOqH,GACb+rB,EAAK,GAAEpzB,OAAOoxC,GAClB,IAAK,GAAEliC,KAAK,IAAMne,EAAI,KAAM,CAACE,IAAGmiC,OAC9B,MAAO,CAAC9vB,KAAK42B,eAAgBnpC,EAAGa,EAAEsoC,mBAI1CI,QA1EO,SA0ECj7B,GACNiE,KAAKojB,IAAIrnB,EAAEiM,OAAO3Z,OAClB2R,KAAKzE,EAAEgtB,QAAUvoB,KAAKgtC,YAExB9U,QA9EO,SA8ECn8B,GACNiE,KAAKi3B,UAAUl7B,IAEjBo8B,OAjFO,SAiFAp8B,GACL,IAAIgI,EAAI/D,KAAKzE,EAAE05B,WACf,GAAIlxB,IAAM/D,KAAKy1B,YAAY1xB,IAAM/D,KAAKzE,EAAE2xC,QAAS,CAC/C,IAAI3L,EAAK,GAAEhkC,WAAWwG,EAAG/D,KAAKzE,EAAEwyC,SAChCxM,EAAK,GAAE1kC,SAAS0kC,EAAIvhC,KAAKzE,EAAE1E,SAAUmJ,KAAKzE,EAAE3E,UAC5CoJ,KAAKojB,IAAIme,GAEXvhC,KAAKk3B,SAASn7B,IAEhBu8B,YA1FO,WA0FO,WACZ,GAAIt4B,KAAKzE,EAAEihB,WAAY,CACrB,GAA8B,UAA1Bxc,KAAKzE,EAAE4xC,eACT,OAAO,gBAAE,MAAO,CACd90B,MAAO,gDACPwH,IAAK,QACJ,CACD,gBAAE,SAAU,CACVxH,MAAO,0BACPkK,SAAUviB,KAAKzE,EAAEgnB,SACjB1H,QAAS,SAAA9e,GAAA,OAAK,EAAKwxC,OAAO,IAC1BlrC,UAAW,kDAEb,gBAAE,SAAU,CACVgW,MAAO,4BACPkK,SAAUviB,KAAKzE,EAAEgnB,SACjB1H,QAAS,SAAA9e,GAAA,OAAK,EAAKwxC,QAAQ,IAC3BlrC,UAAW,sDAGV,GAA8B,YAA1BrC,KAAKzE,EAAE4xC,eAChB,MAAO,CACL,gBAAE,SAAU,CACV90B,MAAO,6BACPkK,SAAUviB,KAAKzE,EAAEgnB,SACjB1H,QAAS,SAAA9e,GAAA,OAAK,EAAKwxC,OAAO,IAC1BlrC,UAAW,+CAEb,gBAAE,SAAU,CACVgW,MAAO,4BACPkK,SAAUviB,KAAKzE,EAAEgnB,SACjB1H,QAAS,SAAA9e,GAAA,OAAK,EAAKwxC,OAAO,IAC1BlrC,UAAW,kDAQvBgZ,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEEhiC,SAAU,SAACkN,EAAG7V,EAAGid,GACf,GAAIpH,GAAU,MAAL7V,GAAmB,KAANA,IAAa,GAAE0O,SAAS1O,GAAM,GAAEwO,OAAOqH,GAAK,GAAErH,OAAOxO,GAAO6V,EAAI7V,GACpF,OAAO,EAAKsoC,QAAQrrB,EAAG,CAACjd,KAE5B0I,SAAU,SAACmN,EAAG7V,EAAGid,GACf,GAAIpH,GAAU,MAAL7V,GAAmB,KAANA,IAAa,GAAE0O,SAAS1O,GAAM,GAAEwO,OAAOqH,GAAK,GAAErH,OAAOxO,GAAO6V,EAAI7V,GACpF,OAAO,EAAKsoC,QAAQrrB,EAAG,CAACjd,KAE5B4J,QAAS,SAACiM,EAAG7V,EAAGid,GACd,IAAIpP,EAAI,EAAK8xC,gBAAgB9pC,EAAG7V,GAChC,GAAI6N,EAAG,OAAO,EAAKy6B,QAAQrrB,EAAGpP,IAEhC0uC,gBAAiB,SAAC1mC,GAEhB,GADA,EAAKxI,EAAEgtB,SAAWxkB,EAAIA,EAAEpT,QAAQwL,OAAO,EAAKZ,EAAEgtB,OAAO6kB,WAAa,IAAK,KAAM,KACpE,MAALrpC,EAAW,CACb,IAAK,GAAEnH,SAASmH,GACd,OAAO,EAAKyyB,QAAQ,CAClB/uB,KAAM,mBAEV,IAAI9Z,EAAI,EAAK4N,EAAEwyC,QAEf,GADAhqC,EAAI,GAAKA,GACJpW,GAAKoW,EAAEsR,SAAS,KACnB,OAAO,EAAKmhB,QAAQ,CAClB/uB,KAAM,mBAEV,GAAI9Z,GAAKA,EAAI,GAAK,GAAEqN,QAAQ+I,EAAG,KAAK7X,OAASyB,EAC3C,OAAO,EAAK6oC,QAAQ,CAClB/uB,KAAM,wBACL,CAAC9Z,IACN,IAAIoO,EAAI,EAAKwtB,oBAAsB,EAAKA,mBAAmBykB,gBAC3D,GAAIjyC,EAAG,OAAO,EAAKy6B,QAAQ,CACzB/uB,KAAM,WACL1L,QAKXq8B,WAzCQ,WA0CN,MAAO,CACL,cAAe,SACfpB,QAASh3B,KAAKg3B,QACdkB,QAASl4B,KAAKk4B,QACdC,OAAQn4B,KAAKm4B,SAGjBvc,WAjDQ,WAkDN,MAAO,oBAAsB5b,KAAKzE,EAAE4xC,kBC9L7B,I,UAAA,ICIE,IACbv/C,KAAM,eACNqvB,OAAQ,CAACmpB,IACTzoB,OAAQ,CAAC,sBACT3G,MAAO,CAAC,aAAc,WAAY,SAAU,UAAW,UAAW,WAAY,WAAY,YAAa,aAAc,eAAgB,eACnI,cAAe,gBAAiB,iBAClCtrB,KANa,WAOX,MAAO,CACL0hC,UAAU,EACVkU,YAAa,KACbwB,WAAY,KACZvN,iBAAkB,uBAGtBvd,QAAS,CACPC,UADO,WAEL,MAAO,CACLsQ,OAAQ,aACR2kB,SAAS,EACT1wB,YAAY,EACZ0c,WAAal5B,KAAKupB,oBAAsBvpB,KAAKupB,mBAAmBhuB,EAAE29B,YAAe,MAGrFzD,YATO,SASK1xB,GACV,IAAK,GAAExE,UAAUwE,EAAG/D,KAAKzE,EAAEgtB,QAAS,OAAO,EAC3C,IAAInhB,EAAKpH,KAAKzE,EAAE2mC,YAAc,GAAE/1B,YAAYnM,KAAKzE,EAAE2mC,YAC/CI,EAAKtiC,KAAKzE,EAAE8mC,cAAgB,GAAEl2B,YAAYnM,KAAKzE,EAAE8mC,cACjDI,EAAKziC,KAAKzE,EAAEinC,cAAgB,GAAEr2B,YAAYnM,KAAKzE,EAAEinC,cACrD,GAAIp7B,GAAMk7B,GAAMG,EAAI,CAClB,IAAI90C,EAAI,GAAEiQ,UAAUmG,EAAG/D,KAAKzE,EAAEgtB,QAC9B,GAAKnhB,IAAOA,EAAGiO,SAAS1nB,EAAEsQ,aAAiBqkC,IAAOA,EAAGjtB,SAAS1nB,EAAEuQ,eAAmBukC,IAAOA,EAAGptB,SAAS1nB,EAAEwQ,cAAgB,OAAO,EAEjI,OAAO,GAET+5B,QApBO,SAoBCn8B,GACNiE,KAAK8iC,WAAa9iC,KAAKzE,EAAE05B,WACzBj1B,KAAKi3B,UAAUl7B,IAEjBkyC,QAxBO,WAyBLjuC,KAAKotB,UAAW,GAElB8gB,QA3BO,WA4BLluC,KAAKotB,UAAW,EAChBptB,KAAKshC,YAAc,KACnBthC,KAAKmuC,aAEPA,UAhCO,WAiCL,IAAIpqC,EAAI/D,KAAKzE,EAAE05B,WACf,GAAIlxB,EACF,GAAK/D,KAAKy1B,YAAY1xB,GAEf,CACL,IAAIqqC,EAAK,YACLA,EAAGt9C,KAAKiT,IACV/D,KAAKojB,IAAIrf,EAAEpT,QAAQy9C,EAAI,aAJzBpuC,KAAKzE,EAAE2xC,SAAWltC,KAAKojB,IAAIpjB,KAAK8iC,aAStCxV,KA7CO,WA8CD,GAAE/nB,GAAGlV,OACP,GAAEsP,UAAF,+BACEtR,MAAO2R,KAAKzE,EAAE05B,WACd1M,OAAQvoB,KAAKzE,EAAEgtB,QACZvoB,KAAKquC,aAHV,IAIE36B,QAAS1T,KAAKsuC,oBAGhBtuC,KAAKotB,UAAW,GAGpBkhB,iBAzDO,SAyDUlrB,GACfpjB,KAAKojB,IAAIA,GACTpjB,KAAKotB,UAAW,EAChBptB,KAAKshC,YAAc,KACd,GAAE/7B,GAAGlV,QACR2P,KAAK+2B,SAETsX,UAhEO,WAiEL,IAAIx3C,EAAWmJ,KAAKzE,EAAE1E,SAClBD,EAAWoJ,KAAKzE,EAAE3E,SAClB5H,EAAIgR,KAAKupB,oBAAsBvpB,KAAKupB,mBAAmBikB,QAC3D,GAAIx+C,EACF,GAAIA,EAAE,IAAMgR,KAAM,CAChB,IAAIpF,EAAM5L,EAAE,GAAGq0B,UACJ,MAAPzoB,IAA4B,MAAZhE,GAAoBA,EAAWgE,KAAMhE,EAAWgE,QAC/D,GAAI5L,EAAE,IAAMgR,KAAM,CACvB,IAAIglB,EAAQh2B,EAAE,GAAGq0B,UACJ,MAAT2B,IAA8B,MAAZnuB,GAAoBA,EAAWmuB,KAAQnuB,EAAWmuB,GAG5E,MAAO,CACLnuB,WACAD,aAGJi3C,gBAlFO,SAkFS9pC,EAAG7V,GACjB,GAAI6V,GAAK7V,GAAKA,EAAE8Z,QAAUhI,KAAK0P,UAAW,CACxC,IAAIjT,EAAIuD,KAAKzE,EAAEgtB,OACX96B,EAAIS,EAAEK,MAAQ,KACdD,EAAIJ,EAAE8Z,OAAOtF,SAAWxU,EAAE8Z,OAAShI,KAAK0P,UAAUjT,EAAEvO,EAAE8Z,QACtD8lC,EAAKx/C,GAAKA,EAAE+0B,UAChB,GAAItf,GAAK+pC,GAAM,GAAEvuC,UAAUwE,EAAGtH,IAAM,GAAE8C,UAAUuuC,EAAIrxC,GAAI,CACtD,IAAI9O,EAAI,GAAEiQ,UAAUmG,EAAGtH,GACnBqzB,EAAK,GAAElyB,UAAUkwC,EAAIrxC,GACzB,IAAK,GAAEmP,KAAK,IAAMne,EAAI,KAAM,CAACE,IAAGmiC,OAC9B,MAAO,CAAC9vB,KAAK42B,eAAgBnpC,EAAGa,EAAEsoC,mBAI1C0B,YAhGO,WAgGO,WACRpqC,EAAI,GACJuO,EAAIuD,KAAKzE,EAAEgtB,QAAU,GACrBgmB,EAAW,EACX9xC,EAAE4Y,SAAS,MAAMk5B,IACjB9xC,EAAE4Y,SAAS,MAAMk5B,IACjB9xC,EAAE4Y,SAAS,MAAMk5B,IACrB,IAAInP,EAAW,QAAQtuC,KAAK2L,KAAO,QAAQ3L,KAAK2L,GAsChD,OApCIuD,KAAKzE,EAAEihB,YAAYtuB,EAAE1B,KAAK,gBAAE,SAAU,CACxC6rB,MAAO,2BACPkK,SAAUviB,KAAKzE,EAAEgnB,YAEfviB,KAAKotB,UACPl/B,EAAE1B,KAAK,gBAAEogC,GAAQ,CACfzU,aAAa,EACbE,MAAO,CAAC,mCAAoCrY,KAAKuuB,UAAW,CAAC,YAAaggB,EAAU,aAAcnP,IAClGp7B,MAAO,CAAC,2BAA6BuqC,GAAY,IACjDt7B,QAASjT,KACTolB,UAAU,EACVte,KAAM,CACJkB,OAAQ,kBAAM,EAAKkS,YACnBzF,SAAU,IACVgX,OAAQ,GAEVgD,QAASzuB,KAAKkuC,SACb,CACDhuB,QAAS,kBAAM,gBAAEsuB,GAAD,eAAC,gBACfnoC,OAAQ,IACRg6B,KAAK,EACLhb,QAAS,EAAKic,aAAe,EAAK/lC,EAAE05B,YAAc,GAClD5mC,MAAO,EAAKkN,EAAE05B,WACd1M,OAAQ,EAAKhtB,EAAEgtB,QACZ,EAAK8lB,aANM,IAOdnM,WAAY,EAAK3mC,EAAE2mC,WACnBG,aAAc,EAAK9mC,EAAE8mC,aACrBG,aAAc,EAAKjnC,EAAEinC,aACrBP,YAAa,EAAK1mC,EAAE0mC,YACpBG,cAAe,EAAK7mC,EAAE6mC,cACtBG,cAAe,EAAKhnC,EAAEgnC,cACtB7uB,QAAS,EAAK46B,iBACd,eAAgB,SAACvyC,EAAG0pB,GAAU,EAAK6b,YAAc7b,EAAKp3B,cAIrDH,IAGXmtB,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEEhiC,SAAU,SAACkN,EAAG7V,EAAGid,GACf,GAAIpH,GAAK,GAAEnG,UAAUmG,EAAG,EAAKxI,EAAEgtB,QAAU,GAAE3qB,UAAU1P,EAAG,EAAKqN,EAAEgtB,QAC7D,OAAO,EAAKiO,QAAQrrB,IAExBvU,SAAU,SAACmN,EAAG7V,EAAGid,GACf,GAAIpH,GAAK,GAAEnG,UAAUmG,EAAG,EAAKxI,EAAEgtB,QAAU,GAAE3qB,UAAU1P,EAAG,EAAKqN,EAAEgtB,QAC7D,OAAO,EAAKiO,QAAQrrB,IAExBrT,QAAS,SAACiM,EAAG7V,EAAGid,GACd,IAAIpP,EAAI,EAAK8xC,gBAAgB9pC,EAAG7V,GAChC,GAAI6N,EAAG,OAAO,EAAKy6B,QAAQrrB,EAAGpP,IAEhC0uC,gBAAiB,SAAC1mC,EAAG7V,EAAGid,GACtB,IAAI,EAAK5P,EAAE4uC,SAAX,CAEA,GAAIpmC,EAAG,CACL,IAAIrW,EAAIqW,EACJpW,EAAI,GAAEiQ,UAAUlQ,EAAG,EAAK6N,EAAEgtB,QAC1BxuB,EAAIpM,EAAEkQ,cACNpQ,EAAI,KACJoB,EAAI,IACR,GAAIkL,EAAItM,GAAKsM,EAAIlL,EACf,OAAO,EAAK2nC,QAAQ,CAAC/uB,KAAM,eAAgB,CAAC5Y,EAAGpB,IACjD,GAAIC,GAAK,GAAEiQ,WAAWhQ,EAAG,EAAK4N,EAAEgtB,QAC9B,OAAO,EAAKiO,QAAQ,CAAC/uB,KAAM,eAAgB,CAAC,GAAE9J,WAAW,IAAIW,KAAM,EAAK/C,EAAEgtB,UAG9E,GAAI,EAAKoN,iBAAiB,cAAgB5xB,GAAKA,EAAI,GAAEpG,WAAW,IAAIW,KAAQ,EAAK/C,EAAEgtB,QACjF,OAAO,EAAKiO,QAAQ,CAAC/uB,KAAM,aAAc,CAAC,EAAKlM,EAAE3D,YACnD,GAAI,EAAK+9B,iBAAiB,aAAe5xB,GAAKA,EAAI,GAAEpG,WAAW,IAAIW,KAAQ,EAAK/C,EAAEgtB,QAChF,OAAO,EAAKiO,QAAQ,CAAC/uB,KAAM,YAAa,CAAC,EAAKlM,EAAE1D,WAClD,IAAIkE,EAAI,EAAKwtB,oBAAsB,EAAKA,mBAAmBykB,gBAC3D,OAAIjyC,EAAU,EAAKy6B,QAAQ,CAAC/uB,KAAM,WAAY1L,QAA9C,OAINq8B,WAxCQ,WAyCN,OAAO,GAAE7yB,GAAGlV,OAAS,CACnBynC,UAAU,GACR,CACFI,QAASl4B,KAAKk4B,QACd+V,QAASjuC,KAAKiuC,UAGlBrV,UAhDQ,WAiDN,MAAO,CACL/d,QAAS7a,KAAKg2B,UAAYh2B,KAAKstB,SCtN1B,MCKE,IACb1/B,KAAM,YACNqvB,OAAQ,CAACkc,IACTxX,QAHa,WAIX,MAAO,CACLsiB,oBAAqBjkC,OAGzBgX,MAAO,CAAC,WAAY,aAAc,aAClCtrB,KATa,WAUX,MAAO,CACLypC,WAAW,EACXnzB,KAAM,GACNmrB,QAAS,KACTC,UAAU,EACVmI,iBAAkB,uBAGtBvd,QAAS,CACP7I,MADO,WAEDnP,KAAK0a,OAAOwF,UACdlgB,KAAKotB,UAAYptB,KAAKotB,SACtBptB,KAAK8jB,MAAK,KAGdipB,YAPO,SAOKjhC,GACV,GAAI9L,KAAKzE,EAAE4uC,SAAU,CACnB,IAAIsE,EAAK,GAAEviC,MAAMlM,KAAKojB,OAAO,GACzBtX,EAAIopB,QAAS,GAAEl5B,OAAOsM,KAAKmmC,EAAI3iC,EAAIzd,OAClCogD,EAAGjiD,KAAKsf,EAAIzd,OACjB2R,KAAKojB,IAAIqrB,OACJ,CACL,IAAI,EAAKzuC,KAAKzE,EAAEmzC,YAAc5iC,EAAIopB,QAAU,GAAKppB,EAAIzd,MACrD2R,KAAKojB,IAAI,GACTpjB,KAAKotB,UAAW,IAGpBzb,SAnBO,WAoBL,OAAO3R,KAAK2uC,YAEdjX,WAtBO,WAsBM,WACPppC,EAAI0R,KAAK2uC,WACT3/C,EAAIgR,KAAKg4B,kBACTvqC,IAAM,GAAE8X,GAAGlV,OACf,MAAO,CACL2P,KAAKq4B,oBACL,gBAAE,MAAO,CACPhgB,MAAO,0BACP1D,MAAOrmB,GAAKU,GACXV,GAAMU,GAAK,gBAAE,MAAO,CAACqpB,MAAO,uBAAwBrpB,IACvDgR,KAAKotB,UAAY,gBAAER,GAAQ,CACzB3Z,QAASjT,KACTmY,aAAa,EACbE,MAAO,mCAAqC5qB,EAAI,SAAW,IAC3D2Y,MAAO3Y,EAAI,OAASuP,KAAKC,IAAI,GAAEP,OAAOsD,KAAKzE,EAAEqzC,WAAY,GAAE5oC,IAAIhG,KAAKyC,GAAG,SAAS2D,OAChFwZ,SAAS,EACTkB,WAAY,QACZsE,UAAU,EACVxQ,MAAOnnB,EACPqZ,KAAMrZ,EAAI,KAAO,CACfua,OAAQ,kBAAM,EAAKvF,GAAG,SACtBgS,SAAU,IACVgX,OAAQ,GAEVgD,QAAS,kBAAM,EAAKrB,UAAW,IAC9BptB,KAAK0a,UAGZ4d,YAlDO,WAmDL,OAAO,gBAAE,SAAU,CACjBjgB,MAAO,iCACPkK,SAAUviB,KAAKzE,EAAEgnB,aAIvBlH,SAAU,CACRszB,WADQ,WACK,WACPzgD,EAAI,GACJZ,EAAI0S,KAAKya,iBACThtB,EAAI,GAAEye,MAAMlM,KAAKzE,EAAE05B,YAMvB,OALA,GAAEj5B,OAAOsV,KAAK7jB,GAAG,SAAAsW,GACf,IAAI/X,EAAIsB,EAAEi3B,WAAU,SAAA11B,GAAA,OAAKA,EAAEmoB,MAAM3oB,OAAS0V,KAE1C,GADI/X,GAAK,GAAGkC,EAAE1B,KAAKR,IACd,EAAKuP,EAAE4uC,SAAU,OAAO,KAExBj8C,EAAEwa,OAAOuD,KAAI,SAAAlI,GAAA,OAAKzW,EAAEyW,GAAGiT,MAAMhV,QAAM3F,KAAK,OAEjDu8B,UAZQ,WAaN,MAAO,CACL/d,QAAS7a,KAAKg2B,UAAYh2B,KAAKmP,UC9F1B,MCIE,IACbvhB,KAAM,YACNqvB,OAAQ,CAAC4xB,IACT73B,MAAO,CAAC,UACRgB,QAAS,CACP7I,MADO,SACDpT,GACAiE,KAAK0a,OAAOwF,SACdlgB,KAAKotB,UAAYptB,KAAKotB,SACtBptB,KAAK8jB,MAAK,IACD9jB,KAAKzE,EAAEuzC,QAChB9uC,KAAK+uC,YAAYhzC,IAGrBizC,WATO,SASIjzC,GACTA,EAAEywB,kBACFxsB,KAAKojB,IAAI,OAEX2rB,YAbO,SAaKhzC,GACVA,EAAEywB,kBACF,IAAI9+B,EAAIsS,KAAKzE,EAAEuzC,OACE,oBAANphD,GAAkBA,EAAEsS,OAEjCivC,UAlBO,WAoBL,OADAjvC,KAAKotB,UAAW,EACTptB,MAETs4B,YAtBO,WAuBL,MAAO,CACLt4B,KAAKg2B,UAAY,gBAAE,SAAU,CAC3B3d,MAAO,4CACPwC,QAAS7a,KAAKgvC,aAEhBhvC,KAAK0a,OAAOwF,SAAW,gBAAE,SAAU,CACjC7H,MAAO,iCACPkK,SAAUviB,KAAKzE,EAAEgnB,WAEnBviB,KAAKzE,EAAEuzC,QAAU,gBAAE,SAAU,CAC3Bz2B,MAAO,+BACPkK,UAAWviB,KAAKg2B,SAChBnb,QAAS7a,KAAK+uC,iBAKtB1zB,SAAU,CACRqa,YADQ,WAEN,IAAIjoC,EAAIuS,KAAKzE,EAAE05B,WACXx4B,EAAI,SAAAsH,GAAA,OAAKA,GAAkB,WAAb,eAAOA,GAAiBkJ,KAAKC,UAAUnJ,GAAKA,GAC9D,OAAInI,MAAMC,QAAQpO,GACTA,EAAEwe,KAAI,SAAAlI,GAAA,OAAKtH,EAAEsH,GAAKA,EAAE1V,UAAQgO,KAAK,KAEjCI,EAAEhP,GAAKA,EAAEY,QAGpBsgD,WAVQ,WAWN,IAAIlhD,EAAIuS,KAAKzE,EAAE05B,WACf,OAAIr5B,MAAMC,QAAQpO,GACTA,EAAEwe,KAAI,SAAAlI,GAAA,OAAKA,EAAE/B,QAAM3F,KAAK,MAExB5O,GAAKA,EAAEuU,QC7DT,I,UAAA,ICDE,IACbpU,KAAM,aACNqvB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,WACRtrB,KAJa,WAKX,MAAO,CACLypC,WAAW,IAGfnd,QAAS,CACP61B,gBADO,SACS9pC,EAAG7V,GACjB,GAAI6V,GAAK7V,GAAKA,EAAE8Z,QAAUhI,KAAK0P,UAAW,CACxC,IAAIjiB,EAAIS,EAAEK,MAAQ,KACdD,EAAIJ,EAAE8Z,OAAOtF,SAAWxU,EAAE8Z,OAAShI,KAAK0P,UAAUjT,EAAEvO,EAAE8Z,QACtD8lC,EAAKx/C,GAAKA,EAAE+0B,UAChB,GAAItf,GAAK+pC,IAAO,GAAEliC,KAAK,IAAMne,EAAI,KAAM,CAACsW,IAAG+pC,OACzC,MAAO,CAAC9tC,KAAK42B,eAAgBnpC,EAAGa,EAAEsoC,mBAK1Cvb,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEE/gC,QAAS,SAACiM,EAAG7V,EAAGid,GACd,IAAIpP,EAAI,EAAK8xC,gBAAgB9pC,EAAG7V,GAChC,GAAI6N,EAAG,OAAO,EAAKy6B,QAAQrrB,EAAGpP,OAIpC67B,WAVQ,WAWN,MAAO,cCjCA,MCEE,IACbhqC,KAAM,UACNqvB,OAAQ,CAACkc,IACTxX,QAHa,WAIX,MAAO,CACL4H,mBAAoBvpB,OAGxBgX,MAAO,CAAC,WACRgB,QAAS,CACPg2B,cADO,WAEL,IAAIvxC,EAAIuD,KAAKwtC,QACb,GAAI/wC,GAAKA,EAAEvQ,OACT,OAAOuQ,EAAE,GAAGoxC,gBAAgBpxC,EAAE,GAAG4mB,UAAW,CAACrb,OAAQvL,EAAE,GAAIlO,KAAMyR,KAAKzE,EAAEhN,QAG5Ei/C,MAPO,WAQL,OAAOxtC,KAAK0P,UAAU4T,KAAK,KAAMtjB,KAAKyC,GAAG,UAE3CyX,SAVO,WAWL,OAAOla,KAAKwtC,QAAQ,IAAMxtC,KAAKyC,GAAG,SAEpC81B,UAbO,WAcL,IAAI7qC,EAAIsS,KAAKya,iBAGb,OAFA/sB,EAAEN,OAAO,EAAG,EAAG,gBAAE,MAAO,CAACirB,MAAO,cAAe,GAAEhN,IAAI3Z,KAE9ChE,IAGX2tB,SAAU,CACR2d,QADQ,WACE,WACR,MAAO,CACLne,QAAS,SAAA9e,GAAA,OAAK,EAAKs5B,UAAY,QChC1B,I,UAAA,ICIE,IACbznC,KAAM,aACNqvB,OAAQ,CAACkc,IACTjP,MAAO,CAAC,QAAS,aAAc,OAAQ,SACvClT,MAAO,CAAC,WAAY,UAAW,SAAU,YAAa,MACtDtrB,KALa,WAMX,MAAO,CACLypC,WAAW,EACXnzB,KAAM,GACNktC,aAAa,EACbC,UAAW,KACXC,YAAa,GACbC,aAAc,OAGlBr3B,QAAS,CACPs3B,OADO,SACAvrC,GACL,IAAIixB,EAEFA,EADEh1B,KAAKzE,EAAE4uC,SACJ,GAAEnuC,OAAOuzC,QAAQ,GAAErjC,MAAMlM,KAAKzE,EAAE05B,YAAa,GAAE/oB,MAAMnI,GAAI,SAEzD,CAACA,GAER,GAAE/H,OAAO/J,OAAO+iC,GAAI,SAAAvnC,GAAA,OAAMA,IAAMA,EAAEuU,QAClChC,KAAKojB,IAAI4R,IAEXrhB,SAXO,SAWE5P,GAIP,OAHA/D,KAAKsvC,OAAOvrC,GACZ/D,KAAKwvC,QACLxvC,KAAKwY,UAAUxY,KAAK+2B,OACb/2B,MAETivC,UAjBO,WAmBL,OADAjvC,KAAKyvC,SAAQ,GACNzvC,MAETyvC,QArBO,SAqBCl1C,GACNA,EAAS,MAALA,GAAmBA,GACb,IAANA,GACF6xB,aAAapsB,KAAKmvC,WAEpBnvC,KAAKkvC,YAAc30C,EACnByF,KAAK8jB,MAAK,IAEZ0rB,MA7BO,WA8BLxvC,KAAKge,MAAM0xB,MAAMrhD,MAAQ2R,KAAKovC,YAAc,IAE9CrY,MAhCO,WAmCL,OAFA/2B,KAAKge,MAAM0xB,MAAM3Y,QACjB/2B,KAAK8jB,MAAK,GACH9jB,MAETg3B,QArCO,SAqCCj7B,GAAG,WACLgI,EAAIhI,EAAEiM,OAAO3Z,MACjB2R,KAAKovC,YAAcrrC,EACnBqoB,aAAapsB,KAAKmvC,WACT,IAALprC,EACF/D,KAAKyvC,SAAQ,GAEbzvC,KAAKmvC,UAAYpuB,YAAW,WAC1B,EAAK0uB,SAAQ,GACb1zC,EAAE1N,MAAQ0V,EACV,EAAKqV,QAAQrd,EAAGgI,KACf,MAGPm5B,UAnDO,SAmDGnhC,GACR,IAAIwI,EAAIxI,EAAEohC,QACV,GAAU,IAAN54B,GAC8B,IAA5BxI,EAAEiM,OAAO3G,gBAAkD,IAA1BtF,EAAEiM,OAAO1G,aAAoB,CAChE,IAAI0zB,EAAK,GAAE9oB,MAAMlM,KAAKzE,EAAE05B,YAAY,GAChCD,EAAG9oC,SACL8oC,EAAG5nC,OAAO4nC,EAAG9oC,OAAS,EAAG,GACzB8T,KAAKzE,EAAE05B,WAAaD,KAO5BmD,OAjEO,SAiEAp8B,GAAG,WACRiE,KAAKk1B,SAAU,EACfl1B,KAAKoZ,QAAQ,QACb2H,YAAW,WACJ,EAAKzlB,EAAE+7B,aAAgB,EAAK/7B,EAAE4jB,eAAe,EAAKtG,MAAM,UAC5D,MAELsf,QAxEO,SAwECn8B,GACNiE,KAAKk1B,SAAU,EACfn5B,EAAEiM,OAAO3Z,OAAS0N,EAAEiM,OAAO6H,cAAc,IAAInF,MAAM,UACnD1K,KAAKoZ,QAAQ,UAEf0iB,UA7EO,SA6EG//B,EAAG0pB,GACX1pB,EAAEywB,kBACFzwB,EAAEud,QAAU,aACZvd,EAAE1N,MAAQo3B,EACVzlB,KAAKoZ,QAAQrd,EAAG0pB,IAElBmI,WAnFO,SAmFI7xB,EAAG0pB,GACZ1pB,EAAEywB,kBACF,IAAIwI,EAAK,GAAE9oB,MAAMlM,KAAKzE,EAAE05B,YAAY,GAChCjpC,EAAIgpC,EAAGzQ,WAAU,SAAAxgB,GAAA,OAAKA,EAAE1V,OAASo3B,EAAKp3B,SACtCrC,GAAK,IACPgpC,EAAG5nC,OAAOpB,EAAG,GACbgU,KAAKojB,IAAI4R,KAGb+Z,YA5FO,SA4FKhzC,GACVA,EAAEywB,kBACF,IAAI9+B,EAAIsS,KAAKzE,EAAEuzC,OACE,oBAANphD,GAAkBA,EAAEsS,OAEjC2vC,aAjGO,SAiGM5zC,GACXA,EAAEywB,kBACFxsB,KAAKyvC,SAASzvC,KAAKkvC,aACnB,IAAIxhD,EAAIsS,KAAKzE,EAAE4xB,QACE,oBAANz/B,GAAkBA,EAAEsS,OAEjC2R,SAvGO,WAwGL,OAAO3R,KAAK24B,aAEdiX,aA1GO,WA0GQ,WACTniD,EAAIuS,KAAKzE,EAAE05B,WACf,GAAIxnC,GAAkB,kBAANA,EACd,MAAO,GAAG0b,OAAO1b,GAAGwe,KAAI,SAAAlI,GAAA,OAAK,gBAAE,MAAO,CACpCsU,MAAO,CAAC,kCAAmC,CACzC,WAAYtU,EAAE8rC,SAEhBh1B,QAAS,SAAA9e,GAAA,OAAK,EAAK+/B,UAAU//B,EAAGgI,KAC/B,CAAC,gBAAE,MAAO,CACTsU,MAAO,kCACP1D,MAAO5Q,EAAE/B,MACR+B,EAAE/B,MACL,EAAKg0B,UAAY,gBAAE,MAAO,CACxB3d,MAAO,wCACPwC,QAAS,SAAA9e,GAAA,OAAK,EAAK6xB,WAAW7xB,EAAGgI,YAKzC+rC,SA7HO,WA8HL,OAAO,gBAAE,MAAO,CACdz3B,MAAO,yBACN,CACD,gBAAE,MAAO,CACPA,MAAO,oBACPwH,IAAK,UACJ7f,KAAKovC,cAAgBpvC,KAAK01B,YAAc,KAAO11B,KAAKg4B,oBACvD,gBAAE,QAAS,CACT3f,MAAO,mBACPrU,MAAO,CACLoC,MAAOpG,KAAKqvC,cAEdxvB,IAAK,QACLmX,QAASh3B,KAAKg3B,QACdkG,UAAWl9B,KAAKk9B,UAChB/E,OAAQn4B,KAAKm4B,OACbD,QAASl4B,KAAKk4B,QACdH,YAAa/3B,KAAK01B,YAAc,KAAO11B,KAAKg4B,uBAIlDN,WAnJO,WAmJM,WACX,MAAO,CACL13B,KAAKq4B,oBACL,gBAAE,MAAO,CACLhgB,MAAO,CAAC,gDAAiD,CAAC,UAAW,GAAE9S,GAAGpV,OAAOC,OAEnF4P,KAAK4vC,eACL5vC,KAAKg2B,UAAYh2B,KAAK8vC,WACtB9vC,KAAKkvC,aAAe,gBAAEtiB,GAAQ,CAC5B3Z,QAASjT,KACTmY,aAAa,EACbE,MAAO,iBACPjS,MAAOpJ,KAAKC,IAAI,GAAEP,OAAOsD,KAAKzE,EAAEqzC,WAAY,GAAE5oC,IAAIhG,KAAKyC,GAAG,SAAS2D,OACnEwZ,SAAS,EACTwF,UAAU,EACVte,KAAM,CACJkB,OAAQ,kBAAM,EAAKvF,GAAG,SACtBgS,SAAU,IACVgX,OAAQ,GAEVgD,QAAS,kBAAM,EAAKygB,aAAc,IACjClvC,KAAK0a,WAId4d,YA5KO,WA6KL,IAAIhrC,EAAI,GAeR,OAdI0S,KAAKzE,EAAE4xB,SACT7/B,EAAEd,KAAK,gBAAE,SAAU,CACjB6rB,MAAO,iCACPkK,UAAWviB,KAAKg2B,SAChBnb,QAAS7a,KAAK2vC,gBAGd3vC,KAAKzE,EAAEuzC,QACTxhD,EAAEd,KAAK,gBAAE,SAAU,CACjB6rB,MAAO,+BACPkK,UAAWviB,KAAKg2B,SAChBnb,QAAS7a,KAAK+uC,eAGXzhD,IAGX+tB,SAAU,CACRgb,WADQ,WACK,WACX,uBACEoU,gBAAiB,SAAC1mC,GAChB,GAAI,EAAKia,MAAM0xB,MAAMrhD,MACnB,OAAO,EAAKmoC,QAAQ,CAAC/uB,KAAM,qBAE5BzH,KAAK64B,gBAGZnD,YAVQ,WAWN,MAAoC,kBAAtB11B,KAAKzE,EAAE05B,WAA0Bj1B,KAAKzE,EAAE05B,WAAa,GAAE/oB,MAAMlM,KAAKzE,EAAE05B,YAAYhpB,KAAI,SAAAlI,GAAA,OAAKA,EAAE1V,SACtGgO,KAAK,MAEVs8B,YAdQ,WAeN,MAAoC,kBAAtB34B,KAAKzE,EAAE05B,WAA0B,GAAK,GAAE/oB,MAAMlM,KAAKzE,EAAE05B,YAAYhpB,KAAI,SAAAlI,GAAA,OAAKA,EAAE/B,QAAM3F,KAAK,OAEvGuf,WAjBQ,WAkBN,MAAO,CACL,OAAQ5b,KAAKzE,EAAEgK,KAGnBqzB,UAtBQ,WAuBN,OAAO54B,KAAKg2B,UAAY,CACtBnb,QAAS7a,KAAK+2B,SAIpBvgB,QA1Oa,WA0OH,WACJxW,KAAKge,MAAM+xB,QACb,IAAI,SAAe,WACb,EAAK/xB,MAAM+xB,SACb,EAAKV,aAAe,EAAKrxB,MAAM+xB,OAAO7rC,YAAc,SAErD+c,QAAQjhB,KAAKge,MAAM+xB,UCpPf,I,UAAA,ICIE,IACbniD,KAAM,YACNqvB,OAAQ,CAACkc,IACTjP,MAAO,CAAC,QAAS,iBACjBlT,MAAO,CAAC,WAAY,SAAU,YAAa,YAAa,SAAU,MAClEpB,QALa,WAKH,WACR5V,KAAK8X,QAAO,kBAAM,EAAKvc,EAAE05B,cAAY,SAAClxB,GAC/B,EAAKmxB,SACR,EAAK8a,YAAYjsC,OAIvBrY,KAZa,WAaX,MAAO,CACLypC,WAAW,EACXnzB,KAAM,GACNiuC,OAAQ,KACRf,aAAa,EACbC,UAAW,KACXe,IAAK,KACLC,SAAS,EACTC,UAAW,KACXC,QAAS,KACTC,MAAO,KAGXt4B,QAAS,CACPC,UADO,WAEL,MAAO,CACLs4B,QAAQ,IAGZP,YANO,SAMKjsC,GACD,MAALA,IAAWA,EAAI/D,KAAKzE,EAAE05B,YACtBlxB,GAAkB,kBAANA,IACdA,EAAI,GAAEmI,MAAMnI,GACZ/D,KAAKwwC,SAASzsC,GACd/D,KAAKywC,MAAMpuC,UAAYrC,KAAK4vC,aAAa7rC,KAG7CurC,OAdO,SAcAvrC,GACL,IAAIixB,EAEFA,EADEh1B,KAAKzE,EAAE4uC,SACJ,GAAEnuC,OAAOuzC,QAAQ,GAAErjC,MAAMlM,KAAKzE,EAAE05B,YAAa,GAAE/oB,MAAMnI,GAAI,SAEzD,CAACA,GAER/D,KAAKojB,IAAI4R,IAEXrhB,SAvBO,SAuBEpZ,GACPyF,KAAKwwC,SAASj2C,GACdyF,KAAK+2B,QACL,IAAI3nC,EAAI4Q,KAAKqwC,SAAW,GAAEnvC,aACtBlS,EAAIgR,KAAKzE,EAAE6xC,WAAa,IAC5B,GAAIh+C,EAAG,CACa,MAAdA,EAAE8rB,UAGc,MAAd9rB,EAAE8rB,QACA9rB,EAAEoR,aAAyC,MAA1BpR,EAAEoR,YAAY0a,QACjC9rB,EAAIA,EAAEoR,aAENpR,EAAI,GAAEqU,MAAMrU,EAAG,WACf4Q,KAAKzE,EAAE4uC,UAAY,GAAE1mC,MAAMrU,EAAG,MAAQJ,EAAI,SAG5CI,GAAM4Q,KAAKzE,EAAE4uC,UAAYnqC,KAAKywC,MAAMzvB,cAAc,MAAS,GAAE/d,OAAOjD,KAAKywC,MAAO,YAVlFzwC,KAAK0wC,SAASthD,EAAG,EAAGmL,EAAEyH,MAaxB,GAAE2K,SAASvd,EAAG,MACdA,EAAEsmB,aAAa,aAAcnb,EAAElM,OAC/BkM,EAAEs1C,QAAUzgD,EAAEsmB,aAAa,cAAe,IAC1C,IAAI7mB,EAAIO,EAAEoR,YACV,GAAEY,UAAUvS,IAAMA,EAAE2R,YAAc3R,EAAIO,GACtC4Q,KAAKzE,EAAE4uC,WAAat7C,GAAK,GAAEuS,UAAU,GAAEqC,MAAMrU,EAAG,MAAQJ,EAAI,SAC5D,IAAIvB,EAAI,GAAE0d,EAAF,wBAAqB5Q,EAAElM,MAAvB,MAAkC2R,KAAKywC,OAC3ChjD,EAAEvB,OAAS,GAAGuB,EAAEkjD,GAAG,GAAGn8C,KAAK,KAAKo8C,UAAU3+C,SAC9C+N,KAAKhO,OAEP,OAAOgO,MAETivC,UAvDO,WAyDL,OADAjvC,KAAKyvC,SAAQ,GACNzvC,MAETyvC,QA3DO,SA2DCl1C,GACNA,EAAS,MAALA,GAAmBA,GACb,IAANA,GACF6xB,aAAapsB,KAAKmvC,WAEpBnvC,KAAKkvC,YAAc30C,EACnByF,KAAK8jB,MAAK,IAEZ4rB,MAnEO,SAmEDn1C,GAAG,WACPyF,KAAKqwC,QAAU91C,EACf,IAAIwJ,EAAIxJ,EAAEs2C,UAAUlgD,QAAQ,mBAAoB,IAChDy7B,aAAapsB,KAAKmvC,WACT,IAALprC,EACF/D,KAAKyvC,SAAQ,GAEbzvC,KAAKmvC,UAAYpuB,YAAW,WAC1B,EAAK0uB,SAAQ,GACb,EAAKr2B,QAAQ,EAAKY,YAAY,QAASjW,GAAIA,KAC1C,MAGPgzB,MAhFO,WAmFL,OAFA/2B,KAAKge,MAAMyyB,IAAI1Z,QACf/2B,KAAK8jB,MAAK,GACH9jB,MAETywC,IArFO,WAsFL,OAAOzwC,KAAKge,MAAMyyB,KAEpBK,SAxFO,WAwFI,IAGLxiD,EAHK,OACLZ,EAAI,GAAEwT,aACNgG,GAAI,EAEJ0B,EAAM5I,KAAK4I,IACX6nC,EAAMzwC,KAAKywC,MAQf,GAPKA,EAAI32B,SAASpsB,KAChBA,EAAI+iD,GACNniD,EAAIZ,EAAEmjD,UACF7wC,KAAKowC,YACP1iD,EAAIsS,KAAKowC,UAAUz0B,iBACjBjuB,EAAE6a,KAAOK,IACXlb,EAAI+iD,GACF/iD,EAAE6a,KAAOK,EAAM,IAAK,CACtB,IAAIta,EAiBF,OAAO0R,KAAKivC,YAhBZ,GAA8B,IAA1BvhD,EAAE4S,WAAWiB,SAAgB,CAC/B,IAAIrT,EAAI,GAAEkT,UAAU1T,GAChB0B,EAAIa,SAASmS,cAAc,KAC/BlU,EAAE6iD,kBACF3hD,EAAEoT,YAAYvS,SAASmQ,eAAe9R,IACtCJ,EAAEiS,WAAW/Q,GACb,GAAEgS,UAAUhS,GACZ1B,EAAI0B,OAEJ,GAAE+b,EAAE,KAAMslC,GAAKx+C,SACXvE,EAAE4S,WACJ5S,EAAIA,EAAE4S,WAEN,GAAEc,UAAU1T,GAOpB,GAFA,GAAEyd,EAAE,KAAMslC,GAAKx+C,SAEG,SAAdvE,EAAEwtB,QACJ,GAA6B,MAAzBxtB,EAAEyT,WAAW+Z,QAAiB,CAChC,IAAIvtB,EAAI,EAAE6V,gBAAgBwtC,UACtB,EAAI,EAAE7vC,WACN,EAAI,EAAE0vC,UACV7wC,KAAK0wC,SAAS,EAAG,EAAE5gD,QAAQnC,GAAKA,EAAEzB,OAAS,EAAG,QACrCwB,EAAEyT,WAAWoH,KAAOK,EAAM,MACnCta,EAAIZ,EAAEyT,WAAW0vC,UACjBnjD,EAAI,GAAEiW,YAAYjW,EAAG,WACrBA,EAAEmjD,UAAYviD,GAKdZ,IAAM+iD,GAAqB,MAAd/iD,EAAEwtB,SAAmBxtB,EAAE8S,aAAyC,MAA1B9S,EAAE8S,YAAY0a,UACpC,IAA3BxtB,EAAE8S,YAAYe,SAChB7T,EAAE8S,YAAYW,WAAW0B,YAAYnV,EAAE8S,cAEvClS,EAAIZ,EAAEmjD,UACN7wC,KAAK0wC,SAAShjD,EAAGY,EAAEpC,OAAQoC,EAAIZ,EAAE8S,YAAYqwC,WAC7CnjD,EAAE8S,YAAYW,WAAW0B,YAAYnV,EAAE8S,aACvC0G,GAAI,IAGR,GAAEiE,EAAE,YAAaslC,GAAKx+C,SACtB3D,EAAIZ,EAAEmjD,UAEN,IAAIhiD,EAAI,GACJG,EAAIgR,KAAKzE,EAAE6xC,WAAa,IAG5B,GAAIptC,KAAKzE,EAAE4uC,UAAY77C,EAAEpC,OAAS,GAAKoC,EAAEwB,QAAQd,IAAM,EAAG,CACxD,IAEE,EAFE,EAAI,GACNyN,EAAInO,EAAEpC,OAAS,GAAEwV,kBACdjU,EAAI,GACTa,EAAE+O,MAAMrO,GAAG+N,SAAQ,SAAAzP,IACb,EAAI,GAAEuN,QAAQvN,KAChB4Z,EAAI,EAAK+pC,MAAM,GACf,EAAEzkD,KAAK,MAAQ0a,EAAI,yBAA2BA,EAAE7Y,MAAQ,KAAO6Y,EAAE2oC,OAAS,eAAiB,IAAM,IAC/F,IAAM,EAAI,QACZ3oC,EAAIzZ,EAAEjB,KAAK,iBAAmB0a,EAAE7Y,MAAQ,MAAQQ,EAAErC,KAAK,IAEvD,EAAEA,KAAK,OAEXiB,EAAEvB,SAAWuB,EAAI,GAAE0d,EAAE1d,EAAE4O,KAAK,KAAMo0C,GAAKj8C,KAAK,KAAKo8C,WACjD,IAAI9iD,EAAI,GAAE6V,YAAYjW,EAAG,EAAE2O,KAAK,MAAQrN,EAAI,SACxCuV,EAAI,EACR,IAAKvE,KAAKowC,WAA0B,MAAbpwC,KAAKkwC,IAC1B,GACE,IAAK3rC,GAAKzW,EAAE+iD,UAAU3kD,SAAWuQ,EAAG,CAClCuD,KAAK0wC,SAAS5iD,EAAGyW,EAAI9H,GACrB,aAEK3O,EAAIA,EAAE0V,iBAEjB/V,EAAEvB,SAAWuB,EAAEwE,SAAU,GAAEkZ,EAAE,uBAAwBslC,GAAKx+C,UAC1DiV,GAAI,GACCxZ,EAAI,GAAEwT,eAA+B,MAAdxT,EAAEwtB,UAAoBxtB,EAAE8jB,aAAa,cAC/DxR,KAAK0vC,MAAMhiD,GAEXsS,KAAKivC,iBAEH3gD,GACE,GAAEwe,SAASpf,EAAG,QAAUsS,KAAKixC,MAAM3iD,IACrC,GAAEue,YAAYnf,EAAG,MACjBA,EAAEioB,gBAAgB,cAClBzO,GAAI,GACMlH,KAAKzE,EAAEg1C,SACjBrpC,GAAI,GACNlH,KAAK0vC,MAAMhiD,KAEXwZ,GAAI,EACJlH,KAAKivC,aAGL/nC,GACFlH,KAAKhO,OAGPgO,KAAKowC,UAAY,MAGnBM,SA7MO,SA6MEn2C,EAAGU,EAAGvN,GACb,IAAImB,EAAI,GAAEkS,eACL,MAALrT,IAAc6M,EAAEs2C,UAAYnjD,GAC5BmB,EAAE0R,mBAAmBhG,GACrB,GAAE6G,UAAUvS,EAAGoM,IAEjB8zC,YAnNO,SAmNKhzC,GACVA,EAAEywB,kBACF,IAAI9+B,EAAIsS,KAAKzE,EAAEuzC,OACE,oBAANphD,GAAkBA,EAAEsS,OAEjC2vC,aAxNO,SAwNM5zC,GACXA,EAAEywB,kBACFxsB,KAAKyvC,SAAQ,GACb,IAAI/hD,EAAIsS,KAAKzE,EAAE4xB,QACE,oBAANz/B,GAAkBA,EAAEsS,OAEjCwwC,SA9NO,SA8NE/iD,GAAG,WACV,GAAIA,GAAkB,kBAANA,EAAgB,CAC9B,IAAIS,EAAI,GAAEge,MAAMze,GAAGob,QAAO,SAAA9E,GAAA,OAAM,EAAKusC,MAAMttB,MAAK,SAAA11B,GAAA,OAAKA,EAAEe,OAAS0V,EAAE1V,YAC9DH,EAAEhC,SAAQ8T,KAAKswC,MAAQtwC,KAAKswC,MAAMnnC,OAAOjb,MAGjD+iD,MApOO,SAoOD3iD,GACJ,OAAO0R,KAAKswC,MAAMttB,MAAK,SAAAjf,GAAA,OAAKA,EAAE/B,MAAQ1T,MAExC0D,KAvOO,WAwOL,IAAIu+C,EAASvwC,KAAKzE,EAAEg1C,OAChBriD,EAAI,GACJT,EAAI,GACR,GAAE0d,EAAE,MAAOnL,KAAKywC,OAAOn/B,MAAK,SAACtlB,EAAGoD,GAC9B,IAAIf,EAAQe,EAAEoiB,aAAa,cACvBxP,EAAO5S,EAAEyhD,UACTxiD,GACFH,EAAE1B,KAAK6B,GACPZ,EAAEjB,KAAK,CACL6B,QACA2T,UAEQuuC,IACVriD,EAAE1B,KAAKwV,GACPvU,EAAEjB,KAAK,CACL6B,MAAO2T,QAKbhC,KAAKojB,IAAI31B,IAEXyvC,UA9PO,SA8PGnhC,GACR,IAAIwI,EAAIxI,EAAEohC,QACA,KAAN54B,GACFxI,EAAEmO,kBAGN+jC,QApQO,SAoQClyC,GACN,IAAKiE,KAAKmwC,QAAS,CACjB,IAAI5rC,EAAIvE,KAAKkwC,IAAMn0C,EAAEohC,QAEX,KAAN54B,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,EACtCxI,EAAEywB,kBAEFxsB,KAAK8wC,WAEP9wC,KAAKkwC,IAAM,OAGfr1B,QAhRO,SAgRC9e,GACN,GAAIiE,KAAKg2B,SACP,GAAIj6B,EAAEiM,QAA+B,MAArBjM,EAAEiM,OAAOkT,UAAoBnf,EAAEiM,OAAOwJ,aAAa,cACjExR,KAAK0vC,MAAM3zC,EAAEiM,YACR,CACL,IAAIta,EAAI,GAAEwT,aACI,MAAdxT,EAAEwtB,QAAkBlb,KAAK0vC,MAAMhiD,GAAKsS,KAAKivC,cAI/CiC,WA1RO,SA0RIn1C,GACT,GAAyB,MAArBA,EAAEiM,OAAOkT,SAAmBnf,EAAEiM,OAAOwJ,aAAa,cAAe,CACnE,IAAIzN,EAAI,GAAEmI,MAAMlM,KAAKzE,EAAE05B,YAAYjS,MAAK,SAAAl1B,GAAA,OAAKA,EAAEO,OAAS0N,EAAEiM,OAAOwJ,aAAa,iBAC1EzN,IACFhI,EAAEud,QAAU,gBACZvd,EAAE1N,MAAQ0V,EACV/D,KAAKoZ,QAAQrd,EAAGgI,GAChBvY,OAAOoV,eAAeC,qBAI5B8Q,SArSO,WAsSL,OAAO3R,KAAK24B,aAEdiX,aAxSO,SAwSM7rC,GAAG,WACV/U,EAAIgR,KAAKzE,EAAE6xC,WAAa,IAE5B,GADS,MAALrpC,IAAWA,EAAI/D,KAAKzE,EAAE05B,YAChB,WAANlxB,EAAgB,CAClB,IAAI9I,EAAI,GAAEiR,MAAMnI,GACZ7V,EAAI,GAOR,OANA,GAAE8N,OAAOsV,KAAKrW,GAAG,SAACnN,EAAG9B,GAGnB,GAFAkC,EAAE1B,KAAK,MAAQsB,EAAEO,MAAQ,yBAA2BP,EAAEO,MAAQ,IAAM,KAAOP,EAAE+hD,OAAS,eACpF,IAAM,IAAM/hD,EAAEkU,KAAO,SAClB,EAAKzG,EAAE4uC,SAAU,OAAO,EAC7Bj8C,EAAE1B,KAAK,MAAQwC,EAAI,WAEdd,EAAEmO,KAAK,MAGlByzC,SAvTO,WAuTI,WACT,OAAO,gBAAE,MAAO,CACdz3B,MAAO,2BACPwH,IAAK,MACLtX,GAAIvI,KAAK4I,IAAM,IACfuoC,gBAAiBnxC,KAAKg2B,SACtBiY,QAASjuC,KAAKiuC,QACd/Q,UAAWl9B,KAAKk9B,UAChBriB,QAAS7a,KAAK6a,QACdq2B,WAAYlxC,KAAKkxC,WACjBhZ,QAAS,SAAAn8B,GACP,EAAKm5B,SAAU,GAEjBiD,OAAQ,SAAAp8B,GACN,EAAKm5B,SAAU,MAIrBwC,WAzUO,WAyUM,WACP1oC,EAAIgR,KAAKg4B,kBACb,MAAO,CACLh4B,KAAKq4B,oBACLr4B,KAAK8vC,WACL,gBAAE,MAAO,CACPz3B,MAAO,uBACNrY,KAAK01B,YAAc,KAAO1mC,GAC7BgR,KAAKkvC,aAAe,gBAAEtiB,GAAQ,CAC5B3Z,QAASjT,KACTmY,aAAa,EACbE,MAAO,iBACPjS,MAAOpJ,KAAKC,IAAI,GAAEP,OAAOsD,KAAKzE,EAAEqzC,WAAY,GAAE5oC,IAAIhG,KAAKyC,GAAG,SAAS2D,OACnEwZ,SAAS,EACTwF,UAAU,EACVte,KAAM,CACJkB,OAAQ,kBAAM,EAAKvF,GAAG,SACtBgS,SAAU,IACVgX,OAAQ,GAEVgD,QAAS,kBAAM,EAAKygB,aAAc,IACjClvC,KAAK0a,UAGZ4d,YAjWO,WAkWL,IAAIhrC,EAAI,GAeR,OAdI0S,KAAKzE,EAAE4xB,SACT7/B,EAAEd,KAAK,gBAAE,SAAU,CACjB6rB,MAAO,iCACPkK,UAAWviB,KAAKg2B,SAChBnb,QAAS7a,KAAK2vC,gBAGd3vC,KAAKzE,EAAEuzC,QACTxhD,EAAEd,KAAK,gBAAE,SAAU,CACjB6rB,MAAO,+BACPkK,UAAWviB,KAAKg2B,SAChBnb,QAAS7a,KAAK+uC,eAGXzhD,IAGX+tB,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEE4R,gBAAiB,SAAC1mC,GAChB,GAAI,EAAKxI,EAAEg1C,QAAU,GAAEplC,EAAE,uBAAuBjf,OAAS,EACvD,OAAO,EAAKsqC,QAAQ,CAClB/uB,KAAM,uBAMhBiuB,YAbQ,WAcN,MAAoC,kBAAtB11B,KAAKzE,EAAE05B,WAA0Bj1B,KAAKzE,EAAE05B,WAAa,GAAE/oB,MAAMlM,KAAKzE,EAAE05B,YAAYhpB,KAAI,SAAAlI,GAAA,OAAKA,EAAE1V,SACtGgO,KAAK,MAEVs8B,YAjBQ,WAkBN,MAAoC,kBAAtB34B,KAAKzE,EAAE05B,WAA0B,GAAK,GAAE/oB,MAAMlM,KAAKzE,EAAE05B,YAAYhpB,KAAI,SAAAlI,GAAA,OAAKA,EAAE/B,MAAQ+B,EAAE1V,SAAOgO,KACzG,OAEJu8B,UArBQ,WAsBN,MAAO,CACL/d,QAAS7a,KAAKg2B,UAAYh2B,KAAK+2B,QAGnCnb,WA1BQ,WA2BN,MAAO,CACL,OAAQ5b,KAAKzE,EAAEgK,GACf,OAAQvF,KAAKuZ,MAAM,oBAIzB/C,QA/aa,WA+aH,WACRxW,KAAKgwC,cACLhwC,KAAKywC,MAAMpmC,iBAAiB,oBAAoB,WAC9C,EAAK8lC,SAAU,KAEjBnwC,KAAKywC,MAAMpmC,iBAAiB,kBAAkB,WAC5C,EAAK8lC,SAAU,OCzbR,I,UAAA,I,8FCJb,gBAIW,GAJDtwB,IAAI,SAASxH,MAAM,kBAAmBjS,MAAO,EAAAA,MAAQC,OAAQ,EAAAA,OAAS4M,QAAS,EAAAA,S,0BACvF,iBAAwC,CAAxC,gBAAwC,OAAnCoF,MAAM,eAAgB3K,IAAK,EAAA0jC,Q,gBAChC,gBAAwJ,OAAnJ/4B,MAAM,iBAAkB3K,IAAK,EAAA2jC,SAAWjrC,MAAO,EAAAkrC,WAAattC,MAAK,MAAS,EAAAutC,UAAS,MAAW,YAAS,+CAAU,EAAA/T,WAAA,EAAAA,UAAA,qBAAS,cAAG,YAAS,8BAAE,EAAAgU,WAAA,EAAAA,UAAA,sB,yBAC7I,gBAAyD,QAAlD,QAAK,8BAAE,EAAAl/C,SAAA,EAAAA,QAAA,qBAAS+lB,MAAM,oBAAmB,U,mDAOnC,IACfrB,MAAO,CAAC,QAAS,SAAU,WACzBtrB,KAFa,WAGX,MAAO,CACL6lD,UAAW,IAGfpyB,MAAO,CACL,uBAAwB,CACtBsyB,QADsB,SACd1tC,GACN,IAAItW,EAAIuS,KAAKiT,QAAQhW,MACjBpO,EAAImR,KAAKiT,QAAQupB,MACrBx8B,KAAKuxC,WAAavxC,KAAKoG,MAAQpG,KAAKsxC,aAAevtC,GAAKtW,EAAIoB,OAIpE2nB,QAhBe,WAiBdpC,QAAQs9B,IAAI1xC,KAAKiT,QAAQ1X,EAAE05B,aAE1Bjd,QAAS,CACP1lB,QADO,SACCyJ,GACNiE,KAAKiT,QAAQ3gB,QAAQyJ,IAEvByhC,UAJO,SAIGzhC,KAGVy1C,UAPO,SAOGz1C,GACRiE,KAAKiT,QAAQuqB,UAAUzhC,KAG3Bsf,SAAU,CACR+1B,OADQ,WAEN,OAAOpxC,KAAKiT,QAAQ1X,EAAEo2C,IAAIjkC,KAE5B2jC,SAJQ,WAKN,OAAOrxC,KAAKiT,QAAQ1X,EAAEq2C,MAAMlkC,KAE9B4jC,WAPQ,WAQN,OAAOtxC,KAAKqG,QAAUrG,KAAKiT,QAAQ1X,EAAEq2C,MAAMxrC,MAAQpG,KAAKiT,QAAQ1X,EAAEq2C,MAAMvrC,W,UC5ChF,GAAO4V,OAAS,GAED,UCAP41B,GAAY,GAAExmC,IAAIhV,KAAK8B,kBAEd,IACbvK,KAAM,WACNqvB,OAAQ,CAACkc,IACTjP,MAAO,CAAC,OAAQ,iBAChBlT,MAAO,CAAC,MAAO,QAAS,aACxBtrB,KALa,WAMX,MAAO,CACLypC,WAAW,EACXnzB,KAAM6vC,GACNC,QAAQ,EACRC,WAAW,EACXC,SAAS,EACT7kB,QAAS,KACbC,UAAU,IAGVpV,QAAS,CACPtE,QADO,SACC1R,GACNhC,KAAKgC,KAAOA,EACZhC,KAAK8xC,QAAS,EACd9xC,KAAK+xC,WAAY,EACjB/xC,KAAKiyC,gBAEP53C,MAPO,SAOD2H,EAAM0S,EAASrM,GAAI,WAKvB,GAJKrG,IAAMA,EAAO,IAClBhC,KAAKgyC,SAAU,EACfhyC,KAAK8jB,MAAK,GACV9jB,KAAKiyC,aAAa,GACdv9B,EAAS,CACX1U,KAAK8xC,QAAS,EACd9xC,KAAKgC,KAAOA,EAAG,WAAQ0S,EAAQ,IAAhB,KACf,IAAIw9B,EAAQrhC,aAAY,WACtB6D,GAAW,IACX,EAAK1S,KAAOA,EAAG,WAAQ0S,EAAQ,IAAhB,KACXA,GAAW,IACbvD,cAAc+gC,GACd,EAAK7tB,QACLhc,GAAMA,OAEP,UAEHA,GAAMA,KAGVgc,MA5BO,WA6BLrkB,KAAK8xC,QAAS,EACd9xC,KAAKgyC,SAAU,EACfhyC,KAAK+xC,WAAY,EACjB/xC,KAAKgC,KAAO6vC,GACZ7xC,KAAKiyC,aAAa,IAEpB3/C,QAnCO,SAmCCyJ,GACNA,EAAEud,QAAU,gBACZtZ,KAAKoZ,QAAQrd,IAEfk2C,aAvCO,SAuCMhtC,GACC,MAARA,EACFA,EAAO,GAAEvI,OAAOsD,KAAKge,MAAMm0B,MAAMnuC,MAAMiB,MAEvCjF,KAAKge,MAAMm0B,MAAMnuC,MAAMiB,KAAOA,EAAO,KAEvC,IAAIiC,EAAIlH,KAAKoyC,aACTh0C,EAAI4B,KAAKqyC,YACTC,EAAMrtC,EAAQiC,EAAI,EAAO9I,EAAI,EACjC4B,KAAKge,MAAMhc,KAAKgC,MAAMiB,KAAOqtC,EAAK,EAAKrtC,EAAOiC,EAAK,KACnDlH,KAAKge,MAAMhc,KAAKgC,MAAMkB,MAAQotC,EAAMl0C,EAAI6G,EAAQ,KAAO,EACvDjF,KAAKyC,KAAKsc,UAAU9sB,OAAO,UAC3B,GAAEW,MAAMoN,KAAKmtB,UAEfqQ,UArDO,SAqDGzhC,GAAG,WACX,GAAKiE,KAAKg2B,WAAYh2B,KAAK8xC,OAA3B,CACA9xC,KAAK8jB,MAAK,GACV,IAAIvpB,EAAIyF,KAAKge,MAAMm0B,MACf52C,EAAI,GAAE8N,OAAOtN,GACbtO,EAAIuS,KAAK/C,MACTpO,EAAImR,KAAKw8B,MACT//B,EAAI,GAAEC,OAAOnC,EAAEyJ,MAAMiB,MACrBiC,EAAIlH,KAAKoyC,aACTh0C,EAAI4B,KAAKqyC,YACb,GAAE7oC,QAAO,SAACzN,GACR,IAAIrO,EAAI,GAAE2b,OAAOtN,GACbvO,EAAI,GAAEqP,SAASJ,EAAI/O,EAAI6N,EAAG,EAAG6C,EAAI8I,GACrC3M,EAAEyJ,MAAMiB,KAAOzX,EAAI,KACnB,EAAKwwB,MAAMu0B,MAAMvuC,MAAMoC,MAAS5Y,EAAI0Z,EAAK,KACzC,EAAK3L,EAAE05B,WAAaj4B,KAAKoC,MAAMpC,KAAKoC,OAAO3R,EAAIoB,GAAKrB,GAAK4Q,EAAI8I,KAC7D,EAAKzE,KAAKsc,UAAU5sB,IAAI,aACvB,SAAC4J,EAAGwa,GACDA,GAAOhc,EAAEsV,cAAc,IAAInF,MAAM,WACpC3O,KAELy2C,WA1EO,SA0EIz2C,GACLiE,KAAKmtB,UAAYntB,KAAKzE,EAAEo2C,KAAO3xC,KAAK+xC,WAAa/xC,KAAK8xC,SAC1D9xC,KAAK8jB,MAAK,GACd9jB,KAAKotB,UAAW,IAEdE,KA/EO,SA+EFvxB,GACHiE,KAAKoZ,QAAQrd,EAAGiE,KAAKzE,EAAE05B,aAEzBh4B,IAlFO,WAmFL,IAAI8G,EAAI/D,KAAKzE,EAAE3E,SACf,OAAY,MAALmN,EAAY,IAAMA,GAE3By4B,IAtFO,WAuFL,IAAIz4B,EAAI/D,KAAKzE,EAAE1E,SACf,OAAY,MAALkN,EAAY,EAAIA,GAEzBquC,WA1FO,WA2FL,OAAO,GAAEpsC,IAAIhG,KAAKge,MAAMm0B,OAAO/rC,OAEjCisC,UA7FO,WA8FL,OAAO,GAAErsC,IAAIhG,KAAKge,MAAMy0B,MAAMrsC,OAEhCsxB,WAhGO,WAiGL,MAAO,CACL13B,KAAKq4B,oBADA,CAEL,CACE,gBAAE,MAAO,CACPxY,IAAK,QACLxH,MAAO,mBAET,gBAAE,MAAO,CACPwH,IAAK,OACLxH,MAAO,wCACNrY,KAAKgC,SAIds2B,YA/GO,WA+GO,WACZpqC,EAAI,CACP,gBAAE,SAAU,CACV2xB,IAAK,QACLxH,MAAO,CAAC,iCAAkCrY,KAAK+xC,UAAY,YACzD,wBAEFxvB,SAAUviB,KAAKzE,EAAEgnB,SACjBzM,YAAa9V,KAAKw9B,UAClBkV,OAAQ1yC,KAAKstB,QAGhB,IAAKttB,KAAK+xC,YAAc/xC,KAAKgyC,SAAWhyC,KAAKotB,SAAU,CACtD,IAAIhnB,EAAQpJ,KAAKC,IAAI,GAAEP,OAAOsD,KAAKzE,EAAEqzC,WAAY,GAAE5oC,IAAIhG,KAAKyC,GAAG,SAAS2D,OACpEC,EAASrJ,KAAKmC,KAAKiH,GAASpG,KAAKzE,EAAEo2C,IAAItrC,OAASrG,KAAKzE,EAAEo2C,IAAIvrC,QAC/DlY,EAAE1B,KAAK,gBAAEmmD,GAAgB,CACvBx6B,aAAa,EACb/R,QACAC,SACA+e,UAAU,EACVwtB,WAAW,EACX3/B,QAASjT,KACT8G,KAAM,CACJkB,OAAQ,kBAAM,EAAKvF,GAAG,SACtBgS,SAAU,KAEZga,QAAS,kBAAM,EAAKrB,SAAW,SAG9B,OAAOl/B,IAGXmtB,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEE4R,gBAAiB,SAAC1mC,GAChB,IAAK,EAAKguC,UACR,OAAO,EAAKvb,QAAQ,CAAC/uB,KAAM,wBAKnCmU,WAXQ,WAYN,MAAO,CACL,YAAa5b,KAAK+xC,YAGtBnZ,UAhBQ,WAiBN,MAAO,CACL7Y,aAAc/f,KAAKwyC,eCrLd,I,UAAA,ICEE,IACb5kD,KAAM,SACNqvB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,YACRgB,QAAS,CACP0f,WADO,WAEL,MAAO,CACL13B,KAAKq4B,oBACLr4B,KAAK0a,OAAOwF,SAAWlgB,KAAK0a,OAAOwF,aAIzC7E,SAAU,CACRgb,WADQ,WACK,WACX,wCACKr2B,KAAK64B,eADV,IAEEviC,SAAU,SAACyN,EAAG7V,EAAGid,GACf,GAAIjd,KAAO6V,GAAW,OAANA,GAAoB,OAANA,GAC5B,OAAO,EAAKyyB,QAAQrrB,OAK5BuqB,YAXQ,WAYN,IAAIV,EAAKh1B,KAAKzE,EAAE05B,WAChB,OAAa,MAAND,EAAa,GAAmB,WAAd,eAAOA,GAAkB/nB,KAAKC,UAAU8nB,GAAMA,GAEzEpZ,WAfQ,WAgBN,MAAO,CAAC,CACN,aAAc5b,KAAKzE,EAAEimB,YAGzBzF,WApBQ,WAqBN,MAAO,CACL,eAAgB,GAAE3P,SAASpM,KAAKzE,EAAEnL,OAGtCwoC,UAzBQ,WAyBI,WACV,OAAO54B,KAAKpS,MAAQ,CAClBitB,QAAS,SAAA9e,GAAA,OAAK,EAAK+nB,MAAK,QC3CnB,MCGE,IACbl2B,KAAM,SACNqvB,OAAQ,CAACkc,IACTniB,MAAO,CAAC,YAAa,aAAc,MAAO,QAAS,QACnDtrB,KAJa,WAKX,MAAO,CACLmnD,WAAW,EACXC,YAAa,IAGjB96B,QAAS,CACPC,UADO,WAEL,MAAO,CACL86B,IAAK,EACLtiC,MAAO,IAGXuiC,UAPO,SAOGj3C,EAAG/P,GACNgU,KAAKg2B,WACVh2B,KAAK8yC,WAAa9mD,IAEpB8vC,UAXO,SAWG//B,EAAG/P,GACNgU,KAAKg2B,WACVh2B,KAAKzE,EAAE05B,WAAaj1B,KAAKzE,EAAEmzC,YAAc1uC,KAAKzE,EAAE05B,YAAcjpC,EAAI,GAAKA,IAEzEinD,UAfO,SAeGjnD,GAAG,WACX,OAAO,gBAAEgiC,GAAK,CACZ3V,MAAO,CAAC,mBAAoB,CAAC,OAAQrY,KAAK6yC,WAAa7mD,GAAKgU,KAAK8yC,WAAY,QAAS9yC,KAAK6yC,WAAa7mD,GAAKgU,KAAKzE,EAAE05B,aACpHvnB,IAAK,sBACLwlC,aAAc,SAAAn3C,GAAA,OAAK,EAAKi3C,UAAUj3C,EAAG/P,IACrCqnC,QAAS,SAAAt3B,GAAA,OAAK,EAAK+/B,UAAU//B,EAAG/P,IAChCu2B,UAAWviB,KAAKg2B,YAGpB0B,WAxBO,WA8BL,IANW,WACPyb,EAAOnzC,KAAKzE,EAAE63C,UAAY,GAAK,EAC/BL,EAAM/yC,KAAKzE,EAAEw3C,KAAO,EACpBtiC,EAAQzQ,KAAKzE,EAAEkV,OAAS,EACxBw8B,EAAO8F,EAAMI,EAAO1iC,EACpB4iC,EAAQ,GACHrnD,EAAIihD,EAAMjhD,GAAKgU,KAAKzE,EAAEw3C,IAAK/mD,GAAKihD,EAAOkG,EAAM,CACpD,IAAIG,EAAQ,CAACtzC,KAAKizC,UAAUjnD,IACxBgU,KAAKzE,EAAE63C,WAAWE,EAAM9mD,KAAKwT,KAAKizC,UAAUjnD,EAAIihD,IACpDoG,EAAM7mD,KAAK,gBAAE,KAAM,CAAC6rB,MAAO,eAAgBi7B,IAE7C,MAAO,CACLtzC,KAAKq4B,oBACL,gBAAE,KAAM,CACJhgB,MAAO,cACP66B,aAAc,SAAAn3C,GAAA,OAAK,EAAKi6B,WAAa,EAAK6c,WAAY,IACtDU,aAAc,SAAAx3C,GAAA,OAAK,EAAKi6B,WAAa,EAAK6c,WAAY,KAExDQ,GAEFrzC,KAAKzE,EAAEyG,MAAQhC,KAAKzE,EAAE05B,YAAc,gBAAE,OAAQ,CAAC5c,MAAO,eAAgBrY,KAAKzE,EAAEyG,MAAMhC,KAAKzE,EAAE05B,WAAagY,GAAQkG,OAIrH93B,SAAU,CACRO,WADQ,WAEN,MAAO,CACL,eAAgB5b,KAAKzE,EAAE63C,cC9DlB,I,UAAA,ICyETI,GAAS,CACbC,WAASxpB,QAAMxF,OAAKmI,UAAQ8mB,cAAY5mB,SAAO6mB,WAASC,OAAKvlB,QAAMwlB,WACnEC,QAAM5xB,YAAUL,cAAYkyB,SAAOC,gBAAcC,eAAaC,cAAYC,cAAYC,WAASC,WAASC,WAAS1f,UAAQF,cAAY6f,QAAMC,OAC3IC,SAAOzmB,OAAK2G,aAAWjG,UAAQgmB,gBAActlB,cAAYulB,QAAMC,QAAMC,QAAMC,WAASC,SAAOC,UAAQC,SAAOC,YAAU1G,YAAU2G,YAAUC,gBAAcC,eACtJ5d,SAAO6d,UAAQlP,QAAMmP,YAAUlP,iBAAelM,YAAUqb,cAAYC,SAAOC,aAAWC,UAAQhJ,cAAYE,eAAa+I,eAAaC,UACpIC,WAASC,cAAYlH,WAASmH,WAASC,YAAUp2C,SAAOq2C,YAAUC,WAASC,UAAQC,QAAMC,SAI3Fh7C,GAAEk4C,OAASA,GAGXl4C,GAAEi7C,QAAU,SAAC3/B,GAEXzqB,OAAO4f,KAAKynC,IAAQz2C,SAAQ,SAAAwH,GAAC,OAAIqS,EAAI4/B,UAAUhD,GAAOjvC,GAAG3W,KAAM4lD,GAAOjvC,OAEtEqS,EAAI3B,IAAI4B,KAGKvb,iB,kCCjGf,W,yDCAA,W,yDCAA,W,kCCAA,W,uGCAA,W,yDCAA,W,yDCAA,W,kCCAA,W,kCCAA,W,kCCAA,W,kCCAA,W,yDCAA,W,kCCAA,W","file":"publish/lib/index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"dfish\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dfish\"] = factory();\n\telse\n\t\troot[\"dfish\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"main\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonpdfish\"] = window[\"webpackJsonpdfish\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"bb84\",\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Leaf.vue?vue&type=style&index=0&id=1baf3a86&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Video.vue?vue&type=style&index=0&id=7ee48295&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Option.vue?vue&type=style&index=0&id=9b750ac0&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PickBox.vue?vue&type=style&index=0&id=0c31d95e&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MediaUploadItem.vue?vue&type=style&index=0&id=07113717&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TabButton.vue?vue&type=style&index=0&id=db7c48b8&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Swiper.vue?vue&type=style&index=0&id=385a8e70&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Jigsaw.vue?vue&type=style&index=0&id=c3b00b68&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Toggle.vue?vue&type=style&index=0&id=431717dc&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Scroll.vue?vue&type=style&index=0&id=54b981aa&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LinkBox.vue?vue&type=style&index=0&id=60e9da99&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Calendar.vue?vue&type=style&index=0&id=7377352c&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Tip.vue?vue&type=style&index=0&id=129e762e&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./DialogMove.vue?vue&type=style&index=0&id=5a3b6ded&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Timeline.vue?vue&type=style&index=0&id=ab029c5a&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TemplateDateSheet.vue?vue&type=style&index=0&id=e271d2a6&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SlidePicker.vue?vue&type=style&index=0&id=2b33e34a&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Split.vue?vue&type=style&index=0&id=64ffe5ca&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Grid.vue?vue&type=style&index=0&id=5e2b9c3a&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FormBase.vue?vue&type=style&index=0&id=9d77751e&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TemplateJigsaw.vue?vue&type=style&index=0&id=ff6d7394&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Rate.vue?vue&type=style&index=0&id=54536848&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Range.vue?vue&type=style&index=0&id=8a31b61c&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Loading.vue?vue&type=style&index=0&id=35a83c14&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Progress.vue?vue&type=style&index=0&id=18056e88&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SVGIcon.vue?vue&type=style&index=0&id=a53c637e&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MenuButton.vue?vue&type=style&index=0&id=56deea48&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Img.vue?vue&type=style&index=0&id=4b5feea2&lang=css\"","let u = navigator.userAgent.toLowerCase()\r\nlet chrome = u.match(/\\bchrome\\/(\\d+)/)\r\nlet firefox = u.match(/\\bfirefox\\/(\\d+)/)\r\n\r\nconst r = {\r\n agent: u,\r\n chrome: chrome && parseFloat(chrome[1]),\r\n firefox: firefox && parseFloat(firefox[1]),\r\n safari: !chrome && u.indexOf('safari') > 0,\r\n ie: (navigator.appName === 'Microsoft Internet Explorer' || u.indexOf('trident') > 0) && document.documentMode,\r\n compat: {\r\n gap: false\r\n },\r\n}\r\n\r\nif (u.match(/\\bmobile\\b/)) {\r\n r.mobile = true\r\n r.app = location.protocol === 'file:';\r\n let wechat = u.match(/(MicroMessenger)\\/([\\d\\.]+)/i);\r\n if (wechat) r.wechat = {\r\n version: wechat[2].replace(/_/g, '.')\r\n };\r\n let android = u.match(/(Android);?[\\s\\/]+([\\d.]+)?/i);\r\n if (android) {\r\n r.android = true;\r\n r.version = android[2];\r\n r.isBadAndroid = !(/Chrome\\/\\d/.test(window.navigator.appVersion))\r\n }\r\n let iphone = u.match(/(iPhone\\sOS)\\s([\\d_]+)/i)\r\n if (iphone) {\r\n r.ios = r.iphone = true;\r\n r.version = iphone[2].replace(/_/g, '.')\r\n } else {\r\n let ipad = u.match(/(iPad).*OS\\s([\\d_]+)/i)\r\n if (ipad) {\r\n r.ios = r.ipad = true;\r\n r.version = ipad[2].replace(/_/g, '.')\r\n }\r\n }\r\n}\r\n\r\nif ((r.chrome && r.chrome < 84) || (r.firefox && r.firefox < 63)) {\r\n r.compat.gap = true\r\n}\r\n\r\nexport default r\n","let _uidCnt = 0\r\nconst _uidKey = 'uid'\r\nconst _guid = () => (_uidCnt++).toString(36) + ':'\r\n\r\nexport default function(o) {\r\n if (o) {\r\n return o[_uidKey] || (o[_uidKey] = _guid())\r\n }\r\n return _guid()\r\n}","export default {\r\n yes: '是',\r\n no: '否',\r\n none: '无',\r\n to: '至',\r\n jump: '转到',\r\n confirm: '确定',\r\n search: '搜索',\r\n query: '查询',\r\n choose: '选择',\r\n save: '保存',\r\n remove: '删除',\r\n cancel: '取消',\r\n create: '新建',\r\n add: '添加',\r\n edit: '编辑',\r\n finish: '完成',\r\n refresh: '刷新',\r\n operfail: '操作失败',\r\n opertip: '操作提示',\r\n nodata: '暂无数据',\r\n more: '更多',\r\n field: '字段',\r\n close: '关闭',\r\n restore: '还原',\r\n rotate_left: '向左旋转',\r\n rotate_right: '向右旋转',\r\n dialog_max: '最大化',\r\n dialog_min: '最小化',\r\n\r\n detect_zoom: '温馨提示: 你的浏览器可能处于缩放({0}%)状态,这可能影响页面浏览效果,请尝试Ctrl+0重置,并刷新',\r\n no_tip_anymore: '不再提示',\r\n loading: '正在加载',\r\n wait: '请稍候..',\r\n submiting: '数据提交中,请稍候..',\r\n uploading: '正在上传,请稍侯..',\r\n click_preview: '点击预览',\r\n toomuch_wait: '次数过多,请稍候再试',\r\n toomuch_wait_countdown: '次数过多,请稍候再试(<em>{0}</em>)',\r\n preview_orginal_image: '查看原图',\r\n auth_success: '验证成功',\r\n auth_fail: '验证失败',\r\n choose_image: '选择图片',\r\n \r\n\r\n tree_movefail1: '无法移动:目标文件夹和源文件夹相同',\r\n tree_movefail2: '无法移动:目标文件夹是源文件夹的子文件夹',\r\n\r\n internet_error: '[{0} error] {1}<br>网络连接失败,请稍候再试',\r\n server_error: '[{0} error] {1}<br>系统异常,请联系管理员',\r\n preload_error: '获取预装载模板 \"{0}\" 失败',\r\n\r\n page: '页',\r\n page_text: {\r\n first: '首页',\r\n last: '尾页',\r\n next: '下页',\r\n prev: '上页'\r\n },\r\n\r\n print_preview: '打印预览',\r\n\r\n placeholder_input: '请输入{0}',\r\n placeholder_select: '请选择{0}',\r\n\r\n pulldown_refresh: '下拉刷新',\r\n release_refresh: '释放刷新',\r\n pullup_refresh: '上拉显示更多',\r\n pullup_nomore: '没有更多了',\r\n\r\n download_start: '开始下载..',\r\n download_complete: '下载完成',\r\n download_cannotopen: '无法打开此文件',\r\n download_fail: '下载失败',\r\n\r\n tab_close: '关闭标签',\r\n tab_close_others: '关闭其他标签',\r\n tab_close_all: '关闭全部标签',\r\n\r\n sort_asc: '升序',\r\n sort_desc: '降序',\r\n sort_cancel: '取消排序',\r\n column_choose: '选择列',\r\n\r\n connection_not_wifi: '您当前处于非wifi网络环境下,继续使用可能产生流量,确定继续吗?',\r\n\r\n debug: {\r\n sorry: '很抱歉,系统发生了错误',\r\n view_more: '点击“确定”,可在新窗口查看详细错误信息',\r\n no_command: '视图中没有定义此命令: {0}\\nview path: {1}',\r\n no_combo: '选项列表(或树)没有设置combo参数\\nname: {0}',\r\n error_template_type: '{0}\\n请把此模板类型改为 \"{1}\"',\r\n error_type: 'type错误或丢失\\n{0}',\r\n tmpl_method_undefined: '\"{0}\" 方法不存在'\r\n },\r\n\r\n form: {\r\n required: '{0}不能为空',\r\n onlyone: '{0的}只能选择一条记录',\r\n maxLength: '{0的}字符长度超出了{1}个字节',\r\n reach_maxLength: '已到达可输入的最大字符长度',\r\n over_maxLength: '字符长度超出了{0}个字节',\r\n minLength: '{0}不能少于{1}个字节',\r\n maxValue: '{0}最大值为{1}',\r\n minValue: '{0}最小值为{1}',\r\n maxSize: '{0}最多选择{1}项',\r\n minSize: '{0}最少选择{1}项',\r\n pattern: '{0}格式不符合规范,或包含非法字符',\r\n password_weak: '弱',\r\n password_middle: '中',\r\n password_strong: '强',\r\n number_invalid: '{0}不是一个有效数字',\r\n number_integer: '{0}请填入一个整数',\r\n number_decimal_digit: '{0的}小数位不能超过{1}位',\r\n step_max_value: '已到达最大值',\r\n step_min_value: '已到达最小值',\r\n time_exceed: '{0的}年份超出有效范围。有效年份:{1}年 至 {2}年',\r\n time_format: '{0的}时间格式错误。正确格式范例:{1}',\r\n period_invalid: '{0的}起始时间应早于结束时间',\r\n beforeNow: '{0}不能大于当前时间',\r\n afterNow: '{0}不能小于当前时间',\r\n compare: '{0}需要满足条件:{1} {2} {3}',\r\n invalid_option: '存在无效选项',\r\n need_valid_option: '请输入一个有效选项',\r\n choose_atleastone: '请至少选择一项',\r\n complete_required: '请完成必填项',\r\n jigsaw_drag_right: '向右拖动滑块填充拼图',\r\n jigsaw_required: '请完成滑块验证',\r\n jigsaw_errorimg: '图片数据异常',\r\n upload_loading: '正在上传,请稍候..',\r\n upload_invalid_file: '存在无效文件',\r\n no_files: '<没有文件>',\r\n upload_error: '(上传失败)',\r\n upload_limit: '上传数量超过上限(最多{0}个)',\r\n upload_invalid_file_type: '无效的文件类型:<br>{0}',\r\n upload_invalid_data: '错误的文件数据格式:<br>{0}',\r\n upload_no_data: '缺少文件数据',\r\n upload_maxfilesize: '上传失败: {0}<br><br>文件大小不能超过{1}',\r\n upload_minfilesize: '上传失败: {0}<br><br>文件大小不能小于{1}'\r\n },\r\n\r\n year: '年',\r\n month: '月',\r\n day: '日',\r\n sky: '天',\r\n hour: '时',\r\n minute: '分',\r\n second: '秒',\r\n\r\n calendar: {\r\n now: '现在',\r\n today: '今天',\r\n weeknow: '本周',\r\n monthnow: '本月',\r\n yearnow: '本年',\r\n day_title: ['日', '一', '二', '三', '四', '五', '六'],\r\n day_title_1: [ '一', '二', '三', '四', '五', '六','日'],\r\n y: '{0}<span>年</span>',\r\n monthname: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n backdate: '返回日期',\r\n picktime: '选择时间',\r\n H: '时',\r\n m: '分',\r\n s: '秒',\r\n from_to: '{0} 至 {1}',\r\n },\r\n\r\n error: '错误',\r\n\r\n ps(a, ...args) {\r\n if (a) {\r\n a = a.replace(/\\{(\\d+)([^\\d]+)?\\}/g, function($0, $1, $2) {\r\n let d = args[parseFloat($1)]\r\n return d == null || d === '' ? '' : $2 ? d + $2 : d\r\n })\r\n }\r\n return a\r\n },\r\n \r\n end: '结束'\r\n\r\n}\r\n","import lodash from 'lodash'\r\n\r\nconst strTrim = (a) => String(a).replace(/^\\s+|\\s+$/g, '')\r\n\r\nconst string = (a) => a == null ? '' : '' + a\r\n\r\n// @a -> str, b -> no html entities?\r\nconst strQuot = (a, b) => {\r\n\ta = String(a)\r\n\tb && (a = a.replace(/<[^>]+>/g, ''))\r\n\treturn a.replace(/\\\"/g, '"')\r\n}\r\n\r\n// 在a中取以b开始的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strFrom = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(d + b.length)\r\n}\r\n\r\n// 在a中取以b结束的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strTo = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(0, d)\r\n}\r\n\r\n// 取字符串字节数(一个汉字算双字节) /@ s -> str, b -> 一个汉字算几个字节?默认2个\r\nconst strLen = (s, b) => {\r\n if (!s) return 0;\r\n if (!b) b = $.x.cnBytes || 2;\r\n let d = 0\r\n for (let i = 0, l = s.length; i < l; i++)\r\n d += s.charCodeAt(i) > 128 ? b : 1;\r\n return d;\r\n}\r\n\r\n// 数字前加0 /@ a -> num, b -> 补成多少长度的字符串?\r\nconst strPad = function(a, b, c) {\r\n\tc = c == null ? '0' : (c + '');\r\n\tif (!b)\r\n\t\treturn a < 10 ? c + a : a;\r\n\ta = a + '';\r\n\twhile (a.length < b)\r\n\t\ta = c + a;\r\n\treturn a\r\n}\r\n\r\nconst strFormat = (a, b, c, d) => {\r\n a != null && (a += '');\r\n if (!a || !b) return a;\r\n if (Array.isArray(b)) {\r\n return a.replace(/\\$\\{?(\\d+)\\}?/g, function($0, $1) {\r\n return b[$1] == null ? (d ? $0 : '') : c ? encodeURIComponent(b[$1]) : b[$1]\r\n });\r\n } else {\r\n return a.replace(/\\$\\{?([a-z_][\\w.]*)\\}?/gi, function($0, $1) {\r\n let e = lodash.get(b, $1)\r\n return e == null ? (d ? $0 : '') : c ? encodeURIComponent(e) : e\r\n });\r\n }\r\n}\r\n\r\nconst strEscape = function(s) {\r\n\treturn s != null ? (s + '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\\\"/g, '"') : '';\r\n}\r\n\r\n// 在 a 中查找 b 并给 b 加上标签样式 c /@ a -> str, b -> key, c -> matchLength?, d -> key cls?\r\nconst strHighlight = function(a, b, c, d) {\r\n\treturn (a = a + '').replace(RegExp('(<[\\\\/!]?\\\\w+(?::\\\\w+)?\\\\s*(?:[-\\\\w]+(?:=(\\'|\")?.*?\\\\2)?\\\\s*)*>)|(' + strSplitword(b, c, true).join('|') + ')', 'ig'), function($0, $1, $2, $3) {\r\n\t \treturn $3 === undefined ? $1 : '<em class=\"' + (d || 'f-keyword') + '\">' + $3 + '</em>'\r\n\t})\r\n}\r\n\r\n// 字符转为regexp支持的模式\r\nconst _s_regexp = function(a) {\r\n\treturn a.replace(/([-.*+?^${}()|[\\]\\/\\\\])/g, '\\\\\\$1')\r\n}\r\n\r\n// @a -> key, b -> matchLength, c -> regexp?\r\nconst strSplitword = function(a, b, c) {\r\n\tlet e = [c ? _s_regexp(a) : a]\r\n let m = a.length\r\n\tif (b > 0 && m > b) {\r\n\t\tfor (let j = m - 1; j >= b; j --) {\r\n\t\t\tfor (let i = 0, l = m - j, f; i <= l; i ++) {\r\n\t\t\t\tf = a.substr(i, j)\r\n\t\t\t\te.push(c ? _s_regexp(f) : f)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn e\r\n}\r\n\r\nexport {string, strTrim, strEscape, strQuot, strFrom, strTo, strPad, strLen, strFormat, strHighlight}\r\n","import {strFrom, strTo} from './str.js'\r\n\r\nconst number = (a) => {\r\n var r = typeof a === 'string' ? parseFloat(a.replace(/[^\\d\\.-]|\\b-/g, '')) : +a\r\n return isNaN(r) ? 0 : r\r\n}\r\n// 判断是否数字\r\nconst isNumber = (a) => a != null && !isNaN(a)\r\n\r\n// 如果 a 的大小在 b 和 c 之间,则返回 a。否则返回 b 或 c\nconst numRange = function(a, b, c) {\n\treturn a == null ? ((b || b === 0) ? b : (c || c === 0) ? c : a) : ((b || b === 0) && a < b) ? b : ((c || c === 0) && a > c) ? c : a\n}\n// js小数相加运算出现多位小数的解决办法\nconst numAdd = function(...args) {\r\n let m = 0\r\n let r = 0\r\n args.forEach(a => {\r\n m = Math.max(m, strFrom(a + '', '.').length)\r\n r += a\r\n })\r\n m = Math.pow(10, m)\n\treturn Math.round(r * m) / m\n}\n// 给数字加上分隔符 /@a -> str, b -> length?, c -> separator?, d -> rightward?\nconst numFormat = function(a, b, c, d) {\n\ta = String(a)\n\tb == null && (b = 3)\n\tc == null && (c = ',')\n\tlet e = a.replace(/[^.\\d]/g, '').split('.'), s = e[0], l = s.length, i = d ? 0 : l, t = '', n = a.charAt(0) === '-' ? '-' : '';\r\n\tif (d) {\n\t\tdo {\n\t\t\ti += b;\n\t\t\tt += (i < l ? s.substr(i - b, b) + c : s.substr(i - b));\n\t\t} while (i < l);\n\t} else {\n\t\tdo {\n\t\t\ti -= b;\n\t\t\tt = (i > 0 ? c + s.substr(i, b) : s.substr(0, b + i)) + t;\n\t\t} while (i > 0);\n\t}\n\treturn n + t + (e.length > 1 ? '.' + strFrom(a, '.').replace(RegExp('[.' + c + ']', 'g'), '') : '');\n}\n// 调整小数位数\nconst numDecimal = function(a, b) {\n\tif (!b) {\n\t\treturn parseInt(number(a))\n\t} else if (b < 0) {\n\t\treturn parseFloat(number(a))\n\t} else {\n\t\tlet f = strFrom('' + a, '.')\n\t\treturn f ? strTo('' + a, '.') + '.' + f.slice(0, b) : a\n\t}\n}\r\n\r\nexport {number, isNumber, numRange, numAdd, numFormat, numDecimal}","import {\r\n number\r\n} from './number.js'\r\nimport {\r\n strPad\r\n} from './str.js'\r\n\r\n// 一天的毫秒数\r\nconst _date_D = 86400000\r\n\r\n// 标准格式化字符串\r\nconst _date_sf = 'yyyy-MM-dd HH:mm:ss'\r\n\r\n// 格式化日期\r\nconst dateFormat = function(a, b) {\r\n if (typeof a === 'string')\r\n a = dateParse(a, b);\r\n let o = {\r\n y: a.getFullYear(),\r\n m: a.getMonth(),\r\n d: a.getDate(),\r\n h: a.getHours(),\r\n i: a.getMinutes(),\r\n s: a.getSeconds(),\r\n }\r\n let s = (b || _date_sf).replace('yyyy', o.y).replace('MM', strPad(o.m + 1)).replace('dd', strPad(o.d)).replace('HH',\r\n strPad(o.h))\r\n .replace('mm', strPad(o.i)).replace('ss', strPad(o.s))\r\n .replace('M', o.m + 1).replace('d', o.d).replace('H', o.h).replace('m', o.i).replace('s', o.s)\r\n if (s.indexOf('w') > -1) {\r\n let w = dateWeek(a)\r\n s = s.replace('ww', strPad(w[1])).replace('w', w[1])\r\n }\r\n return s\r\n}\r\n\r\n// 字串型转为日期型 /@a -> str, b -> format?\r\nconst dateParse = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1');\r\n b = (b || _date_sf).replace(/\\b([MdHmsw])\\b/g, '$1$1');\r\n let c\r\n let y = (c = b.indexOf('yyyy')) > -1 ? (number(a.substr(c, 4)) || (new Date().getFullYear())) : (new Date()\r\n .getFullYear())\r\n let M = (c = b.indexOf('MM')) > -1 ? Math.max(number(a.substr(c, 2)) - 1, 0) : 0\r\n let d = (c = b.indexOf('dd')) > -1 ? number(a.substr(c, 2)) || 1 : 1\r\n let H = (c = b.indexOf('HH')) > -1 ? number(a.substr(c, 2)) : 0\r\n let m = (c = b.indexOf('mm')) > -1 ? number(a.substr(c, 2)) : 0\r\n let s = (c = b.indexOf('ss')) > -1 ? number(a.substr(c, 2)) : 0\r\n if ((c = b.indexOf('ww')) > -1) {\r\n let w = number(a.substr(c, 2))\r\n let t = dateWeek(new Date(y, 0, 1))\r\n if (t[0] != y)\r\n t = dateWeek(new Date(y, 0, 8))\r\n return new Date(t[2].getTime() + (w - 1) * 7 * _date_D)\r\n }\r\n return new Date(y, M, d, H, m, s)\r\n}\r\n\r\n// 日期增减 /@ a -> date, b -> type enum (y/M/d/H/m/s), c -> value\r\nconst dateAdd = function(a, b, c) {\r\n c = number(c)\r\n let e = new Date(a.getTime())\r\n if (b === 'y')\r\n e.setFullYear(a.getFullYear() + c)\r\n else if (b === 'M')\r\n e.setMonth(e.getMonth() + c)\r\n else if (b === 'd')\r\n e.setDate(e.getDate() + c)\r\n else if (b === 'H')\r\n e.setHours(e.getHours() + c)\r\n else if (b === 'm')\r\n e.setMinutes(e.getMinutes() + c)\r\n else if (b === 's')\r\n e.setSeconds(e.getSeconds() + c)\r\n if ((b === 'y' || b === 'M') && e.getDate() != a.getDate())\r\n e = new Date(e.getTime() - e.getDate() * _date_D)\r\n return e\r\n}\r\n\r\n// 取得一个日期对象的week相关信息。返回一个包含四个元素的数组,【 年份,第几周,周一的日期,周日的日期 】\r\n// @a -> date\r\nconst dateWeek = function(a) {\r\n let b = $.x.weekPoint != null ? $.x.weekPoint : 1 //周的重心(星期几,从0到6)\r\n let c = $.x.weekStart != null ? $.x.weekStart : 1 //周的第一天(星期几,从0到6)\r\n let w = a.getDay() || 7\r\n let d = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + b)\r\n let e = Math.ceil((d - new Date(d.getFullYear(), 0, 0)) / _date_D)\r\n let f = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + c)\r\n return [d.getFullYear(), Math.floor((e + 6) / 7), f, new Date(f.getTime() + (7 * _date_D) - 1)]\r\n}\r\n\r\n// 获取某年的第一周\r\nconst dateWeekFirst = function(year) {\r\n let c = $.dateWeek(new Date(year, 0, 1))\r\n if (c[0] != year)\r\n c = $.dateWeek(new Date(year, 0, 8))\r\n return c\r\n}\r\n\r\n// 获取某年的最后一周\r\nconst dateWeekLast = function(year) {\r\n let b = dateWeek(new Date(year, 11, 31))\r\n if (b[0] !== year)\r\n b = dateWeek(new Date(year, 11, 31 - 7))\r\n return b\r\n}\r\n\r\n// 判断一个字符串格式的日期是否正确 /@ a -> date string, b -> date format string\r\nconst dateValid = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1')\r\n let d = dateParse(a, b)\r\n let y = d.getFullYear()\r\n return y >= 1000 && y <= 9999 && a == dateFormat(d, b)\r\n}\r\n\r\nconst dateDiff = function(a, b = new Date, c) {\r\n if (typeof a === 'string') a = dateParse(a)\r\n if (typeof b === 'string') b = dateParse(b)\r\n switch (c) {\r\n case 'y':\r\n let e = b.getFullYear() - a.getFullYear()\r\n let f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e\r\n case 'M':\r\n let y = _dateDiff(a, b, 'y')\r\n let z = dateAdd(a, 'y', y)\r\n e = z.getFullYear() < b.getFullYear() ? b.getMonth() + 11 - z.getMonth() : b.getMonth() - z.getMonth()\r\n f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e + y * 12\r\n case 'H':\r\n return Math.floor((b - a) / (60 * 60 * 1000))\r\n case 'm':\r\n return Math.floor((b - a) / (60 * 1000))\r\n case 's':\r\n return Math.floor((b - a) / 1000)\r\n default: // 'd' 日期类型为默认\r\n return Math.floor((b - a) / _date_D)\r\n }\r\n}\r\n\r\nconst dateSheet = function(...args) {\r\n return $.docView.dateSheet(...args)\r\n}\r\n\r\nexport {\r\n dateFormat,\r\n dateParse,\r\n dateAdd,\r\n dateValid,\r\n dateDiff,\r\n dateSheet,\r\n dateWeek,\r\n dateWeekFirst,\r\n dateWeekLast,\r\n}\n","if (window.Range && !Range.prototype.movePoint) {\r\n if (Range.prototype.__defineGetter__) {\r\n Range.prototype.__defineGetter__('text', function() {\r\n return this.toString()\r\n });\r\n Range.prototype.__defineSetter__('text', function(a) {\r\n this.deleteContents()\r\n this.insertNode(document.createTextNode(a))\r\n });\r\n }\r\n Range.prototype.movePoint = function(a, b) {\r\n var c = this.startContainer.firstChild || this.startContainer,\r\n d, i = a,\r\n l = 0,\r\n b = b == null ? a : b;\r\n do {\r\n this.selectNodeContents(c);\r\n l = this.toString().length;\r\n i -= l;\r\n } while (i > 0 && (c = c.nextSibling));\r\n c = d = this.startContainer;\r\n i += l;\r\n var j = b - a + i,\r\n l = 0;\r\n do {\r\n this.selectNodeContents(d);\r\n l = this.toString().length;\r\n j -= l;\r\n } while (j > 0 && (d = d.nextSibling));\r\n this.setStart(c.firstChild || c, i);\r\n if (d) {\r\n var e = d;\r\n while (e.firstChild) e = e.firstChild;\r\n this.setEnd(e, l + j);\r\n }\r\n };\r\n Range.prototype.select = function() {\r\n let s = window.getSelection()\r\n s.removeAllRanges()\r\n s.addRange(this)\r\n };\r\n}\r\n\r\nconst rngSelection = function() {\r\n let s = window.getSelection()\r\n return s.rangeCount && s.getRangeAt(0)\r\n}\r\nconst rngElement = function() {\r\n let s = rngSelection()\r\n return s && s.startContainer.parentNode\r\n}\r\nconst rngCursor = function(a, b) {\r\n let r = a\r\n if (window.getSelection) {\r\n if (typeof a.selectionStart === 'number' && typeof a.selectionEnd === 'number') {\r\n a.selectionStart = a.selectionEnd = b != null ? b : a.value.length\r\n } else {\r\n let s = window.getSelection()\r\n if (a.nodeType === 1)\r\n (r = document.createRange()).selectNodeContents(a)\r\n if (b != null)\r\n r.movePoint(b)\r\n s.removeAllRanges()\r\n s.addRange(r)\r\n s.collapseToEnd()\r\n }\r\n }\r\n return r\r\n}\r\nconst rngCursorOffset = function() {\r\n let n = rngSelection()\r\n let c = n.startOffset\r\n if (c != null)\r\n return c\r\n let r = document.body.createTextRange()\r\n r.selectNodeContents(n.startContainer.parentNode)\r\n r.setEndPoint('EndToStart', n)\r\n return rngText(r).length\r\n}\r\n// @a ->range, b -> text?\r\nconst rngText = function(a, b) {\r\n if (a == null)\r\n a = rngSelection()\r\n if (b != null) {\r\n if (a.deleteContents) {\r\n a.deleteContents()\r\n a.insertNode(document.createTextNode(b))\r\n } else {\r\n a.text = b\r\n }\r\n }\r\n return a.text === undefined ? a.toString() : a.text\r\n}\r\n\r\nexport {\r\n rngSelection,\r\n rngElement,\r\n rngCursor,\r\n rngCursorOffset,\r\n rngText\r\n}\n","import jquery from 'jquery'\r\n\r\nconst _adjacent_where = ['afterend', 'afterbegin', 'beforebegin', 'beforeend']\nconst _adjacent_query = ['after', 'prepend', 'before', 'append']\r\n// 创建一个div /@ s -> html\nconst _div = function(s) {\n\tlet o = document.createElement('div')\n\tif (s) o.innerHTML = s\n\ttry {return o} catch(e) {return false}\n\tfinally {o = null}\n}\r\nconst frag = function(s) {\n\tlet d = typeof s === 'string' ? _div(s) : s\r\n let f = document.createDocumentFragment()\n\twhile (d.firstChild)\n\t\tf.appendChild(d.firstChild);\n\ttry {return f} catch(e) {return false}\n\tfinally {d = f = null}\n}\r\n\r\nconst el = function(o) {\r\n if (o) {\r\n return o.isWidget ? o.el() : o\r\n }\r\n}\n// o -> el, s -> html string/object, r -> where[`after`, `prepend`, `before`, `append`]\nconst html = function(o, s, r) {\n\tif (r == null) {\n\t\tif (s == null) return o.innerHTML\n\t\ttry {o.innerHTML = s} catch(ex) {\n\t\t\twhile (o.firstChild)\n\t\t\t\to.removeChild(o.firstChild)\n\t\t\thtml(o, s, 3)\n\t\t}\n\t} else {\n\t\tlet b\n\t\tif (typeof s === 'string') {\n\t\t\ttry {\n\t\t\t\to.nodeType === 3 ? jquery(o)[_adjacent_query[r]](s) : o.insertAdjacentHTML(_adjacent_where[r], s)\n\t\t\t} catch (ex) {\n\t\t\t\thtml(o, frag(s), r)\n\t\t\t}\n\t\t} else {\n\t\t\tlet p = r % 2 ? o : o.parentNode\n\t\t\tp && p.insertBefore(s, r === 0 ? o.nextSibling : r === 1 ? o.firstChild : r === 2 ? o : null)\n\t}\n\t}\n}\nconst append = function(o, s) {html(o, s, 3); return o.lastElementChild || o.lastChild}\nconst prepend = function(o, s) {html(o, s, 1); return o.firstElementChild || o.firstChild}\nconst before = function(o, s) {html(o, s, 2); return o.previousElementSibling || o.previousSibling}\nconst after = function(o, s) {html(o, s, 0); return o.nextElementSibling || o.nextSibling}\nconst replaceWith = function(o, s) {\n\tlet a = o.nextSibling\n\tif (a) {\n\t\to.parentNode.removeChild(o)\n\t\treturn before(a, s)\n\t} else {\n\t\tlet p = o.parentNode\n\t\tp.removeChild(o)\n\t\treturn append(p, s)\n\t}\n}\r\n\r\nexport {el, html, append, prepend, before, after, replaceWith}","import {number} from './number.js'\r\nimport {strFrom, strTo} from './str.js'\r\n\r\nconst _css_camelize = (function() {\n\tlet b = {'float' : 'cssFloat'}\n\treturn function(s) {\n\t\treturn b[s] || s.replace(/-./g, function($0) {return $0.charAt(1).toUpperCase()});\n\t}\n})()\r\n\r\n// @o -> el, n -> name, v -> value\nconst _set_style = function(o, n, v) {\n\t// 如属性名前面带 += 号,则执行 += 操作\n\tif (typeof v === 'string' && v.charAt(1) === '=') {\n\t\tvar\tn = _css_camelize(n),\n\t\t\tc = o.style[n] || getComputedStyle(o, null)[n],\n\t\t\tv = number(v.replace('=', ''))\n\t\tif (n === 'width' || n === 'height') {\n\t\t\tc = number(c && c !== 'auto' ? c : n.charAt(0) === 'w' ? o.offsetWidth : o.offsetHeight);\n\t\t\tif (c < 0) c = 0;\n\t\t} else\n\t\t\tc = number(c);\n\t\to.style[n] = (c + v) + (n === 'zIndex' ? 0 : 'px');\n\t} else {\n\t\tn = _css_camelize(n);\n\t\tif (n === 'width' || n === 'height')\n\t\t\tv && v !== 'auto' && (v = Math.max(_number(v), 0));\n\t\tif (v && !isNaN(v) && n !== 'zIndex')\n\t\t\tv += 'px';\n\t\to.style[n] = v;\n\t}\n\treturn o;\n}\r\n\r\nconst css = function(o, s, n) {\n\tif (!o || !s)\n\t\treturn null;\n\tif (n != null) {\n\t\tfor (var i = 1, l = arguments.length; i < l; i += 2)\n\t\t\t_set_style(o, arguments[i], arguments[i + 1]);\n\t} else {\n\t\tif (typeof s === 'string') {\n\t\t\tif (s.indexOf(':') > 0) {\n\t\t\t\tfor (var i = 0, b = s.split(';'), l = b.length, k, v; i < l; i ++)\n\t\t\t\t\t(k = strTo(b[i], ':')) && (v = strFrom(b[i], ':')) && _set_style(o, k, v);\n\t\t\t} else\n\t\t\t\treturn o.style[s] || getComputedStyle(o, null)[s];\n\t\t}\n\t\tfor (var i in s) _set_style(o, i, s[i]);\n\t}\n}\r\n\r\nexport {css}","import {number, isNumber} from './number.js'\r\nimport {css} from './css.js'\r\n\r\nconst T = true\r\nconst F = false\r\nconst N = null\r\nconst doc = document\r\nconst cvs = document.documentElement\r\n\r\nconst _arr_comma = a => a.split(',')\r\n\r\nconst _snaptype = {\n\th : _arr_comma('21,12,34,43'),\n\tv : _arr_comma('41,14,32,23'),\n\ta : _arr_comma('41,32,14,23,21,34,12,43,11'),\n\tt: ['tt'], b: ['bb'], l: ['ll'], r: ['rr'], c: ['cc'], top: ['tt'], bottom: ['bb'], left: ['ll'], right: ['rr'],\n\ttl: ['11'], tr: ['22'], rt: ['22'], rb: ['33'], br: ['33'], bl: ['44'], lb: ['44'], lt: ['11'], \n\t'1': ['11'], '2': ['22'], '3': ['22'], '4': ['33'], '5': ['33'], '6': ['44'], '7': ['44'], '8': ['11']\n}\r\n\nconst _snapMag = (function() {\n\tvar r = [23,22,33,32,21,34,'rr','rl'], b = [14,23,34,43,33,44,'bb','tb'], i, o = {pix: {r:{}, b:{}}, mag: {l:{}, r:{}, t:{}, b:{}}, inner:{}};\n\ti = r.length; while (i --) o.pix.r[r[i]] = T;\n\ti = b.length; while (i --) o.pix.b[b[i]] = T;\n\tvar r = [21,34,22,33,'rr','rl'], b = [41,32,44,33,'bt','bb'], l = [12,43,11,44,'lr','ll'], t = [14,23,11,22,'tb','tt'];\n\ti = r.length; while (i --) o.mag.r[r[i]] = T;\n\ti = b.length; while (i --) o.mag.b[b[i]] = T;\n\ti = l.length; while (i --) o.mag.l[l[i]] = T;\n\ti = t.length; while (i --) o.mag.t[t[i]] = T;\n\tvar r = [11,22,33,44,'tt','bb','ll','rr'];\n\ti = r.length; while (i --) o.inner[r[i]] = T;\n\treturn o;\n})()\r\n\r\nconst canvasOffset = function(o) {\n\tvar a = bcr(o);\n\ta.right = cvs.clientWidth - a.right;\n\ta.bottom = cvs.clientHeight - a.bottom;\n\treturn a;\n}\r\n\r\nconst offset = function(a, b) {\n\tlet r = {top: 0, left: 0, width: a.offsetWidth, height: a.offsetHeight}\n\tdo {\n\t\tr.top += a.offsetTop\r\n r.left += a.offsetLeft\n\t} while((a = a.offsetParent) && b != a)\n\treturn r\n}\r\n\r\nconst bcr = function(a) {\n\tvar b = cvs.clientLeft, c = cvs.scrollLeft, d = cvs.clientTop, e = cvs.scrollTop, o = a && a != doc && (a.isWidget ? a.el() : a), r = o && o.getBoundingClientRect();\n\treturn r ? {left : r.left - b + c, top : r.top - d + e, right : r.right - b + c, bottom : r.bottom - d + e, width : r.width, height : r.height} :\n\t\ta == document ? {left: c, top: e, right: cvs.clientWidth + c, bottom: cvs.clientHeight + e, width: cvs.clientWidth, height: cvs.clientHeight} : N;\n}\r\n\n// 获取对齐吸附模式的位置参数。元素四个角,左上为1,右上为2,右下为3,左下为4。目标元素在前,浮动元素在后。如\"41\"代表目标元素的左下角和浮动元素的左上角粘合。\n// @ a -> width, b -> height, c -> toObj offset, d -> adsorb type, e - > fit?[是否自动选择位置,让可见区域最大化], f -> indent[缩进多少像素], u -> range?[浮动元素的限定范围元素]\nconst snap = function(a, b, c, d, e, f, u) {\n\tif (!c)\n\t\tc = bcr(doc);\n\telse if (c.nodeType)\n\t\tc = bcr(c);\n\telse if (c.isWidget)\n\t\tc = bcr(c.el());\n\telse if (c.originalEvent || c.clientX != N) {\n\t\tc = c.originalEvent || c;\n\t\tc = {left: c.clientX, right: c.clientX, top: c.clientY, bottom: c.clientY};\n\t}\n\tvar t = [], l = [], g, h, k = -1, f = number(f), ew = cvs.clientWidth, eh = cvs.clientHeight,\n\t\ts = d ? (_snaptype[d] || ('' + d).split(',')) : _snaptype.a;\r\n\tif (/[1-4]/.test(s[0])) {// 1-4是边角对齐 .\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\n\t\t\tg = + s[i].charAt(0), h = + s[i].charAt(1);\n\t\t\tt.push((g === 1 || g === 2 ? c.top : c.bottom) - (h === 3 || h === 4 ? b : 0));\n\t\t\tl.push((g === 1 || g === 4 ? c.left : c.right) - (h === 2 || h === 3 ? a : 0));\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\n\t\t\tif (o && p) {\n\t\t\t\tk = i;\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\t// 计算可见面积,取最大的那个\n\t\t\t\tvar ot = t[i] < 0 ? -t[i] : 0,\n\t\t\t\t\tor = l[i] + a > ew ? l[i] + a - ew : 0,\n\t\t\t\t\tob = t[i] + b > eh ? t[i] + b - eh : 0,\n\t\t\t\t\tol = l[i] < 0 ? -l[i] : 0;\n\t\t\t\tm = s[i] === '14' || s[i] === '34' ? (a-or)*(b-ot) : s[i] === '23' || s[i] === '43' ? (a-ol)*(b-ot) :\n\t\t\t\t\ts[i] === '32' || s[i] === '12' ? (a-ol)*(b-ob) : (a-or)*(b-ob);\n\t\t\t\tif (!n || n < m) {\n\t\t\t\t\tn = m;\n\t\t\t\t\tk = i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {// t r b l 是边线中点对齐 .\r\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\n\t\t\tg = s[i].charAt(0), h = s[i].charAt(1);\r\n\t\t\tt.push((g === 'r' || g === 'l' || g === 'c' ? (c.top + c.bottom) / 2 : (g === 't' ? c.top : c.bottom)) - (h === 'r' || h === 'l' || h === 'c' ? b / 2 : (h === 'b' ? b : 0)));\n\t\t\tl.push((g === 't' || g === 'b' || g === 'c' ? (c.left + c.right) / 2 : (g === 'r' ? c.right : c.left)) - (h === 't' || h === 'b' || h === 'c' ? a / 2 : (h === 'r' ? a : 0)));\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\n\t\t\tif (o && p) {\n\t\t\t\tk = i;\n\t\t\t\tbreak;\n\t\t\t} else if (o || p) {\n\t\t\t\tif (d) {\n\t\t\t\t\tm = d == _snaptype.v ? (g == 1 || g == 2 ? - t[i] : t[i] + b - eh) : (g == 1 || g == 4 ? - l[i] : l[i] + a - ew);\n\t\t\t\t\tif (!n || n > m) {\n\t\t\t\t\t\tn = m;\n\t\t\t\t\t\tk = i;\n\t\t\t\t\t}\n\t\t\t\t} else if (k < 0)\n\t\t\t\t\tk = i;\n\t\t\t}\n\t\t}\n\t}\r\n\tif (k < 0) k = 0;\n\tvar y = s[k], o = {left : l[k], top : t[k], bottom: eh - (t[k] + b), right: ew - (l[k] + a), type : y};\r\n\t_snapMag.pix.r[y] && (o.pix_r = T);\n\t_snapMag.pix.b[y] && (o.pix_b = T);\n\t_snapMag.mag.r[y] && (o.mag_r = T, o.mag = 'r');\n\t_snapMag.mag.b[y] && (o.mag_b = T, o.mag = 'b');\n\t_snapMag.mag.l[y] && (o.mag_l = T, o.mag = 'l');\n\t_snapMag.mag.t[y] && (o.mag_t = T, o.mag = 't');\n\t_snapMag.inner[y] && (o.inner = T);\r\n\tif (f && o.mag) {\n\t\tif (o.inner) {\n\t\t\to.mag_t ? (o.top -= f) : o.mag_b ? (o.bottom -= f) : o.mag_r ? (o.right -= f) : (o.left -= f);\n\t\t} else {\n\t\t\to.mag_t ? (o.bottom -= f) : o.mag_b ? (o.top -= f) : o.mag_r ? (o.left -= f) : (o.right -= f);\n\t\t}\n\t}\n\tif (e) {// 自适应位置 \n\t\tvar l = o.left, r = o.right, b = o.bottom, t = o.top;\r\n\t\tif (o.mag_t || o.mag_b) {\n\t\t\tif (o.pix_r)\n\t\t\t\tr = Math.max(0, l < 0 ? r + l : r), l += o.right - r;\n\t\t\telse\n\t\t\t\tl = Math.max(0, r < 0 ? r + l : l), r += o.left - l;\n\t\t}\n\t\tif (o.mag_l || o.mag_r) {\n\t\t\tif (o.pix_b)\n\t\t\t\tb = Math.max(0, t < 0 ? b + t : b), t += o.bottom - b;\n\t\t\telse\n\t\t\t\tt = Math.max(0, b < 0 ? b + t : t), b += o.top - t;\n\t\t}\n\t\to.left = l, o.right = r, o.top = t, o.bottom = b;\n\t} \n\tif (d === 'cc' && o.top < 0)\n\t\to.top = 0;\n\tif (u) {\r\n \t\tvar s = canvasOffset(u);\n\t\to.top -= (s.top);\n\t\to.left -= (s.left);\n\t\to.right -= (s.right);\n\t\to.bottom -= (s.bottom);\r\n\t}\n\to.width = a;\n\to.height = b;\n\to.target = c; \n\treturn o;\n}\r\n\r\n// @a -> el, b -> snap option\nconst snapTo = function(a, b) {\n\tvar e = b.type;\n\tif (e) {\n\t\tif (b.pix_r) {\n\t\t\ta.style.right = b.right + 'px';\n\t\t\ta.style.left = '';\n\t\t} else {\n\t\t\ta.style.left = b.left + 'px';\n\t\t\ta.style.right = '';\n\t\t}\n\t\tif (b.pix_b) {\n\t\t\ta.style.bottom = b.bottom + 'px';\n\t\t\ta.style.top = '';\n\t\t} else {\n\t\t\ta.style.top = b.top + 'px';\r\n\t\t\ta.style.bottom = '';\n\t\t}\n\t} else\n\t\tcss(a, b)\n}\r\n\r\nexport {bcr, offset, snap, snapTo}\n","// 最后一个属性是数组 / a -> obj, b -> target\n// example: _jsonArray(obj, target, 'a', 'b');\n// 等同于: target['a']['b'].push(obj);\nconst jsonArray = function(a, b) {\n\tfor (var i = 2, l = arguments.length - 1; i < l; i ++)\n\t\tb = b[arguments[i]] || (b[arguments[i]] = {});\n\t(b[arguments[l]] || (b[arguments[l]] = [])).push(a);\n\treturn b[arguments[l]];\n}\r\n\n// example: _jsonChain(obj, target, 'a', 'b');\n// 等同于: target['a']['b'] = obj;\nconst jsonChain = function(a, b) {\n\tfor (var i = 2, l = arguments.length - 1, c = b; i < l; i ++)\n\t\tc = c[arguments[i]] || (c[arguments[i]] = {});\n\tc[arguments[l]] = a;\n\treturn c;\n}\r\n\r\nexport {jsonArray, jsonChain}","import {strFrom, strTo } from './str.js'\r\nimport {jsonArray} from './json.js'\r\nimport br from './browser.js'\r\nimport uid from './uid.js'\r\nimport lodash from 'lodash'\r\n\r\nconst _EventUser = {}\r\nconst _event_remove = function(k) {\r\n if (k.fn) {\r\n lodash.pull(_EventUser[k.id][k.type], k)\r\n k.type = k.fn = k.args = null\r\n }\r\n}\r\nconst _event_name = function(a) {\r\n return a.indexOf('.') > -1 ? strTo(a, '.') : a\r\n}\r\nconst _event_space = function(a) {\r\n return a.indexOf('.') > -1 ? '.' + strFrom(a, '.').split('.').sort().join('.') + '.' : ''\r\n}\r\nconst _event_handlers = function(a, b) {\r\n var c = _EventUser[uid(a)];\r\n if (!c) return;\r\n var type = _event_name(b),\r\n ns = _event_space(b);\r\n if (type) {\r\n return c[type] && (ns ? c[type].filter(v => v.ns.indexOf(ns) > -1) : c[type])\r\n }\r\n var r = [];\r\n for (type in c) {\r\n r.push.apply(r, c[type].filter(v => v.ns.indexOf(ns) > -1))\r\n }\r\n return r;\r\n}\r\n\r\nclass EventListener {\r\n constructor(ctx) {\r\n this.ctx = ctx\r\n }\r\n hasEvent(type) {\r\n let a = _event_handlers(this.ctx, type)\r\n return a && a.length\r\n }\r\n // type -> event type, fn -> fn, pvdr -> context, one -> exec once [T/F]\r\n addEvent(type, fn, one) {\r\n var k = {\r\n id: uid(this.ctx),\r\n type: _event_name(type),\r\n ns: _event_space(type),\r\n fn: fn,\r\n one: one\r\n };\r\n jsonArray(k, _EventUser, k.id, k.type).ori = true\r\n return this;\r\n }\r\n addEventOnce(type, fn) {\r\n return this.addEvent(type, fn, true)\r\n }\r\n // e -> event, r -> args[array]\r\n fireEvent(e, r) {\r\n var a = _event_handlers(this.ctx, e.type || e);\r\n if (a) {\r\n for (var i = 0, k, l = a.length, v; i < l; i++) {\r\n if ((k = a[i]) && k.fn) {\r\n v = k.fn.apply(this.ctx, r ? [e].concat(r) : [e]);\r\n if (k.one) {\r\n _event_remove(k);\r\n a.ori && (i--, l--);\r\n }\r\n if (v !== undefined)\r\n return v;\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n // a -> event type, b -> fn\r\n removeEvent(a, b) {\r\n if (a) {\r\n var d = _event_handlers(this.ctx, a);\r\n if (d) {\r\n var i = d.length;\r\n while (i--)\r\n if (!b || (d[i].fn === b)) _event_remove(d[i]);\r\n }\r\n } else {\r\n var c = _EventUser[uid(this.ctx)],\r\n i;\r\n for (i in c) this.removeEvent(i);\r\n delete _EventUser[uid(this.ctx)];\r\n }\r\n return this;\r\n }\r\n}\n\r\nconst eventX = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientX : e.clientX\r\n}\r\n\r\nconst eventY = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientY : e.clientY\r\n}\r\n\r\nconst moveup = function(moveCB, upCB, downEv) {\r\n let moveHdl, upHdl, dir = downEv == null,\r\n cvs = document.documentElement,\r\n evX = e => e.targetTouches ? e.targetTouches[0].clientX : e.clientX,\r\n evY = e => e.targetTouches ? e.targetTouches[0].clientY : e.clientY,\r\n prevent = e => e.preventDefault()\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = 'none'\r\n }\r\n cvs.addEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl = function(e) {\r\n dir ? moveCB(e) :\r\n downEv && (Math.abs(evX(e) - evX(downEv)) > 1 || Math.abs(evY(e) - evY(downEv)) > 1) && (dir = true)\r\n }, true);\r\n cvs.addEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl = function(e) {\r\n cvs.removeEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl, true)\r\n cvs.removeEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl, true)\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = ''\r\n }\r\n br.mobile && cvs.removeEventListener('touchmove', prevent, {passive: false});\r\n upCB && upCB(e, dir)\r\n }, true);\r\n // 业务拖动时禁用浏览器默认的拖动效果\r\n br.mobile && cvs.addEventListener('touchmove', prevent, {passive: false})\r\n}\r\n\r\nexport {EventListener, eventX, eventY, moveup}","import lodash from 'lodash'\r\nimport jquery from 'jquery'\r\nimport http from 'axios'\r\nimport Qs from 'qs'\r\n\r\nimport br from './util/browser.js'\r\nimport uid from './util/uid.js'\r\nimport loc from './util/loc/zh-CN.js'\r\nimport {number, isNumber, numRange, numAdd, numFormat, numDecimal} from './util/number.js'\r\nimport {string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strFormat, strHighlight} from './util/str.js'\r\nimport {dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast} from './util/date.js'\r\nimport {rngSelection, rngElement, rngCursor, rngCursorOffset, rngText} from './util/range.js'\r\nimport {el, html, append, prepend, before, after, replaceWith} from './util/elem.js'\r\nimport {bcr, offset, snap, snapTo} from './util/snap.js'\r\nimport {EventListener, eventX, eventY, moveup} from './util/event.js'\r\n\r\n\r\nfunction $(o) {\r\n if (!o || o.isWidget) return o\r\n if (typeof o === 'string' || o.uid) return $.vueMap.get(o.uid || o)\r\n if (o instanceof Event) {\r\n o = o.currentTarget || o.target\r\n }\r\n if (o.$el) {\r\n o = o.$el\r\n if (o.nodeType === 3)\r\n o = o.nextElementSibling\r\n }\r\n if (lodash.isElement(o)) {\r\n do {\r\n if (o.id) {\r\n if ($.vueMap.has(o.id)) return $.vueMap.get(o.id)\r\n let d = $.strTo(o.id, ':') + ':'\r\n if($.vueMap.has(d)) return $.vueMap.get(d)\r\n }\r\n } while (o = o.parentNode)\r\n }\r\n while (o && !o.isWidget) o = o.$parent\r\n return o || $.docView\r\n}\r\n\r\nObject.assign($, {\r\n x: {defaultOptions: {}},\r\n vueMap: new Map(),\r\n dfclsCache: {},\r\n q: jquery, lodash, http,\r\n br, loc, uid, EventListener, eventX, eventY,\r\n number, isNumber, numRange, numAdd, numFormat, numDecimal,\r\n string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strFormat, strHighlight,\r\n dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast,\r\n rngSelection, rngElement, rngCursor, rngCursorOffset, rngText,\r\n el, html, append, prepend, before, after, replaceWith,\r\n moveup, bcr, offset, snap, snapTo,\r\n})\r\n\r\n// a继承b的属性。不覆盖a的既有同名属性\r\n$.extend = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c)\r\n if (!(k in a) && c[k] !== undefined) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n// 递归继承\r\n$.extendDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null && c.constructor === Object) {\r\n for (let i in c) {\r\n if (!(i in a)) {\r\n if (c[i] != null && c[i].constructor === Object) {\r\n $.extendDeep(a[i] = {}, c[i])\r\n } else\r\n a[i] = c[i]\r\n } else if (a[i] != null && a[i].constructor === Object)\r\n $.extendDeep(a[i], c[i])\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.merge = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n$.mergeDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null) {\r\n for (let k in c) {\r\n if (typeof a[k] === 'object')\r\n $.mergeDeep(a[k], c[k])\r\n else\r\n a[k] = c[k]\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.cloneDeep = lodash.cloneDeep\r\n\r\n$.eval = function(str, opt) {\r\n if (opt) {\r\n let keys = Object.keys(opt)\r\n return Function(keys.map(k => k), `return (${str})`)(...keys.map(k => opt[k]))\r\n }\r\n return Function(`return (${str})`)()\r\n}\r\n\r\n// a -> object, b -> concat?\r\n$.array = function(a, b) {\r\n return Array.isArray(a) ? (b ? a.concat() : a) : a == null || a === '' ? [] : typeof a === 'string' ? a.split(',') : [a]\r\n}\r\n// 把数组内的文本转为数字\r\n$.arrayNumber = function(a) {\r\n return $.array(a).map(v => parseFloat(v))\r\n}\r\n\r\n// 数字转为像素单位。如果自带单位则保留单位\r\n$.unitSize = (size, allowMinus) => size == null || size === '' ? '' : size === '*' ? '' : (size == -1 && !allowMinus)|| size == 'auto' ?\r\n 'auto' : isNaN(size) ? size : `${size}px`\r\n\r\n// 添加一个ID\r\n$.idsAdd = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s || n\r\n for (var i = 0, n = n.split(p), l = n.length; i < l; i++) {\r\n if ((p + s + p).indexOf(p + n[i] + p) < 0) s += (s ? p : '') + n[i];\r\n }\r\n return s\r\n}\r\n// 删除一个ID\r\n$.idsRemove = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s\r\n for (var i = 0, e, n = n.split(p), l = n.length; i < l; i++) {\r\n do {\r\n e = (p + s + p).indexOf(p + n[i] + p);\r\n if (e > -1) s = s.slice(0, e ? e - 1 : e) + s.slice(e + n[i].length + (e ? 0 : 1));\r\n } while (s && e > -1);\r\n }\r\n return s\r\n}\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAny = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return false\r\n if (s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) > -1) return true\r\n return false\r\n}\r\n\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAll = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = s == null ? '' : '' + s\r\n n = n == null ? '' : '' + n\r\n p = p == null ? ',' : '' + p\r\n if (!s) return false\r\n if (!n || s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) < 0) return false\r\n return true\r\n}\r\n\r\n// 添加一个class /@ a -> el, b -> className, c -> add?(默认添加)\r\n$.classAdd = function(a, b, c) {\r\n if (!a) return\r\n let s = a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $.strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b[i], ' ')\r\n } else\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b, ' ')\r\n a.className = s\r\n}\r\n\r\n// 删除一个class /@ a -> el, b -> className\r\n$.classRemove = function(a, b) {\r\n if (!a) return\r\n if (b.indexOf(' ') > -1) {\r\n $.classAdd(a, b, false)\r\n } else\r\n a.className = $.idsRemove(a.className, b, ' ')\r\n}\r\n\r\n// 是否包含任意一个class(多个是“或”的关系) /@ a -> el or className\r\n$.classAny = function(a, b) {\r\n if (!a) return\r\n let s = typeof a === 'string' ? a : a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n if ($.idsAny(s, b[i], ' ')) return i + 1\r\n } else\r\n return $.idsAny(s, b, ' ')\r\n}\r\n\r\n// url 编码\r\n$.urlEncode = (a) => {\r\n return a == null ? '' : encodeURIComponent(typeof a === 'object' ? JSON.stringify(a) : a)\r\n}\r\n \r\n// url 解码\r\n$.urlDecode = (a) => {\r\n return a == null ? '' : decodeURIComponent(a.replace(/\\+/g, ' '))\r\n}\r\n// 替换带$变量的url,如 \"a.sp?id=$0\" /@a -> url, b -> array/object\r\n$.urlFormat = (a, ...args) => {\r\n args.forEach((v, i) => v != null && (a = $.strFormat(a, v, true, i < args.length - 1)))\r\n return a\r\n}\r\n$.urlParam = function(a, b) {\r\n var r = a.split('#'),\r\n u = r[0],\r\n h = r[1];\r\n if (typeof b === 'string') {\r\n return b === '#' ? (h || '') : $.urlDecode((u.match(new RegExp('[\\\\?&]' + b + '=([^&]*)'), 'g') || A)[1]);\r\n } else if (b && typeof b === 'object') {\r\n for (var k in b) {\r\n if (k === '#') {\r\n h = b[k];\r\n } else {\r\n var c = $.urlEncode(b[k]),\r\n d = new RegExp('\\\\b' + k + '=[^&]*');\r\n u = d.test(u) ? u.replace(d, k + '=' + c) : u + (u.indexOf('?') < 0 ? '?' : '&') + k + '=' + c;\r\n }\r\n }\r\n } else if (arguments.length === 1) {\r\n var r = {},\r\n c = u.split('?');\r\n c = c[c.length - 1];\r\n\r\n if (c) {\r\n c = c.split('&');\r\n for (var d = 0, e, f, g; d < c.length; d++) {\r\n e = c[d].indexOf('=');\r\n if (e == -1) continue;\r\n f = c[d].substring(0, e);\r\n g = c[d].substring(e + 1);\r\n r[f] = $.urlDecode(g.replace(/\\+/g, ' '));\r\n }\r\n }\r\n return r\r\n }\r\n return u + (h ? '#' + h : '')\r\n}\r\n// 把相对路径url和baseURL拼接为完整地址\r\n$.urlServer = function(src, ...args) {\r\n if (!src) return\r\n if (!(src.startsWith('http://') || src.startsWith('https://'))) {\r\n let b = lodash.get($.x, 'http.baseURL')\r\n if (b) {\r\n src = b + (b.endsWith('/') ? '' : '/') + src\r\n }\r\n }\r\n return $.strFormat(src, ...args)\r\n}\r\n\r\n$.urlComplete = function(a) {\n\tif (a.indexOf('data:') !== 0) {\n\t\ta = $.urlServer(a)\r\n let r = lodash.get($.x, 'http.params')\n\t\tr && (a = $.urlParam(a, r))\n\t}\n\treturn a\n},\r\n\t// @a -> src, b -> options\n$.download = function(a, b) {\r\n a = $.urlComplete(a)\n\tif (br.app) {\n\t\t$.wifiConfirm(function() {\n\t\t\tlet dtask = plus.downloader.createDownload(a, b)\n\t\t\tplus.nativeUI.showWaiting()\n\t\t\tdtask.addEventListener(\"statechanged\", function(task, status) {\n\t\t\t\tswitch (task.state) {\n\t\t\t\t\tcase 1: // 开始\n\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_start)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 4: // 下载完成\n\t\t\t\t\t\tif (status == 200) {\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_complete)\n\t\t\t\t\t\t\tplus.runtime.openFile(task.filename, {}, function(e) {\n\t\t\t\t\t\t\t\tplus.nativeUI.alert($.loc.download_cannotopen)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_fail + status)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplus.nativeUI.closeWaiting()\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t})\n\t\t\tdtask.start()\n\t\t})\n\t} else {\r\n\t\tlet link = document.createElement('a')\r\n //link.download = true\r\n link.href = a\r\n if ($.x.downloadTarget) {\r\n link.target = $.x.downloadTarget\r\n }\r\n link.click()\r\n link.remove()\n\t}\n}\r\n\r\n\n$.wifiConfirm = function(a, b) {\n\t$.x.wifiConfirm && plus.networkinfo.getCurrentType() != 3 ? plus.nativeUI.confirm($.loc.connection_not_wifi, function(e){e.index === 0 && a.call(b)}, {buttons:[$.loc.confirm, $.loc.cancel]}) : a.call(b)\n}\r\n\r\n$.vm = (a) => {\r\n if (!a) return $.docView\r\n if (typeof a === 'string') {\r\n if ($.vueMap.has(a)) {\r\n a = $.vueMap.get(a)\r\n if (a.isView) return a\r\n }\r\n }\r\n a = $(a)\r\n if (a == null) return\r\n return a.isView ? a : a.ownerView\r\n}\r\n\r\n$.close = (a) => {\r\n let d = $.dialog(a)\r\n d && d.close()\r\n}\r\n\r\n$.closePopup = () => {\r\n document.dispatchEvent(new Event('mousedown'))\r\n}\r\n\r\n$.previewVideo = function(src) {\r\n $.vm().previewVideo($.urlServer(src))\n}\n\t// @img -> image array, options -> {current:i,loop:true,indicator: 'number'}\n$.previewImage = function(imgs, options) {\r\n imgs = $.array(imgs).map(v => $.urlServer(v))\n\tif (br.app) {\n\t\tplus.nativeUI.previewImage(imgs, options)\n\t} else {\r\n $.vm().previewImage(imgs, options)\n\t}\n}\r\n\r\n$.slotsChildren = function(slots, name = 'default') {\r\n let r = []\r\n const getChildren = (d) => {\r\n d && d.forEach(v => {\r\n if (typeof v.type === 'symbol') {\r\n Array.isArray(v.children) && getChildren(v.children)\r\n } else\r\n r.push(v)\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n$.hasChild = function(slots, name = 'default') {\r\n let r = false\r\n const getChildren = (d) => {\r\n lodash.forEach(d, v => {\r\n if (typeof v.type === 'symbol') {\r\n Array.isArray(v.children) && getChildren(v.children)\r\n } else {\r\n return !(r = true)\r\n }\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n// @fn(得到0-1的参数), ms -> milliseconds, count -> 帧数\r\n$.ease = function(fn, ms, count) {\n\tfn(0)\n\tif (ms == null)\n\t\tms = 200\n\tif (count == null)\n\t\tcount = Math.ceil(ms / 10)\n\tlet p = Math.ceil(ms / count)\n\tlet\tcr = 0\n\tlet d1 = new Date().getTime()\n\tlet it = setInterval(function() {\n\t\t\tlet d2 = new Date().getTime()\n\t\t\tlet ri = d2 - d1\n\t\t\tlet st = Math.floor(ri / p)\n\t\t\tif (cr != st) {\n\t\t\t\tif (st < count) {\n\t\t\t\t\tfn((- Math.cos((st / count) * Math.PI) / 2) + 0.5)\n\t\t\t\t} else {\n\t\t\t\t\tclearInterval(it)\n\t\t\t\t\tfn(1)\n\t\t\t\t}\n\t\t\t\tcr = st\n\t\t\t}\n\t\t}, Math.max(p - 10, 5))\n\treturn it\n},\r\n\r\n// @a -> widget|HTMLElement, y -> {print: T/F(是否打印), head: \"head标签\", input2text: T/F(把表单值转为文本)\n$.print = function(a, y) {\n\t\tlet d = a.el ? a.el() : (a.$el || a), w = d.ownerDocument, b = $.q('link[media=print]', w), c = [];\r\n y = y || {};\n\t\t$.q('meta', w).each(function() {c.push(this.outerHTML)});\n\t\t(b.length > 0 ? b : $.q('link', w)).each(function() {c.push('<link rel=\"stylesheet\" type=\"text/css\" href=\"' + this.getAttribute('href') + '\"/>');});\n\t\t$.q('style', w).each(function() {c.push(this.outerHTML)});\n\t\tlet s = d.outerHTML;\r\n\t\ts = s.replace(/<div[^>]+w-scroll[^>]+>/gi, function($0) {return $0.replace(/height: \\w+/gi, '');});\n\t\t$.q(':text,:password,textarea,select', d).each(function() {\n\t\t\tlet h = this.outerHTML, v, r;\r\n\t\t\tif (y.input2text) {\n\t\t\t\tlet g = $(this), w = 'auto';\n\t\t\t\tif (g && g.isFormWidget) {\n\t\t\t\t\th = g.el('main').outerHTML;\n\t\t\t\t\tv = g.formText();\n\t\t\t\t} else\n\t\t\t\t\tv = this.value;\n\t\t\t\tv = '<div class=\"f-oh w-input-s\">' + v + '</div>';\n\t\t\t} else {\n\t\t\t\tv = h.replace('value=\"' + this.defaultValue + '\"', () => 'value=\"' + this.value + '\"');\n\t\t\t}\r\n\t\t\ts = s.replace(h, () => v + (r || ''));\n\t\t});\n\t\t$.q(':radio,:checkbox', d).each(function() {\n\t\t\tif (y.input2text) {\n\t\t\t\tlet g = $(this);\n\t\t\t\tif (g && g.isFormWidget) {\n\t\t\t\t\ts = s.replace(g.el().outerHTML, () => g.isChecked ? '<div class=\"f-wdbr\">' + g.text + '</div>' : '');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet h = this.outerHTML, n = h.replace(/ checked=\"\"/, '');\n\t\t\t\tif (this.checked)\n\t\t\t\t\tn = n.replace(/>$/, ' checked>');\n\t\t\t\ts = s.replace(h, n);\n\t\t\t}\n\t\t});\n\t\tif (y.input2text) {\n\t\t\t$.q('input[type=hidden]', d).each(function() {\n\t\t\t\tvar g = $(this);\n\t\t\t\tif (g && g.isFormWidget && g.$options.name != 'w-hidden') {\n\t\t\t\t\ts = s.replace(g.el('main').outerHTML, () => '<div class=\"f-wdbr f-print-input-text\">' + g.formText() + '</div>');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t$.q('.w-input-placeholder', d).each(function() {\n\t\t\ts = s.replace(this.outerHTML, '');\n\t\t});\r\n const printf = function() {\r\n \tlet w = window.frames.wPrintFrame;\r\n \tif (!w) {\r\n \t\t$.q('<div class=f-none><iframe name=wPrintFrame></iframe></div>').appendTo(document.body);\r\n \t\tw = window.frames.wPrintFrame;\r\n \t}\r\n \treturn w;\r\n }\r\n w = y.print !== false ? printf() : window.open();\n\t\td = w.document;\n\t\td.open('text/html', 'replace');\n\t\td.write('<!doctype html><html class=f-print><head><meta charset=utf-8><title>' + $.loc.print_preview +\n\t\t\t'</title><style>.f-print .w-f-remark{height:auto;line-height:inherit}.f-print-input-text{line-height: var(--w-label-min-height);}.w-input{display: flex!important;}.w-input-s{word-break:normal;white-space:normal}.w-input-s:empty:before{content:\"\\xa0\"}</style><script>var $={e:function(){}}</script>' + c.join('') +\n\t\t\t(y.head || '') + '</head><body><div class=x-print>' + s + '</div>' +\n\t\t\t(y.print !== false ? '<script>window.print();window.close()</script>' : '') +\n\t\t\t'</body></html>');\n\t\td.close();\n\t\treturn d;\n\t}\n\r\n\r\nconst queryEncode = function(data, config) {\r\n if (!data || data instanceof FormData) return data\r\n let contentType = $.lodash.get(config, 'headers[\"Content-Type\"]') || $.lodash.get($.x, 'http.headers.post[\"Content-Type\"]')\r\n return contentType == 'application/x-www-form-urlencoded' ? Qs.stringify(data, {arrayFormat: 'repeat'}) : data\r\n}\r\n\r\n$.ajax = function(cmd, args) {\r\n let src = args ? $.urlFormat(cmd.src, args) : cmd.src\r\n if (!src) {\r\n return Promise.reject('$.ajax(): The first parameter must be an object, and the property(src) of the object is required.')\r\n }\r\n let ctx = cmd.context || $.docView\r\n let lock = ctx.ajaxLock\r\n let config = $.lodash.pick(cmd, ['headers', 'responseType'])\r\n if (cmd.download) {\r\n $.extend(config, {responseType: 'blob'})\r\n }\r\n lock && lock()\r\n cmd.loading && ctx.pop('w-loading', cmd.loading)\r\n return (cmd.data ? $.http.post(src, queryEncode(cmd.data, config), config) : $.http.get(src, config))\r\n .then(res => {\r\n lock && lock(false)\r\n let data = res.data\r\n if (cmd.filter) data = cmd.filter(res, ctx)\r\n if (cmd.success) cmd.success(data, ctx)\r\n if (cmd.complete) cmd.complete(res, ctx)\r\n cmd.loading && ctx.pop('w-loading', false)\r\n if (cmd.download) {\r\n let disposition = res.headers['content-disposition']\r\n if (disposition) {\r\n let fileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length))\r\n let blob = new Blob([res.data])\r\n let link = document.createElement('a')\r\n link.href = URL.createObjectURL(blob)\r\n link.download = fileName\r\n link.click()\r\n link.remove()\r\n } else {\r\n console.error('download: none content-disposition')\r\n }\r\n }\r\n return Promise.resolve(data)\r\n }).catch(ex => {\r\n lock && lock(false)\r\n if (cmd.error) cmd.error(ex, ctx)\r\n if (cmd.complete) cmd.complete(ex.response, ctx, ex)\r\n cmd.loading && ctx.exec({type: 'Loading'}, null, cmd.loading)\r\n return Promise.reject(ex)\r\n })\r\n}\r\n\r\n$.extend($.ajax, {\r\n get(src, config) {\r\n return $.http.get(src, config).then(res => new Promise(resolve => resolve(res.data)))\r\n },\r\n post(src, data, config) {\r\n return $.http.post(src, queryEncode(data, config), config).then(res => new Promise(resolve => resolve(res.data)))\r\n }\r\n}, http)\r\n\r\n$.alert = function(text, position, timeout, yes) {\r\n $.docView.pop('w-alert', typeof text === 'object' ? {title: '操作提示', ...text} : {\r\n title: '操作提示', text, position, timeout, yes\r\n })\r\n}\r\n\r\n$.confirm = function(text, yes, no, cover) {\r\n $.docView.pop('w-confirm', typeof text === 'object' ? {title: '操作提示', ...text} : {\r\n title: '操作提示', text, yes, no, cover\r\n })\r\n}\r\n\r\n$.dialog = (a) => {\r\n if (!a) return\r\n a = $.vm(a)\r\n while (a && !a.isDialog) a = a.ownerView\r\n return a\r\n}\r\n\r\n$.config = function(opt) {\r\n $.config_uid = uid() //读取默认配置的地方有缓存,根据这个uid来判断是否刷新缓存\r\n $.mergeDeep($.x, opt)\r\n if (opt.http) {\r\n $.mergeDeep(http.defaults, opt.http)\r\n http.interceptors.response.use(\r\n opt.http.filter,\r\n opt.http.error || function(ex) {\r\n if (ex.response) {\r\n ex.callback = () => $.alert((ex.response.status) + ': ' + ex.config.url)\r\n }\r\n return Promise.reject(ex)\r\n }\r\n )\r\n }\r\n const _dfopt = $.x.defaultOptions\r\n const _dfcls = {}\r\n for (let k in _dfopt) {\r\n if (k.includes('.')) {\r\n let a = $.strFrom(k, '.').replace(/\\./g, ' ')\r\n let b = $.strTo(k, '.');\r\n ($.dfclsCache[b] || ($.dfclsCache[b] = {}))[a] = _dfopt[k]\r\n }\r\n }\r\n}\r\n\r\nwindow.addEventListener('unhandledrejection', (event) => {\r\n if ($.x.catchReject) {\r\n $.x.catchReject(event)\r\n } else {\r\n if (event.reason) {\r\n if (event.reason.callback)\r\n event.reason.callback()\r\n else if (typeof event.reason === 'string')\r\n console.error(event.reason)\r\n }\r\n event.preventDefault()\r\n }\r\n})\r\n\r\nexport default $\r\n","// 实现指令 v-form-ignore=\"true\"\r\n// 不提交不验证当前范围内的表单\r\n\r\nfunction formIgnore(el, bind) {\r\n bind.value ? el.setAttribute('w-form-ignore', '') : el.removeAttribute('w-form-ignore')\r\n}\r\n\r\nexport default {\r\n created: formIgnore,\r\n updated: formIgnore,\r\n}\n","// 实现指令 v-dialog-move=\"true\"\r\n// 使对话框可拖动\r\n\r\nimport $ from '../dfish.js'\r\n\r\nfunction onmousedown(e) {\r\n let o = $.dialog(e.currentTarget)\r\n if (o) {\r\n if (o.x.movable !== false && !o.x.fullScreen) {\r\n let d = o.el()\r\n let sl = d.style.left\r\n let sr = d.style.right\r\n let st = d.style.top\r\n let sb = d.style.bottom\r\n let b = sb ? -1 : 1\r\n let r = sr ? -1 : 1\r\n let v = b < 0 ? 'bottom' : 'top'\r\n let h = r < 0 ? 'right' : 'left'\r\n let x = e.clientX\r\n let y = e.clientY\r\n let t = $.number(b < 0 ? sb : st)\r\n let l = $.number(r < 0 ? sr : sl)\r\n let m\r\n let n = document.documentElement.clientHeight\r\n let w = document.documentElement.clientWidth\r\n $.moveup(function(e) {\r\n !m && (m = $.q('<div class=w-dialog-move-helper></div>').appendTo(document.body))\r\n let cx = $.numRange(e.clientX, 0, w)\r\n let cy = $.numRange(e.clientY, 0, n)\r\n o.setPosition({[v]: (t + b * (cy - y)) + 'px', [h]: (l + r * (cx - x)) + 'px'})\r\n }, function(e, moved) {\r\n moved && m && m.remove()\r\n }, e)\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n mounted(el, bind) {\r\n bind.value && el.addEventListener('mousedown', onmousedown)\r\n },\r\n unmounted(el) {\r\n el.removeEventListener('mousedown', onmousedown)\r\n }\r\n}","// 实现指令 v-label-width=\"100\"\r\n// 设定\r\nimport $ from '../dfish.js'\r\n\r\nfunction labelWidth(el, bind) {\r\n el.style.setProperty('--v-label-width', $.unitSize(bind.value))\r\n}\r\n\r\nexport default {\r\n created: labelWidth,\r\n updated: labelWidth,\r\n}\n","import formIgnore from './form-ignore.js'\r\nimport dialogMove from './dialog-move.js'\r\nimport labelWidth from './label-width.js'\r\n\r\nexport default function(Vue) {\r\n Vue.directive('form-ignore', formIgnore)\r\n Vue.directive('dialog-move', dialogMove)\r\n Vue.directive('label-width', labelWidth)\r\n}","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps,\r\n } from 'vue'\r\n\r\n const bindCache = {}\r\n\r\n export default {\r\n props: ['data', 'width', 'height', 'colspan', 'rowspan', 'ownproperty', 'orientUid'],\r\n data() {\r\n return {\r\n isWidget: true,\r\n uid: this.orientUid || $.uid(),\r\n runtimeX: {},\r\n events: null,\r\n }\r\n },\r\n created() {\r\n $.vueMap.set(this.uid, this)\r\n let dftX = this.getDefaultProp()\r\n let cuid = $.config_uid\r\n let watchs = {}\r\n this.x = new Proxy(this.runtimeX, {\r\n get: (obj, prop) => {\r\n if (prop in obj) return obj[prop]\r\n if (this.$props[prop] !== undefined) return this.$props[prop]\r\n if (cuid != $.config_uid) {\r\n cuid = $.config_uid\r\n dftX = this.getDefaultProp()\r\n }\r\n return dftX[prop]\r\n },\r\n set: (obj, prop, newval) => {\r\n if (!watchs[prop]) {\r\n watchs[prop] = this.$watch(prop, (v) => obj[prop] = v)\r\n }\r\n obj[prop] = newval\r\n return true\r\n }\r\n })\r\n },\r\n unmounted() {\r\n $.vueMap.delete(this.uid)\r\n },\r\n methods: {\r\n x_default() {\r\n //implement\r\n },\r\n getDefaultProp() {\r\n let dftopt\r\n if (!this.ownproperty) {\r\n let b = this.$options.name\r\n dftopt = $.x.defaultOptions[b]\r\n if ($.dfclsCache[b]) {\r\n let c = this.$options.name + (this.$attrs.class ? ' ' + this.$attrs.class : '')\r\n let d = $.dfclsCache[b]\r\n let z\r\n for (let k in d) {\r\n $.idsAll(c, k, ' ') && $.mergeDeep(z || (z = {}), d[k])\r\n }\r\n z && (dftopt = $.extendDeep(z, dftopt))\r\n }\r\n }\r\n return {\r\n ...this.x_default(),\r\n ...dftopt,\r\n }\r\n },\r\n\t\t\tajax(cmd) {\r\n\t\t\t\tcmd.context = cmd.context || this\r\n\t\t\t\treturn $.ajax(cmd)\r\n\t\t\t},\r\n\t\t\tsubmit(cmd) {\r\n\t\t\t\tconst vm = $.vm(this)\r\n\t\t\t\treturn new Promise(rsv => this.$nextTick(() => {\r\n\t\t\t\t let d = cmd.validate || false\r\n\t\t\t\t let f = vm.getFormList(d.range || cmd.range)\r\n\t\t\t\t let g = d.range && d.range != cmd.range ? vm.getFormList(cmd.range) : f\r\n\t\t\t\t if (vm.valid(f, d.group)) {\r\n\t\t\t\t let post = vm.getPostData(g)\r\n\t\t\t\t cmd.data = cmd.data ? $.extend(cmd.data, post) : post\r\n\t\t\t\t this.ajax(cmd).then(data => rsv(data))\r\n\t\t\t\t }\r\n\t\t\t\t}))\r\n\t\t\t},\r\n\t\t\tpop(template, props) {\r\n\t\t\t\tlet vm = $.vm(this)\r\n\t\t\t\tif (props === false) {\r\n\t\t\t\t\tvm.getPops(template).forEach(p => vm.removePop(p))\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet npr = $.extendDeep({}, props)\r\n\t\t\t\t\treturn vm.createPop(template, npr, this)\r\n\t\t\t\t}\r\n\t\t\t},\r\n trigger(ev, ...args) {\r\n let type = ev.runType || ev.type || ev\r\n let f = this.getOn(type)\r\n if (f) {\r\n if (typeof ev === 'string') {\r\n ev = {type, uid: this.uid}\r\n }\r\n if (Array.isArray(f)) f.forEach(n => n(ev, ...args))\r\n else f(ev, ...args)\r\n }\r\n this.events && this.events.fireEvent(type)\r\n },\r\n addEvent(type, fn, once) {\r\n if (!this.events) this.events = new $.EventListener(this)\r\n this.events.addEvent(type, fn, once)\r\n },\r\n fireEvent(type, args) {\r\n return this.events && this.events.fireEvent(type, args)\r\n },\r\n removeEvent(type, fn) {\r\n this.events && this.events.removeEvent(type, fn)\r\n },\r\n getOn(type) {\r\n let n = 'on' + type.charAt(0).toUpperCase() + type.slice(1)\r\n return (this.$.vnode.props && this.$.vnode.props[n]) || this.x[n]\r\n },\r\n getKey() {\r\n return this.$.vnode.key\r\n },\r\n closest(a) {\r\n let p = this\r\n let b = typeof a\r\n do {\r\n if (b === 'string') {\r\n if ($.idsAny(a, p.$options.name))\r\n return p\r\n } else if (b === 'function') {\r\n if (a(p))\r\n return p\r\n }\r\n } while (p = p.$parent)\r\n },\r\n query(sel) {\r\n if (this.el()) {\r\n let o = $.q(sel, this.el())[0]\r\n return o && $(o)\r\n }\r\n },\r\n contains(a) {\r\n return a && this.el().contains(a.isWidget ? a.el() : a)\r\n },\r\n el(a) {\r\n return a && /\\W/.test(a) ? $.q(a, this.el())[0] : document.getElementById(this.uid + (a || ''))\r\n },\r\n next() {\r\n const e = this.el().nextElementSibling\r\n return e && $(e)\r\n },\r\n prev() {\r\n const e = this.el().previousElementSibling\r\n return e && $(e)\r\n },\r\n createEvent(name, data) {\r\n let e = new CustomEvent(name)\r\n e.value = data\r\n e.uid = this.uid\r\n return e\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n scrollIntoView(opt = false) {\r\n const next = (dir, fn) => {\r\n let c = 'scroll' + dir.toUpperCase()\r\n let t = this.closest(p => p.x && p.x[c] && (p.scrollState() || false)[dir])\r\n if (t) {\r\n t.scrollTo(this, opt.y || 'auto', opt.x || 'auto', opt.ease == null ? 200 : opt.ease, opt.divide, fn)\r\n } else\r\n fn && fn()\r\n }\r\n next('y', () => next('x', opt.success))\r\n },\r\n hasBubble(a) {\r\n if (!a) return false\r\n if (this.contains(a)) return true\r\n let d = $.dialog(a)\r\n if (d && d.commander) return this.hasBubble(d.commander)\r\n },\r\n bind(name, fn) {\r\n let c = bindCache[this.uid] || (bindCache[this.uid] = {})\r\n if (!c[name]) c[name] = fn || this[name]\r\n return c[name]\r\n },\r\n slots_children(name) {\r\n return $.slotsChildren(this.$slots, name)\r\n },\r\n html_icon(src, cls, onclick) {\r\n let font = src.startsWith('.') && !src.includes('/')\r\n return font ? h('i', {\r\n class: [cls, src.replace(/\\./g, '')],\r\n onclick,\r\n }) : h('img', {\r\n src,\r\n onclick,\r\n class: cls\r\n })\r\n },\r\n slot(name = 'default') {\r\n return this.$slots[name] ? this.$slots[name]() : []\r\n },\r\n html_slots() {\r\n return this.$slots\r\n },\r\n html_self(a) {\r\n return h(this.tagName || 'div', a ? mergeProps(this.html_attrs, this.html_props, this.$attrs) : mergeProps(this\r\n .html_attrs, this.html_props), this.html_slots())\r\n },\r\n html() {\r\n return this.html_self()\r\n }\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n ownerView() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n pubParent() {\r\n return this.providePubParent && $.idsAny(this.$options.pubParentName, this.providePubParent.$options.name) &&\r\n this.providePubParent\r\n },\r\n parentNode() {\r\n return $(this.el().parentElement)\r\n },\r\n tagName() {\r\n return 'div'\r\n },\r\n html_attrs() {\r\n return {\r\n id: this.uid,\r\n class: [this.$options.name, this.html_class],\r\n style: [{\r\n width: this.x.width && $.unitSize(this.x.width),\r\n height: this.x.height && $.unitSize(this.x.height),\r\n '--w-grid-colspan': !this.x.colspan || this.x.colspan == -1 ? null : `span ${this.x.colspan}`,\r\n '--w-grid-rowspan': !this.x.rowspan || this.x.rowspan == -1 ? null : `span ${this.x.rowspan}`,\r\n }, this.html_style],\r\n 'w-key': this.getKey(),\r\n 'w-width': this.x.width === '*' ? '*' : null,\r\n 'w-height': this.x.height === '*' ? '*' : null,\r\n }\r\n },\r\n html_style() {\r\n // implements\r\n },\r\n html_class() {\r\n // implements\r\n },\r\n html_props() {\r\n // implements\r\n },\r\n html_binds() {\r\n return mergeProps(this.html_attrs, this.html_props, this.$attrs)\r\n }\r\n },\r\n render() {\r\n return this.html()\r\n }\r\n }\r\n</script>\n","import script from \"./WidgetAbs.vue?vue&type=script&lang=js\"\nexport * from \"./WidgetAbs.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['src', 'children'],\r\n data() {\r\n return {\r\n loading: false,\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n getSrc() {\r\n return (this.x || this.$props).src\r\n },\r\n request(fn) {\r\n let src = this.getSrc()\r\n if (src && !this.loading) {\r\n this.showLoading(true)\r\n if (typeof src === 'function') {\r\n src(this).then(res => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n fn && fn()\r\n }).catch(ex => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n })\r\n }\r\n }\r\n },\r\n showLoading(a) {\r\n this.loading = a\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./SrcParent.vue?vue&type=script&lang=js\"\nexport * from \"./SrcParent.vue?vue&type=script&lang=js\"\n\nexport default script","<template>\r\n <w-alert>\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-dialog-move>\r\n <div class=\"w-alert-move\" w-width=\"*\">\r\n <div class=\"w-alert-title\" v-if=\"title\">{{title}}</div>\r\n </div>\r\n </w-dialog-move>\r\n <i class=\"w-alert-close f-i f-i-close\" @click=\"close\"></i>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot>\r\n <div w-width=\"*\" class=\"w-alert-text\" v-html=\"text\"></div>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar v-if=\"showButton!==false\" :class=\"['w-alert-buttonbar', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\" :ownproperty=\"true\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-alert>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n const icons = {\r\n info: '.f-i .f-i-alert-info',\r\n warning: '.f-i .f-i-alert-warning',\r\n success: '.f-i .f-i-alert-success',\r\n question: '.f-i .f-i-alert-question',\r\n error: '.f-i .f-i-alert-error'\r\n }\r\n\r\n export default {\r\n props: ['text', 'title', 'icon', 'showButton'],\r\n data() {\r\n return {\r\n defaultIconType: 'info'\r\n }\r\n },\r\n methods: {\r\n save(e) {\r\n $.dialog(e).cueYes()\r\n },\r\n close(e) {\r\n $.close(e)\r\n }\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n typeIcon() {\r\n return icons[this.icon] || this.icon || icons[this.defaultIconType]\r\n }\r\n },\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import { render } from \"./TemplateAlert.vue?vue&type=template&id=291bdc3e\"\nimport script from \"./TemplateAlert.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateAlert.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\r\n <w-confirm>\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-dialog-move>\r\n <div class=\"w-alert-move\" w-width=\"*\"><div class=\"w-alert-title\" v-if=\"title\">{{title}}</div></div>\r\n </w-dialog-move>\r\n <i class=\"w-alert-close f-i f-i-close\" @click=\"cancel\"></i>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\" valign=\"middle\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot>\r\n <div w-width=\"*\" class=\"w-alert-text\" v-html=\"text\"></div>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar :class=\"['w-alert-buttonbar', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\"\r\n :ownproperty=\"true\"/>\r\n <w-button class=\"w-alert-button\" text=\"取消\" @click=\"cancel\" :ownproperty=\"true\"/>\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-confirm>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import TemplateAlert from './TemplateAlert.vue'\r\n \r\n export default {\r\n mixins: [TemplateAlert],\r\n data() {\r\n return {\r\n defaultIconType: 'question'\r\n }\r\n },\r\n methods: {\r\n save(e) {\r\n $.dialog(e).cueYes()\r\n },\r\n cancel(e) {\r\n $.dialog(e).cueNo()\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import { render } from \"./TemplateConfirm.vue?vue&type=template&id=2a9563f5\"\nimport script from \"./TemplateConfirm.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateConfirm.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\r\n <w-tip>\r\n <div class=\"w-tip-body f-flex-center\">\r\n <div class=\"w-tip-text\"><slot>{{text}}</slot></div>\r\n </div>\r\n </w-tip>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n \r\n export default {\r\n props: ['text'],\r\n methods: {\r\n\r\n },\r\n computed: {\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import { render } from \"./TemplateTip.vue?vue&type=template&id=e9652ce4\"\nimport script from \"./TemplateTip.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateTip.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\r\n <w-loading />\r\n</template>\r\n\r\n","import { render } from \"./TemplateLoading.vue?vue&type=template&id=1e19074e\"\nconst script = {}\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h, toRaw, Teleport} from 'vue'\r\n import TemplateAlert from '../template/TemplateAlert.vue'\r\n import TemplateConfirm from '../template/TemplateConfirm.vue'\r\n import TemplateTip from '../template/TemplateTip.vue'\r\n import TemplateLoading from '../template/TemplateLoading.vue'\r\n\r\n const templateHooks = {\r\n 'w-alert': TemplateAlert,\r\n 'w-confirm': TemplateConfirm,\r\n 'w-tip': TemplateTip,\r\n 'w-loading': TemplateLoading\r\n }\r\n \r\n export default {\r\n name: 'w-pop',\r\n props: ['p'],\r\n render() {\r\n let t = this.p.template\r\n let com = toRaw(typeof t === 'string' ? templateHooks[t] : t)\r\n return com && h(com, this.p.props)\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","import script from \"./Pop.vue?vue&type=script&lang=js\"\nexport * from \"./Pop.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import WidgetAbs from './WidgetAbs.vue'\r\n \r\n export default {\r\n mixins: [WidgetAbs],\r\n inject: ['provideView']\r\n }\n</script>\n\n","import script from \"./WidgetBase.vue?vue&type=script&lang=js\"\nexport * from \"./WidgetBase.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n const onScroll = function(e) {\r\n if (this.wScrollPercentX) {\r\n let left = e.target.scrollLeft\r\n this.scrollXPosition = left == 0 ? 'left' : left >= this.wScrollSizeX ? 'right' : 'center'\r\n this.$refs.wScrollBarThumbX.style.transform = `translateX(${left/this.wScrollPercentX}px)`\r\n }\r\n if (this.wScrollPercentY) {\r\n let top = e.target.scrollTop\r\n this.scrollYPosition = top == 0 ? 'top' : top >= this.wScrollSizeY ? 'bottom' : 'middle'\r\n this.$refs.wScrollBarThumbY.style.transform = `translateY(${top/this.wScrollPercentY}px)`\r\n }\r\n this.onScroll(e)\r\n }\r\n\r\n const onMousedown = function(dnEv) {\r\n let dir, dnX, dnY, scrLeft, scrTop;\r\n let ov = this.$refs.wScrollOverflow\r\n let x = this.wScrollPercentX\r\n let y = this.wScrollPercentY\r\n $.moveup((mvEv) => {\r\n if (!dir) {\r\n dir = this.$refs.wScrollBarThumbX === dnEv.target ? 'X' : 'Y'\r\n dnX = dnEv.clientX\r\n dnY = dnEv.clientY\r\n scrLeft = ov.scrollLeft\r\n scrTop = ov.scrollTop\r\n dnEv.target.parentNode.classList.add('z-drag')\r\n }\r\n if (dir === 'X') {\r\n ov.scrollLeft = scrLeft + ((mvEv.clientX - dnX) * x)\r\n } else {\r\n ov.scrollTop = scrTop + ((mvEv.clientY - dnY) * y)\r\n }\r\n }, (upEv, moved) => {\r\n if (moved)\r\n dnEv.target.parentNode.classList.remove('z-drag')\r\n }, dnEv)\r\n }\r\n\r\n export default {\r\n mixins: [WidgetBase],\r\n props: ['scrollX', 'scrollY', 'scrollView', 'scrollFlex'],\r\n data() {\r\n return {\r\n wScrollPercentX: false,\r\n wScrollPercentY: false,\r\n wScrollSizeX: false,\r\n wScrollSizeY: false,\r\n scrollXPosition: 'left',\r\n scrollYPosition: 'top',\r\n isDeactivated: false,\r\n }\r\n },\r\n watch: {\r\n scrollXPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n scrollYPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n wScrollPercentX(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-x', '') : el.removeAttribute('w-scroll-show-x')\r\n }\r\n },\r\n wScrollPercentY(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-y', '') : el.removeAttribute('w-scroll-show-y')\r\n }\r\n }\r\n },\r\n methods: {\r\n onScroll(e) {\r\n //implement\r\n },\r\n onScrollPosition() {\r\n //implement\r\n },\r\n onScrollAttributeChange(e) {\r\n //implement\r\n },\r\n // 让元素滚动到可见区域。支持下面两种调用方式 /e -> el|wg, y -> (top,bottom,middle,auto,top+n,bottom+n,n), x -> (left,right,center,auto), p -> ease?, q -> divide(整除数字,让滚动的距离是这个数字的整数倍), r -> callback\r\n scrollTo(e, y, x, p, q, r) {\r\n let a = this.ovf()\r\n if (!a) return r && r()\r\n let b = this.$refs.wScrollCont || a\r\n let c = $.bcr(a)\r\n let d = $.bcr(b)\r\n let f = e ? $.bcr(e) : d\r\n let t, l\r\n if (y != null || e) {\r\n if (y == null || !isNaN(y)) {\r\n t = $.number(y)\r\n if (e) t = f.top - d.top - t\r\n } else if (~y.indexOf('top')) {\r\n t = f.top - d.top - (+y.slice(3))\r\n } else if (~y.indexOf('bottom')) {\r\n t = f.bottom - d.top - c.height + (+y.slice(6))\r\n } else if (y === 'middle') {\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n } else if (y === 'nearest') {\r\n if (f.top < c.top)\r\n t = a.scrollTop - c.top + f.top\r\n else if (f.bottom > c.bottom)\r\n t = a.scrollTop + f.bottom - c.bottom\r\n } else {\r\n if (f.top < c.top || f.bottom > c.bottom)\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n }\r\n }\r\n if (x != null || e) {\r\n if (x == null || !isNaN(x)) {\r\n l = $.number(x)\r\n if (e) l = f.left - d.left - l\r\n } else if (~x.indexOf('left')) {\r\n l = f.left - d.left - (+x.slice(4))\r\n } else if (~x.indexOf('right')) {\r\n l = f.right - d.left - c.width + (+x.slice(5))\r\n } else if (x === 'center') {\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n } else if (x === 'nearest') {\r\n if (f.left < c.left)\r\n l = a.scrollLeft - c.left + f.left\r\n else if (f.right > c.right)\r\n l = a.scrollLeft + f.right - c.right\r\n } else {\r\n if (f.left < c.left || f.right > c.right)\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n }\r\n }\r\n if (q != null) {\r\n t != null && (t = t - (t % q))\r\n l != null && (l = l - (l % q))\r\n }\r\n if (p && (t != null || l != null)) {\r\n let g = a.scrollTop\r\n let h = a.scrollLeft\r\n $.ease((i) => {\r\n if (t != null) a.scrollTop = g + (t - g) * i\r\n if (l != null) a.scrollLeft = h + (l - h) * i\r\n i === 1 && r && r()\r\n }, p)\r\n } else {\r\n if (t != null) a.scrollTop = t\r\n if (l != null) a.scrollLeft = l\r\n r && r()\r\n }\r\n },\r\n //@public /@ e -> el, y -> (top,bottom,middle), p -> ease?, q -> divide, r -> callback\r\n scrollToY(e, y, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollTop\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = y, y = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, y, null, p, q, r)\r\n },\r\n //@public /@ e -> el, x -> (left,right,center), p -> ease?, q -> divide, r -> callback\r\n scrollToX(e, x, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollLeft\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = x, x = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, null, x, p, q, r)\r\n },\r\n ovf() {\r\n return $.br.mobile ? this.el() : this.$refs.wScrollOverflow || this.$refs.wScrollCont\r\n },\r\n html_scroll_slots(s) {\r\n return this.x.scrollX || this.x.scrollY ? [h('div', {\r\n ref: \"wScrollOverflow\",\r\n class: \"w-scroll-overflow\",\r\n onscroll: onScroll.bind(this),\r\n onmouseenter: this.initScroll\r\n }, h('div', {\r\n class: 'w-scroll-cont',\r\n style: this.html_scroll_cont_style,\r\n ref: \"wScrollCont\"\r\n }, s || (this.$slots.default && this.$slots.default()))),\r\n !$.br.mobile && this.x.scrollX && [h('div', {\r\n class: \"w-scrollbar-x\",\r\n ref: \"wScrollBarX\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbX\"\r\n }))],\r\n !$.br.mobile && this.x.scrollY && [h('div', {\r\n class: \"w-scrollbar-y\",\r\n ref: \"wScrollBarY\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbY\"\r\n }))]\r\n ] : (s || (this.$slots.default && this.$slots.default()))\r\n\r\n },\r\n scrollState() {\r\n if ($.br.mobile || !this.$refs.wScrollCont || !this.el()) return\r\n const flow = this.$refs.wScrollOverflow.getBoundingClientRect()\r\n const cont = this.$refs.wScrollCont.getBoundingClientRect()\r\n let x, y;\r\n if (this.x.scrollX) {\r\n let size = cont.width > flow.width && cont.width - flow.width\r\n if (size && size <= 1) size = false //@fixme 横向滚动时,width:fit-content的设置会让有小数点的宽度变成整数。目前先加一个像素容错\r\n if (size) {\r\n x = {\r\n size,\r\n percent: flow.width / cont.width\r\n }\r\n }\r\n }\r\n if (this.x.scrollY) {\r\n let size = cont.height > flow.height && cont.height - flow.height\r\n if (size) {\r\n y = {\r\n size,\r\n percent: flow.height / cont.height\r\n }\r\n }\r\n }\r\n return {x, y}\r\n },\r\n initScroll() {\r\n const state = this.scrollState()\r\n if (!state) return\r\n const wrap = this.el().getBoundingClientRect()\r\n const {x, y} = state\r\n if (x) {\r\n let thbX = x.percent * wrap.width\r\n this.$refs.wScrollBarThumbX.style.width = Math.max(20, thbX) + 'px'\r\n this.wScrollSizeX = x.size\r\n this.wScrollPercentX = x.size && (x.size / ((1 - x.percent) * (wrap.width - (thbX < 20 ? 20 - thbX : 0))))\r\n } else {\r\n this.wScrollSizeX = this.wScrollPercentX = false\r\n }\r\n if (y) {\r\n let thbY = y.percent * wrap.height\r\n this.$refs.wScrollBarThumbY.style.height = Math.max(20, thbY) + 'px'\r\n this.wScrollSizeY = y.size\r\n this.wScrollPercentY = y.size && (y.size / ((1 - y.percent) * (wrap.height - (thbY < 20 ? 20 - thbY : 0))))\r\n } else {\r\n this.wScrollSizeY = this.wScrollPercentY = false\r\n }\r\n },\r\n scroll_observe() {\r\n if (this.isDeactivated) return\r\n this.initScroll()\r\n this.$refs.wScrollOverflow && this.$refs.wScrollOverflow.dispatchEvent(new Event('scroll'))\r\n }\r\n },\r\n computed: {\r\n html_scroll_cont_style() {\r\n // implement\r\n },\r\n html_scroll_class() {\r\n let sx = this.x.scrollX\r\n let sy = this.x.scrollY\r\n return {\r\n 'w-scroll': sx || sy,\r\n 'w-scroll-x': sx,\r\n 'w-scroll-y': sy,\r\n 'w-scroll-flex': this.x.scrollFlex,\r\n }\r\n },\r\n\r\n },\r\n mounted() {\r\n if (this.x.scrollView && this.el()) {\r\n setTimeout(() => {\r\n let el = this.el().querySelector(this.x.scrollView)\r\n el && this.scrollToY(el, 'middle')\r\n })\r\n }\r\n //在PC端生成滚动条。移动端不生成\r\n if ($.br.mobile || !(this.x.scrollX || this.x.scrollY)) return\r\n this.$refs.wScrollOverflow && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollOverflow)\r\n this.$refs.wScrollCont && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollCont)\r\n this.el() && new MutationObserver(this.onScrollAttributeChange).observe(this.el(), {attributes: true})\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n //router切回来时,让滚动条滚动到切出去之前的位置\r\n if (this.x.scrollY && this.$refs.wScrollBarThumbY) {\r\n this.scrollToY($.number(this.$refs.wScrollBarThumbY.style.transform) * this.wScrollPercentY)\r\n }\r\n if (this.x.scrollX && this.$refs.wScrollBarThumbX) {\r\n this.scrollToX($.number(this.$refs.wScrollBarThumbX.style.transform) * this.wScrollPercentX)\r\n }\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-scroll {\r\n position: relative;\r\n display: flex;\r\n }\r\n\r\n .w-scroll-overflow {\r\n flex: 1;\r\n box-sizing: border-box;\r\n scrollbar-width: none;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow {\r\n overflow-x: auto;\r\n }\r\n\r\n .w-scroll-y>.w-scroll-overflow {\r\n overflow-y: auto;\r\n }\r\n\r\n .w-scroll-flex>.w-scroll-overflow {\r\n display: flex;\r\n }\r\n\r\n .w-scroll-cont {\r\n min-width: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow>.w-scroll-cont {\r\n width: fit-content;\r\n }\r\n\r\n .w-scroll-overflow::-webkit-scrollbar {\r\n width: 0;\r\n height: 0;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n background-color: rgba(200, 200, 200, .9);\r\n }\r\n\r\n .w-scrollbar-thumb:hover {\r\n background-color: rgba(180, 180, 180, 1);\r\n }\r\n\r\n .w-scroll-x:hover>.w-scrollbar-x,\r\n .w-scroll-x.z-hv>.w-scrollbar-x,\r\n .w-scroll-y:hover>.w-scrollbar-y,\r\n .w-scroll-y.z-hv>.w-scrollbar-y,\r\n .w-scrollbar-x.z-drag,\r\n .w-scrollbar-y.z-drag {\r\n visibility: visible;\r\n }\r\n\r\n .w-scroll[w-scroll-show-x]>.w-scrollbar-x,\r\n .w-scroll[w-scroll-show-y]>.w-scrollbar-y {\r\n display: block;\r\n }\r\n\r\n .w-scrollbar-x {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n height: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-y {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n position: absolute;\r\n transition-property: top, left;\r\n transition-duration: .1s;\r\n }\r\n\r\n .w-scrollbar-x>.w-scrollbar-thumb {\r\n top: 4px;\r\n bottom: 0;\r\n min-width: 20px;\r\n }\r\n\r\n\r\n .w-scrollbar-y>.w-scrollbar-thumb {\r\n left: 4px;\r\n right: 0;\r\n min-height: 20px;\r\n }\r\n\r\n .w-scrollbar-x:hover>.w-scrollbar-thumb {\r\n top: 0;\r\n }\r\n\r\n .w-scrollbar-y:hover>.w-scrollbar-thumb {\r\n left: 0;\r\n }\r\n</style>\n","import script from \"./Scroll.vue?vue&type=script&lang=js\"\nexport * from \"./Scroll.vue?vue&type=script&lang=js\"\n\nimport \"./Scroll.vue?vue&type=style&index=0&id=54b981aa&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['align', 'valign', 'gap'],\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n html_align_class() {\r\n return [\r\n this.x.align && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-align-' + this.x.align,\r\n this.x.valign && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-valign-' + this.x.valign\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./AlignParent.vue?vue&type=script&lang=js\"\nexport * from \"./AlignParent.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Scroll from './Scroll.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-horizontal',\r\n mixins: [Scroll, AlignParent],\r\n props: ['br'],\r\n provide() {\r\n return {\r\n provideLayout: this.$options.name\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0\r\n }\r\n },\r\n html_slots() {\r\n return this.html_scroll_slots()\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n html_props() {\r\n let gap = this.x.gap\r\n return {\r\n class: [this.html_scroll_class, this.html_align_class, {'z-br': this.x.br, [`f-${this.dir}-gap`]: gap != null && gap != '' && ($.br.compat.gap || gap < 0)}],\r\n style: !this.x.scrollX && !this.x.scrollY && this.html_scroll_cont_style,\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let gap = this.x.gap\r\n if (gap != null && gap != '') {\r\n return {\r\n 'gap': $.unitSize(gap, true),\r\n '--w-compat-gap': ($.br.compat.gap || gap < 0) ? $.unitSize(gap, true) : null,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Horizontal.vue?vue&type=script&lang=js\"\nexport * from \"./Horizontal.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-vertical',\r\n mixins: [Horizontal],\r\n computed: {\r\n dir() {\r\n return 'v'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n","import script from \"./Vertical.vue?vue&type=script&lang=js\"\nexport * from \"./Vertical.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-img',\r\n pubParentName: 'w-album',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['src', 'text', 'square', 'imgWidth', 'imgHeight', 'dataUrl', 'vertical', 'disabled'],\r\n data() {\r\n return {\r\n hover: false\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n vertical: true,\r\n }\r\n },\r\n onerror(e) {\r\n if (this.dataUrl) e.target.src = this.dataUrl\r\n },\r\n html_slots() {\r\n let src = this.x.src\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n let svg = src && src.startsWith('#')\r\n let cont = this.$slots.default || (this.x.text ? {\r\n default: () => this.x.text\r\n } : null)\r\n src = src || this.dataUrl\r\n return [\r\n src && h('div', {\r\n class: 'w-img-gut',\r\n }, [font ? h('i', {\r\n class: 'w-img-icon ' + src.replace(/\\./g, '')\r\n }) :\r\n svg ? h('svg', {\r\n class: 'f-svg ' + src.slice(1)\r\n }, h('use', {\r\n 'xlink:href': src,\r\n })) :\r\n h('img', {\r\n ref: 'img',\r\n src: src,\r\n class: 'w-img-icon',\r\n onerror: this.onerror,\r\n }),\r\n this.$slots.cover && h('div', {\r\n class: 'w-img-cover f-abs-full'\r\n }, this.$slots.cover())\r\n ]),\r\n cont && h(Vertical, {\r\n class: 'w-img-description'\r\n }, cont)\r\n ]\r\n }\r\n },\r\n computed: {\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let w = $.unitSize(this.x.imgWidth ? this.x.imgWidth : this.x.width)\r\n let h = $.unitSize(this.x.imgHeight ? this.x.imgHeight : this.x.height)\r\n return {\r\n class: {\r\n 'z-hv': this.hover,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled,\r\n 'z-square': this.x.square,\r\n 'z-canplay': this.x.canPlay,\r\n 'z-vertical': this.x.vertical,\r\n [`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap,\r\n },\r\n style: {\r\n '--w-img-icon-width': w,\r\n '--w-img-icon-height': h,\r\n },\r\n onmouseenter: e => !this.x.disabled && (this.hover = true),\r\n onmouseleave: e => !this.x.disabled && (this.hover = false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-img {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-img.z-vertical {\r\n flex-direction: column;\r\n --w-compat-gap: 7px;\r\n }\r\n\r\n .w-img-gut {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-img-gut img {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--w-img-icon-width, 100%);\r\n height: var(--w-img-icon-height);\r\n }\r\n \r\n .w-img .f-svg {\r\n width: var(--w-img-icon-width, 18px);\r\n height: var(--w-img-icon-height, 18px) ;\r\n }\r\n\r\n .w-img.z-square .w-img-gut {\r\n position: relative;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 0;\r\n padding-bottom: 100%;\r\n }\r\n\r\n .w-img.z-square .w-img-icon {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-img-icon {\r\n display: block;\r\n object-fit: cover;\r\n line-height: 1;\r\n }\r\n\r\n .w-img-cover {}\r\n\r\n .w-img-description {}\r\n\r\n .w-img.z-vertical>.w-img-description {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n</style>\n","import script from \"./Img.vue?vue&type=script&lang=js\"\nexport * from \"./Img.vue?vue&type=script&lang=js\"\n\nimport \"./Img.vue?vue&type=style&index=0&id=4b5feea2&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import WidgetAbs from './WidgetAbs.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import Pop from './Pop.vue'\r\n import Img from './Img.vue'\r\n\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n\r\n export default {\r\n name: 'w-view',\r\n mixins: [SrcParent],\r\n provide() {\r\n return {\r\n provideView: this\r\n }\r\n },\r\n props: ['commands'],\r\n data() {\r\n return {\r\n isView: true,\r\n pops: [],\r\n }\r\n },\r\n beforeCreate() {\r\n this.popCommanders = {}\r\n },\r\n methods: {\r\n reload() {\r\n this.request()\r\n },\r\n find(a) {\r\n const b = this.el().querySelectorAll(`[w-key=\"${a}\"]`)\r\n for (let c of b) {\r\n if ((c = $(c)) && c.ownerView === this) return c\r\n }\r\n },\r\n fv(a, b) {\r\n let d = this.f(a)\r\n if (arguments.length === 2) {\r\n d && (d.groupFormVal ? d.groupFormVal(b) : d.val(b))\r\n } else if (typeof a === 'object') {\r\n for (let i in a) this.fv(i, a[i])\r\n } else {\r\n return d && (d.groupFormVal ? d.groupFormVal() : d.formVal())\r\n }\r\n },\r\n f(a, b) {\r\n return this.fAll(a, b)[0]\r\n },\r\n // 获取范围内的所有表单 /@a -> name, b -> range?(elem|widget)\r\n fAll(a, b) {\r\n if (a === '*' || a == null) {\r\n for (var i = 0, q = this.getFormList(b, true), l = q.length, d, e, f = []; i < l; i++)\r\n (d = $(q[i])) && d != e && f.push(e = d);\r\n return f;\r\n }\r\n let dom = b ? (b.isWidget ? b.el() : b) : this.el()\r\n let r = $.q(':input[name=\"' + a + '\"]', dom)\r\n if (!r.length) r = $.q(':input[w-name=\"' + a + '\"]', dom)\r\n return $.lodash.map(r.not('[w-form-ignore] :input'), d => $(d))\r\n },\r\n // 获取所有表单,返回一个dom集合 /@ a -> range(widgetID, 可选,如果 range 以 !开头,表示排除), b -> 是否包含disabled的表单\r\n getFormList(a, b) {\r\n if (Array.isArray(a)) return a\r\n let r, f = ':input:not(button)' + (b ? '' : ':not(:disabled)')\r\n if (a && typeof a === 'string') {\r\n let d = a.charAt(0) === '!'\r\n let e = a.replace(/\\!/g, '').split(',').map(v => `[w-key=\"${v}\"] ${f}`)\r\n if (e = e.join())\r\n r = $.q(d ? `${f}:not(${e})` : e, this.el())\r\n } else {\r\n r = $.q(f, a ? (a.isWidget ? a.el() : a) : this.el())\r\n }\r\n return r ? $.lodash.map(r.not('[w-form-ignore] :input')) : []\r\n },\r\n // 获取提交数据 {name: value, ...} /@ a -> range [widgetID, 可选,如果 range 以 !开头,表示排除]\r\n getPostData(range) {\r\n let r = {}\r\n this.getFormList(range).forEach(a => {\r\n let d = a.name\r\n let v = a.value\r\n if (!d) return\r\n switch (a.type) {\r\n case 'text':\r\n let t = a.getAttribute('w-valuetype')\r\n if (t === 'number')\r\n v = v.replace(/[^\\d\\.-]/g, '')\r\n break\r\n case 'checkbox':\r\n if (!a.value || (!a.checked && !(a.indeterminate && a.getAttribute('w-partialsubmit'))))\r\n return null\r\n break\r\n case 'radio':\r\n if (!a.value || !a.checked)\r\n return null\r\n d = a.getAttribute('w-name') || d\r\n break;\r\n case 'select-one':\r\n if (a.selectedIndex < 0)\r\n return null;\r\n break;\r\n }\r\n v && (v = $.strTrim(v))\r\n if (d in r) {\r\n if (!Array.isArray(r[d]))\r\n r[d] = [r[d]]\r\n r[d].push(v)\r\n } else\r\n r[d] = v\r\n })\r\n return r\r\n },\r\n // 表单验证。如果检测到错误,将返回一个包含错误信息的数组 /@r -> range, n -> validate group name\r\n getValidError(range) {\r\n let e, q = this.getFormList(range)\r\n for (let i = 0, l = q.length, c, v; i < l; i++) {\r\n if ((c = $(q[i])) && c.isFormWidget && (v = c.getValidError())) {\r\n if (!e) e = []\r\n if (!e.find(n => n.wid == v.wid)) e.push(v)\r\n }\r\n }\r\n return e\r\n },\r\n // 表单验证。验证通过返回true /@ range -> validaterange\r\n valid(range) {\r\n if (this._err_ns) {\r\n this._err_ns.forEach(v => {\r\n let n = $.vueMap.get(v.wid)\r\n n && n.warn(false)\r\n })\r\n }\r\n let e = this.getValidError(range)\r\n if (e) {\r\n e.forEach(v => $.vueMap.get(v.wid).warn())\r\n $.vueMap.get(e[0].wid).showErrorTip(e[0].text)\r\n }\r\n return !(this._err_ns = e)\r\n },\r\n // @range -> 范围, original -> (设置为true,检测表单是否有修改,对照的值为初始值)\r\n isModified(range, original) {\r\n return this.getFormList(range).find(o => (o = $(o)).isModified && o.isModified(original))\r\n },\r\n // @range -> 范围, original -> (设置为true,设置为true,修改初始值)\r\n saveModified(range, original) {\r\n this.getFormList(range).forEach(o => (o = $(o)).saveModified && o.saveModified(original))\r\n },\r\n resetForm(range, empty) {\r\n this.getFormList(range).forEach(f => {\r\n let c = $(f)\r\n c.reset && c.reset(empty)\r\n })\r\n },\r\n showLoading(a) {\r\n\t\t\t\ta = a == null ? true: a\r\n\t\t\t\tif (a) {\r\n\t\t\t\t\tthis.pop('w-loading', {\r\n\t\t\t\t\t type: 'Loading',\r\n\t\t\t\t\t cover: true,\r\n\t\t\t\t\t local: true,\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.pop('w-loading', false)\r\n\t\t\t\t}\r\n },\r\n createPop(template, props, commander) {\r\n return new Promise((resolve, reject) => {\r\n let uid = $.uid()\r\n if (!props.orientUid) props.orientUid = uid\r\n this.pops.push({\r\n template,\r\n props,\r\n commander,\r\n resolve,\r\n reject\r\n })\r\n })\r\n },\r\n removePop(p) {\r\n\t\t\t\tlet i = typeof p === 'string' ? this.pops.findIndex(v => v.props.orientUid == p) : this.pops.indexOf(p)\r\n\t\t\t\ti > -1 && this.pops.splice(i, 1)\r\n },\r\n\t\t\tgetPops({template, uid}) {\r\n\t\t\t\treturn this.pops.filter(p => {\r\n\t\t\t\t\tif (template && template != p.template) return false\r\n\t\t\t\t\tif (uid && p.props.orientUid != uid) return false\r\n\t\t\t\t\treturn true\r\n\t\t\t\t})\r\n\t\t\t},\r\n html_pops() {\r\n return [this.pops.map(p => h(Pop, {key: p.props.orientUid, p}))]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-view {\r\n position: relative;\r\n }\r\n\r\n</style>\n","import script from \"./ViewAbs.vue?vue&type=script&lang=js\"\nexport * from \"./ViewAbs.vue?vue&type=script&lang=js\"\n\nimport \"./ViewAbs.vue?vue&type=style&index=0&id=1a500338&lang=css\"\n\nexport default script","<template>\r\n <svg style=\"display:none;width:0;height:0\" width=\"0\" height=\"0\" focusable=\"false\" aria-hidden=\"true\">\r\n <symbol id=\"f-svg-loading\" viewBox=\"0 0 50 50\">\r\n <path\r\n d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\"\r\n transform=\"rotate(86.9154 25 25)\">\r\n </path>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-1\" viewBox=\"10 10 80 80\">\r\n <circle cx=\"50\" cy=\"50\" r=\"30\" />\r\n </symbol>\r\n <symbol id=\"f-svg-loading-2\" viewBox=\"0 0 24 30\">\r\n <rect x=\"0\" y=\"8.66115\" width=\"4\" height=\"12.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"8\" y=\"6.16115\" width=\"4\" height=\"17.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"16\" y=\"6.33885\" width=\"4\" height=\"17.3223\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-3\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n d=\"M514.048 337.715a32 32 0 0 1-32-32V135.168a32 32 0 1 1 64 0v170.534a32 32 0 0 1-32 32z m-1.28 581.799a32 32 0 0 1-32-32V714.406a32 32 0 1 1 64 0v173.095a32 32 0 0 1-32 32zM305.011 543.347H135.744a32 32 0 0 1 0-64h169.267a32 32 0 0 1 0 64z m583.079 0H713.83a32 32 0 0 1 0-64h174.26a32 32 0 1 1 0 64zM245.978 806.4a32 32 0 0 1-22.656-54.669L342.643 632.32a32 32 0 0 1 45.325 45.325L268.646 796.979a31.898 31.898 0 0 1-22.668 9.344z m408.435-408.5a32 32 0 0 1-22.656-54.68l123.558-123.56a32 32 0 1 1 45.325 45.3L677.12 388.544a31.898 31.898 0 0 1-22.669 9.357z m121.523 411.06a31.885 31.885 0 0 1-22.669-9.344l-122.15-122.15a32 32 0 1 1 45.325-45.325l122.15 122.15a32 32 0 0 1-22.656 54.669zM364.672 397.632a31.923 31.923 0 0 1-22.669-9.344L221.273 267.52a32 32 0 1 1 45.325-45.325l120.73 120.743a32 32 0 0 1-22.656 54.668z m0 0\"\r\n p-id=\"4486\"></path>\r\n </symbol>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'w-svg-loading'\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-svg {\r\n width: 20px;\r\n height: 20px;\r\n fill: #777;\r\n }\r\n \r\n .f-svg-loading {\r\n animation: f-svg-key-rotate .6s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1 {\r\n animation: f-svg-key-rotate 1.5s linear infinite;\r\n }\r\n \r\n .f-svg-loading-3 {\r\n animation: f-svg-key-rotate 2s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1>use {\r\n stroke: #777;\r\n stroke-width: 6;\r\n fill: none;\r\n animation: f-svg-key-dash 1.5s linear infinite;\r\n }\r\n\r\n @keyframes f-svg-key-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n\r\n @keyframes f-svg-key-dash {\r\n 0% {\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n }\r\n 50% {\r\n stroke-dasharray: 130, 200;\r\n stroke-dashoffset: -50;\r\n }\r\n 100% {\r\n stroke-dasharray: 130, 200;\r\n stroke-dashoffset: -188;\r\n }\r\n }\r\n</style>\n","import { render } from \"./SVGIcon.vue?vue&type=template&id=a53c637e\"\nimport script from \"./SVGIcon.vue?vue&type=script&lang=js\"\nexport * from \"./SVGIcon.vue?vue&type=script&lang=js\"\n\nimport \"./SVGIcon.vue?vue&type=style&index=0&id=a53c637e&lang=css\"\nscript.render = render\n\nexport default script","<template>\r\n <w-dialog class=\"f-dialog-preview\" width=\"calc(100% - 100px)\" height=\"calc(100% - 100px)\" :ownproperty=\"true\" :cover=\"true\" :autoHide=\"true\">\r\n <template v-if=\"data.type=='image'\">\r\n <w-swiper ref=\"swiper\" class=\"f-height\" :current=\"current\" :arrow=\"data.imgs.length > 1\" :indicator-dots=\"data.imgs.length > 1\" duration=\"300\">\r\n <w-swiper-item v-for=\"(item,index) in data.imgs\" :key=\"index\">\r\n <div class=\"f-height f-rel f-oh\">\r\n <img class=\"_img\" :src=\"item\" />\r\n </div>\r\n </w-swiper-item>\r\n </w-swiper>\r\n <div class=_rotate>\r\n <a class=_l @click=\"rot(-1)\">{{loc.rotate_left}}</a>\r\n <span class=_s>|</span>\r\n <a class=_r @click=\"rot(1)\">{{loc.rotate_right}}</a>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <w-video class=\"f-height\" :src=\"data.src\"></w-video>\r\n </template>\r\n <div class=\"_dlg_x\" @click=\"close\"></div>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n return {\r\n rotate: 0,\r\n current: $.lodash.get(this.data, 'options.current', 0),\r\n }\r\n },\r\n methods: {\r\n close() {\r\n $.close(this)\r\n },\r\n rot(a) {\r\n let r = this.rotate\r\n let b = $.bcr(this.$refs.swiper.el())\r\n let w = b.width - 40\r\n let h = b.height - 80\r\n if (a > 0) {\r\n r += 90\r\n } else if (a < 0) {\r\n r -= 90\r\n }\r\n let t = (r / 90) % 2\r\n $.q('.w-swiper-item.z-on ._img', this.$refs.swiper.el()).css({\r\n transform: 'rotate(' + r + 'deg)',\r\n maxWidth: t ? h : w,\r\n maxHeight: t ? w : h,\r\n });\r\n this.rotate = r\r\n }\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n },\r\n mounted() {\r\n \r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import { render } from \"./TemplatePreviewMedia.vue?vue&type=template&id=43a1c69b\"\nimport script from \"./TemplatePreviewMedia.vue?vue&type=script&lang=js\"\nexport * from \"./TemplatePreviewMedia.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\r\n <w-dialog class=\"f-datesheet\">\r\n <w-buttonbar class=\"f-datesheet-bbr\" align=\"between\" height=\"52\" style=\"padding:0 10px\">\r\n <w-button text=\"取消\" @click=\"clickCancel\"></w-button>\r\n <w-submitbutton text=\"确定\" @click=\"clickOK\"></w-submitbutton>\r\n </w-buttonbar>\r\n <w-horizontal height=\"*\">\r\n <w-vertical width=\"*\" v-if=\"hasYear\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">年</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusYear\" :min-value=\"minYear\" :max-value=\"maxYear\" :keep-index=\"true\"\r\n :data=\"{mode: 'year'}\">\r\n <w-option v-for=\"y in yearList\" :key=\"y\" :value=\"y\" :text=\"y\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMonth\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">月</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMonth\" :min-value=\"minMonth\" :max-value=\"maxMonth\" :keep-index=\"true\"\r\n :data=\"{mode: 'month'}\">\r\n <w-option v-for=\"m in monthList\" :key=\"m\" :value=\"m\" :text=\"dfish.strPad(m+1)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasDate\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">日</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusDate\" :min-value=\"minDate\" :max-value=\"maxDate\" :keep-index=\"true\"\r\n :data=\"{mode: 'date'}\">\r\n <w-option v-for=\"d in dateList\" :key=\"d\" :value=\"d\" :text=\"dfish.strPad(d)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasHour\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">时</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusHour\" :min-value=\"minHour\" :max-value=\"maxHour\" :keep-index=\"true\">\r\n <w-option v-for=\"h in hourList\" :key=\"h\" :value=\"h\" :text=\"dfish.strPad(h)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMinute\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">分</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMinute\" :min-value=\"minMinute\" :max-value=\"maxMinute\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"i in minuteList\" :key=\"i\" :value=\"i\" :text=\"dfish.strPad(i)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasSecond\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">秒</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusSecond\" :min-value=\"minSecond\" :max-value=\"maxSecond\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"s in secondList\" :key=\"s\" :value=\"s\" :text=\"dfish.strPad(s)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasWeek\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">周</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusWeek\" :min-value=\"minWeek\" :max-value=\"maxWeek\" :keep-index=\"true\">\r\n <w-option v-for=\"w in weekList\" :key=\"w.value\" :value=\"w.value\" :text=\"w.text\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n </w-horizontal>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n let f = this.data.format || 'yyyy-MM-dd'\r\n let d = this.data && this.data.value ? $.dateParse(this.data.value, f) : new Date\r\n let nd = this.data && this.data.minValue && $.dateParse(this.data.minValue, f)\r\n let xd = this.data && this.data.maxValue && $.dateParse(this.data.maxValue, f)\r\n d = $.numRange(d, nd, xd)\r\n let focusYear = d.getFullYear()\r\n let focusWeek, weekFirst, weekLast\r\n if (f.includes('w')) {\r\n focusWeek = $.dateWeek(d)[1]\r\n weekFirst = $.dateWeekFirst(focusYear)\r\n weekLast = $.dateWeekLast(focusYear)\r\n }\r\n return {\r\n focusYear,\r\n focusMonth: d.getMonth(),\r\n focusDate: d.getDate(),\r\n focusHour: d.getHours(),\r\n focusMinute: d.getMinutes(),\r\n focusSecond: d.getSeconds(),\r\n startYear: $.numRange(d.getFullYear() - 30, nd && nd.getFullYear()),\r\n endYear: $.numRange(d.getFullYear() + 30, null, xd && xd.getFullYear()),\r\n monthDays: new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\r\n focusWeek,\r\n weekFirst,\r\n weekLast,\r\n minTime: nd,\r\n maxTime: xd,\r\n format: f\r\n }\r\n },\r\n watch: {\r\n focusYear(y) {\r\n if (y == this.yearList[0] && y > 1030) {\r\n this.startYear = $.numRange(this.startYear - 30, this.minYear)\r\n } else if (y == this.yearList[this.yearList.length - 1]) {\r\n this.endYear = $.numRange(this.endYear + 30, null, this.maxYear)\r\n }\r\n this.monthDays = new Date(y, this.focusMonth + 1, 0).getDate()\r\n if (this.hasWeek) {\r\n this.weekFirst = $.dateWeekFirst(y)\r\n this.weekLast = $.dateWeekLast(y)\r\n }\r\n },\r\n focusMonth(m) {\r\n this.monthDays = new Date(this.focusYear, m + 1, 0).getDate()\r\n }\r\n },\r\n methods: {\r\n weekText(w) {\r\n \r\n },\r\n clickCancel() {\r\n $.close(this)\r\n },\r\n clickOK() {\r\n if (this.data.success) {\r\n let d = this.hasWeek ? $.dateParse(`${this.focusYear}-${this.focusWeek}`, 'yyyy-ww') :\r\n new Date(this.focusYear, this.focusMonth, this.focusDate, this.focusHour, this.focusMinute, this.focusSecond)\r\n this.data.success($.dateFormat(d, this.format))\r\n }\r\n $.close(this)\r\n },\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n yearList() {\r\n return Array.from(Array(this.endYear - this.startYear + 1)).map((v, i) => this.startYear + i)\r\n },\r\n monthList() {\r\n return Array.from(Array(12)).map((v, i) => i)\r\n },\r\n dateList() {\r\n return Array.from(Array(this.monthDays)).map((v, i) => i + 1)\r\n },\r\n hourList() {\r\n return Array.from(Array(24)).map((v, i) => i)\r\n },\r\n minuteList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n secondList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n weekList() {\r\n let d = this.weekFirst[2]\r\n return Array.from(Array(this.weekLast[1])).map((v, i) => {\r\n let startDate = d\r\n let endDate = $.dateAdd(d, 'd', 6)\r\n d = $.dateAdd(d, 'd', 7)\r\n return {\r\n value: i + 1,\r\n text: `${$.strPad(i + 1)} (${$.dateFormat(startDate, 'MM.dd')} - ${$.dateFormat(endDate, 'MM.dd')})`,\r\n }\r\n })\r\n },\r\n hasYear() {\r\n return this.format.includes('y')\r\n },\r\n hasMonth() {\r\n return this.format.includes('M')\r\n },\r\n hasDate() {\r\n return this.format.includes('d')\r\n },\r\n hasHour() {\r\n return this.format.includes('H')\r\n },\r\n hasMinute() {\r\n return this.format.includes('m')\r\n },\r\n hasSecond() {\r\n return this.format.includes('s')\r\n },\r\n hasWeek() {\r\n return this.format.includes('w')\r\n },\r\n minYear() {\r\n return this.minTime && this.hasYear && this.minTime.getFullYear()\r\n },\r\n maxYear() {\r\n return this.maxTime && this.hasYear && this.maxTime.getFullYear()\r\n },\r\n minMonth() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && this.minTime.getMonth()\r\n },\r\n maxMonth() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && this.maxTime.getMonth()\r\n },\r\n minDate() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) && this.minTime.getDate()\r\n },\r\n maxDate() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) && this.maxTime.getDate()\r\n },\r\n minHour() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && this.minTime.getHours()\r\n },\r\n maxHour() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && this.maxTime.getHours()\r\n },\r\n minMinute() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && this\r\n .minTime.getMinutes()\r\n },\r\n maxMinute() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && this\r\n .maxTime.getMinutes()\r\n },\r\n minSecond() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && (!\r\n this.hasMinute || this.minMinute == this.focusMinute) && this.minTime.getSeconds()\r\n },\r\n maxSecond() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && (!\r\n this.hasMinute || this.maxMinute == this.focusMinute) && this.maxTime.getSeconds()\r\n },\r\n minWeek() {\r\n\r\n },\r\n maxWeek() {\r\n\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-datesheet {\r\n background: #f9f9f9;\r\n }\r\n\r\n .f-datesheet-ok {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .f-datesheet-head {\r\n height: 36px;\r\n border-top: 1px solid #ddd;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n</style>\n","import { render } from \"./TemplateDateSheet.vue?vue&type=template&id=e271d2a6\"\nimport script from \"./TemplateDateSheet.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateDateSheet.vue?vue&type=script&lang=js\"\n\nimport \"./TemplateDateSheet.vue?vue&type=style&index=0&id=e271d2a6&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetAbs from './WidgetAbs.vue' \r\n import ViewAbs from './ViewAbs.vue' \r\n import SVGIcon from '../assets/SVGIcon.vue'\r\n import TemplatePreviewMedia from '../template/TemplatePreviewMedia.vue'\r\n import TemplateDateSheet from '../template/TemplateDateSheet.vue'\r\n \r\n\r\n export default {\r\n name: 'w-docview',\r\n mixins: [WidgetAbs, ViewAbs],\r\n provide() {\r\n return {\r\n providePubParent: null,\r\n provideBoxParent: null,\r\n provideRangeParent: null,\r\n }\r\n },\r\n beforeCreate() {\r\n $.docView = this\r\n $.q(document.body).prepend('<div id=w-dfish-pops></div>')\r\n },\r\n methods: {\r\n el() {\r\n return document.getElementById('app')\r\n },\r\n getKey() {\r\n return null\r\n },\r\n previewVideo(src) {\r\n this.pop(TemplatePreviewMedia, {data: {type: 'video', src}})\r\n },\r\n previewImage(imgs, options) {\r\n this.pop(TemplatePreviewMedia, {data: {type: 'image', imgs, options}})\r\n },\r\n //dateOptions: {value, format, minValue, maxValue, success}\r\n dateSheet(dateOptions, dialogOptions) {\r\n this.pop(TemplateDateSheet, {\r\n template: TemplateDateSheet,\r\n width: '100%',\r\n height: '55%',\r\n position: 'b',\r\n cover: true,\r\n autoHide: true,\r\n data: dateOptions,\r\n on: {\r\n 'click:cover': $.close\r\n }\r\n })\r\n },\r\n html() {\r\n return [\r\n this.$slots.default && this.$slots.default(),\r\n this.html_pops(),\r\n h(SVGIcon),\r\n ]\r\n }\r\n },\r\n mounted() {\r\n if ($.x.debug) {\r\n\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./DocView.vue?vue&type=script&lang=js\"\nexport * from \"./DocView.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import ViewAbs from './ViewAbs.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-view',\r\n mixins: [Vertical, ViewAbs],\r\n inject: ['provideView'],\r\n methods: {\r\n html() {\r\n return [this.html_self(true), this.html_pops()]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-vertical f-rel', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n Teleport,\r\n mergeProps\r\n } from 'vue'\r\n import View from './View.vue'\r\n import Pop from './Pop.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n const O = {},\r\n T = true,\r\n F = false,\r\n N = null\r\n\t\t\r\n\tconst zIndex = 100\r\n\r\n const _dialogSnapHooks = {\r\n t: 'tb',\r\n r: 'rl',\r\n b: 'bt',\r\n l: 'lr',\r\n c: 'cc',\r\n tl: '14',\r\n tr: '23',\r\n rt: '21',\r\n rb: '34',\r\n bl: '41',\r\n br: '32',\r\n lt: '12',\r\n lb: '43',\r\n '-t': 'tb',\r\n '-r': 'rl',\r\n '-b': 'bt',\r\n '-l': 'lr',\r\n '-c': 'cc',\r\n '-tl': '11',\r\n '-tr': '22',\r\n '-rt': '22',\r\n '-rb': '33',\r\n '-bl': '44',\r\n '-br': '33',\r\n '-lt': '11',\r\n '-lb': '44',\r\n }\r\n\r\n const _dialogSnap = function(a) {\r\n let b = a && (a.position || a)\r\n return typeof b === 'string' && b.split(',').map(v => _dialogSnapHooks[v] || v).join()\r\n }\r\n\r\n export default {\r\n name: 'w-dialog',\r\n mixins: [View],\r\n props: ['title', 'snap', 'autoHide', 'context', 'prong', 'independent', 'timeout',\r\n 'cover', 'position', 'local', 'fullScreen', 'dropClass', 'dropPosition', 'dropHover',\r\n ],\r\n emits: ['close', 'click:cover'],\r\n watch: {\r\n position(v) {\r\n this.axis()\r\n },\r\n },\r\n data() {\r\n return {\r\n isDialog: true,\r\n animateClass: '',\r\n snapClass: '',\r\n keepHover: false,\r\n hoverTimer: null,\r\n hoverMove: null,\r\n closed: false,\r\n animating: false,\r\n isDeactivated: false,\r\n _pos: null,\r\n snapStyle: null,\r\n maxHeight: null,\r\n }\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n methods: {\r\n getKey() {\r\n return null\r\n },\r\n getSrc() {\r\n let src = this.x.src\r\n if (!src) return ''\r\n const feat = this.getOptions()\r\n if (feat.args)\r\n src = $.urlFormat(src, feat.args)\r\n if (src.includes('$'))\r\n src = $.urlFormat(src, this.x.data, this.x)\r\n return src\r\n },\r\n _dft_pos() {\r\n let width = this.el().offsetWidth\r\n let height = this.el().offsetHeight\r\n return {\r\n left: Math.ceil((document.documentElement.clientWidth - width) / 2),\r\n top: Math.ceil((document.documentElement.clientHeight - height) / 2),\r\n width, height\r\n };\r\n },\r\n getLocalElem() {\r\n let c = this.getCommander()\r\n return c && c.el()\r\n },\r\n snapTargetElem() {\r\n let d = this.x.snap && this.x.snap.target\r\n if (typeof d === 'string') {\r\n let e = this.ownerView.find(d)\r\n return e && e.snapElem()\r\n } else if (typeof d === 'function') {\r\n return d()\r\n } else if (d) {\r\n return d.isWidget ? d.snapElem() : d\r\n } else {\r\n return this.x.local ? this.getLocalElem() : this.defaultSnapTargetElem\r\n }\r\n },\r\n snapCls(a) {\r\n let d = this.snapTargetElem()\r\n let r = this._pos\r\n if (d) {\r\n $.classAdd(d, 'z-drop', a)\r\n if (r && r.type) {\r\n var m = 'z-mag-' + (r.mag_t ? 't' : r.mag_l ? 'l' : r.mag_b ? 'b' : 'r')\r\n $.classAdd(this.el(), m + ' z-snap z-snap-' + r.type, a)\r\n $.classAdd(d, m, a)\r\n }\r\n }\r\n },\r\n fixSnapStyle() {\r\n let r = this._pos\r\n let s = {}\r\n if (r.type) {\r\n if (r.pix_r) {\r\n s.right = r.right\r\n } else {\r\n s.left = r.left\r\n }\r\n if (r.pix_b) {\r\n s.pix_b = true\r\n s.bottom = r.bottom + (r.layBottom || 0)\r\n } else {\r\n s.top = r.top + (r.layTop || 0)\r\n }\r\n s.type = r.type\r\n } else {\r\n s = r\r\n }\r\n this.snapStyle = s\r\n },\r\n axis() {\r\n let el = this.el()\r\n if (!el || this.x.fullScreen) return;\r\n let f = this.x.position || false\r\n let c = this.x.local\r\n let d = this.x.snap || O\r\n let g = this.snapTargetElem()\r\n // 如果有指定 snap,采用 snap 模式\r\n let w = el.offsetWidth\r\n let h = el.offsetHeight\r\n let r\r\n if (f == 'c') f = null\r\n if (typeof f === 'string') { // 八方位浮动的起始位置\r\n let e = f.charAt(0)\r\n if (e == '-') {\r\n e = f.charAt(1)\r\n }\r\n r = $.snap(w, h, c && g, _dialogSnap(f), this._fitpos, d.indent, c && g)\r\n let lp = $.q(`.w-dialog-ani-position-${f}:not([id=\"${this.uid}\"]):last`)[0]\r\n if (lp && r.type != 'rl' && r.type != 'lr') { // 同一浮动位置出现的对话框,实现排队效果\r\n let lc = lp.getBoundingClientRect()\r\n if (r.pix_b) r.layBottom = r.mag_t ? -(lc.bottom + 5) : (document.documentElement.clientHeight - lc.top + 5)\r\n else r.layTop = r.mag_b ? -(document.documentElement.clientHeight - lc.top + 5) : lc.bottom + 5\r\n }\r\n } else if (g) {\r\n r = $.snap(w, h, g, _dialogSnap(d) || this.defaultSnapPosition || f, this._fitpos, d.indent != N ? d\r\n .indent : (this.x.prong && -9), c && g)\r\n }\r\n if (!r)\r\n r = this._dft_pos()\r\n this._pos && this.snapCls(F)\r\n this._pos = r\r\n this.fixSnapStyle()\r\n // 八方位浮动效果\r\n if (f) {\r\n if (typeof f === 'string')\r\n this.animateClass = 'w-dialog-ani-position-' + f\r\n } else {\r\n //this.animateClass = 'f-animated f-ani-dropIn'\r\n }\r\n this.snapCls()\r\n if (this.x.position && typeof this.x.position === 'string') {\r\n this.setMaxHeight('100%')\r\n } else {\r\n if (r.type) {\r\n this.checkOutScreen()\r\n } else {\r\n this.setMaxHeight('100%')\r\n }\r\n }\r\n },\r\n setPosition(s) {\r\n this.x.position = s\r\n },\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.bottom < 0) {\r\n this.setMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.setMaxHeight(c.height + c.top)\r\n }\r\n },\r\n close() {\r\n if (this.closed) return\r\n this.closeRelease()\r\n this.trigger('close')\r\n this.ownerView.removePop(this.uid)\r\n },\r\n closeRelease() {\r\n this.x.autoHide && this.listenHide(F)\r\n this.snapCls(F)\r\n this.closed = true\r\n let f = this.x.position\r\n if (f && typeof f === 'string' && this.el()) { // 当前窗口关闭后,有相同position的dialog依次移动补空位\r\n let ps = $.q(`~.w-dialog-ani-position-${f}`, this.el())\r\n let indent = this.el().offsetHeight + 5\r\n ps.each((i, el) => {\r\n el.classList.add(`w-dialog-ani-indent`)\r\n let s = $(el).snapStyle\r\n let t = s.type.charAt(0)\r\n if (s.top != null) {\r\n s.top += (t == 1 || t == 2 ? -1 : 1) * indent\r\n } else if (s.bottom != null) {\r\n s.bottom += (t == 3 || t == 4 ? -1 : 1) * indent\r\n }\r\n setTimeout(() => el.classList.remove(`w-dialog-ani-indent`), 200)\r\n })\r\n }\r\n },\r\n // 绑定鼠标监听 /@a -> 为 false 时解除监听\r\n listenHide(a) {\r\n if (a === F) {\r\n this.setListenHide(a)\r\n } else {\r\n setTimeout(() => {\r\n if (!this.closed) {\r\n this.setListenHide(a)\r\n }\r\n }, 100) // 延时处理,避免出现后立即消失的情况\r\n }\r\n },\r\n hoverOver() {\r\n clearTimeout(this.hoverTimer)\r\n this.hoverTimer = null\r\n },\r\n setListenHide(a) {\r\n let d = this.x.dropHover\r\n let n = a ? 'addEventListener' : 'removeEventListener'\r\n let evs = $.br.mobile ? ['touchend'] : ['mousedown', $.br.firefox ? 'DOMMouseScroll' : 'mousewheel']\r\n evs.forEach(v => document[n](v, this.bind('listenHideClose', (e) => {\r\n if (!this.closed && (e.target.classList.contains('w-dialog-cover') || !(this.hasBubble(e.target) || (!\r\n this.x\r\n .independent && (this.commander.isWidget ? this.commander.hasBubble(e.target) : this.commander\r\n .contains(e.target)))))) {\r\n if (e.target.id == this.id + 'cvr') e.stopPropagation()\r\n this.close()\r\n }\r\n }), T))\r\n window.plus && plus.key[n]('backbutton', this.bind('close'), F)\r\n if (d) {\r\n let o = d === T ? (this.x.snap && this.x.snap.target ? this.snapTargetElem() : $.el(this.commander)) : $.el(d)\r\n let hvOver = this.bind('listenHideHoverOver', e => {\r\n clearTimeout(this.hoverTimer), this.hoverTimer = null\r\n });\r\n let hvMove = this.bind('listenHideHoverMove', e => {\r\n if (!o.contains(e.target) && !this.hasBubble(e.target) && !this.keepHover) {\r\n if (!this.hoverTimer)\r\n this.hoverTimer = setTimeout(this.close, 300)\r\n } else\r\n hvOver()\r\n });\r\n [o, this.el()].forEach(v => v[n]('mouseenter', hvOver))\r\n document[n]('mousemove', hvMove)\r\n }\r\n },\r\n setMaxHeight(h) {\r\n this.maxHeight = h\r\n },\r\n getOptions() {\r\n return this.ownerView.getPops({uid: this.uid})[0]\r\n },\r\n getCommander() {\r\n let o = this.getOptions()\r\n return (o && o.commander) || this.context || this.ownerView\r\n },\r\n resolve(v) {\r\n let o = this.getOptions()\r\n o && o.resolve && o.resolve(v)\r\n },\r\n reject(v) {\r\n let o = this.getOptions()\r\n o && o.reject && o.reject(v)\r\n },\r\n html_slots() {\r\n let prong\r\n let r = this._pos\r\n if (this.x.prong && r) {\r\n let m = r.inner ? (r.mag_b ? 'b' : r.mag_t ? 't' : r.mag_l ? 'l' : 'r') : (r.mag_b ? 't' : r.mag_t ? 'b' : r\r\n .mag_l ? 'r' : 'l')\r\n prong = h('div', {\r\n class: 'w-dialog-prong z-' + m,\r\n }, [\r\n h('i', {\r\n class: 'w-dialog-prong-out f-arw f-arw-' + m + '5'\r\n }),\r\n h('i', {\r\n class: 'w-dialog-prong-in f-arw f-arw-' + m + '4'\r\n }),\r\n ])\r\n }\r\n return [prong || [], this.html_scroll_slots()]\r\n },\r\n html() {\r\n let to = this.x.local ? this.getLocalElem() : '#w-dfish-pops'\r\n let cover = this.x.cover && !this.closed && !this.isDeactivated ? h('div', {\r\n ref: 'cover',\r\n class: 'w-dialog-cover f-abs-full',\r\n onclick: e => this.trigger('click:cover', e)\r\n }) : null\r\n\t\t\t\tlet r = [cover || [], this.html_self(true)]\r\n return [\r\n // 套一层w-dialog-teleport的原因是为了让对话框里面的 $(this) 能正确返回\r\n to ? h('div', {class: 'w-dialog-teleport', id: this.uid + 'teleport'}, h(Teleport, {to}, r)) : r,\r\n this.html_pops()\r\n ]\r\n }\r\n },\r\n computed: {\r\n commander() {\r\n return this.getCommander()\r\n },\r\n args() {\r\n let o = this.getOptions()\r\n return o && o.args\r\n },\r\n defaultSnapTargetElem() {\r\n //implement\r\n },\r\n defaultSnapPosition() {\r\n return 'cc'\r\n },\r\n html_class() {\r\n return ['w-vertical', this.animateClass, this.snapClass, {\r\n 'z-hide': this.isDeactivated,\r\n 'z-full': this.x.fullScreen,\r\n }]\r\n },\r\n html_style() {\r\n if (this.x.fullScreen) {\r\n return {\r\n width: '100%',\r\n height: '100%',\r\n top: 0,\r\n left: 0,\r\n }\r\n } else {\r\n let f = this.x.position\r\n let n = this.snapStyle\r\n let s = {}\r\n if (f && typeof f === 'object') {\r\n $.extend(s, f)\r\n if (n) {\r\n if (s.top == null && s.bottom == null) $.extend(s, $.lodash.pick(n, 'top', 'bottom'))\r\n if (s.left == null && s.right == null) $.extend(s, $.lodash.pick(n, 'left', 'right'))\r\n }\r\n } else {\r\n if (n) $.extend(s, n)\r\n }\r\n for (let k in s) {\r\n s[k] = $.unitSize(s[k])\r\n }\r\n if (this.maxHeight) {\r\n s.maxHeight = $.unitSize(this.maxHeight)\r\n }\r\n return s\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.x.local) {\r\n $.q(this.getLocalElem()).addClass('f-dialog-local-wrap')\r\n }\r\n this.$nextTick(() => {\r\n this.x.autoHide && this.listenHide(T)\r\n setTimeout(this.axis)\r\n const observe = (o) => {\r\n if (this.closed || this.animateClass || !this.el()) return\r\n this.axis()\r\n }\r\n new ResizeObserver(observe).observe(this.el())\r\n if (this.x.timeout) {\r\n setTimeout(this.close, this.x.timeout)\r\n }\r\n })\r\n },\r\n unmounted() {\r\n if (!this.closed) {\r\n this.closeRelease()\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-dialog {\r\n display: inline-flex;\r\n position: absolute;\r\n box-shadow: 0px 0px 8px #bbb;\r\n z-index: 100;\r\n box-sizing: border-box;\r\n --w-dialog-ani-duration: 200ms;\r\n }\r\n\r\n .w-dialog.z-hide {\r\n display: none;\r\n }\r\n\r\n .w-dialog.z-full {\r\n transform: none;\r\n transition: none;\r\n }\r\n\r\n .w-dialog-cover {\r\n background: rgba(0, 0, 0);\r\n opacity: .35;\r\n z-index: 100;\r\n animation: w-dialog-cover-ani 200ms;\r\n }\r\n \r\n @keyframes w-dialog-cover-ani {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: .35;\r\n }\r\n }\r\n\r\n .w-dialog-prong {\r\n position: absolute;\r\n }\r\n\r\n .w-dialog-prong .f-arw {\r\n position: absolute;\r\n margin: 0\r\n }\r\n\r\n .w-dialog-prong.z-b {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n bottom: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-in {\r\n top: 0;\r\n left: 1px;\r\n border-top-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-out {\r\n top: 0;\r\n left: 0;\r\n border-top-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-t {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n top: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-in {\r\n bottom: 0;\r\n left: 1px;\r\n border-bottom-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-out {\r\n bottom: 0;\r\n left: 0;\r\n border-bottom-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-l {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n left: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-in {\r\n right: 0;\r\n top: 1px;\r\n border-right-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-out {\r\n right: 0;\r\n top: 0;\r\n border-right-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-r {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n right: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-in {\r\n left: 0;\r\n top: 1px;\r\n border-left-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-out {\r\n left: 0;\r\n top: 0;\r\n border-left-color: #d5d5d5\r\n }\r\n \r\n .w-dialog-teleport {\r\n display: none;\r\n }\r\n\r\n .w-dialog-ani-position-br,\r\n .w-dialog-ani-position-bl,\r\n .w-dialog-ani-position-b {\r\n transform: translateY(-100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position--br,\r\n .w-dialog-ani-position--bl,\r\n .w-dialog-ani-position--b {\r\n transform: translateY(0);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position-tr,\r\n .w-dialog-ani-position-tl,\r\n .w-dialog-ani-position-t {\r\n transform: translateY(100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position-lt,\r\n .w-dialog-ani-position-lb,\r\n .w-dialog-ani-position-l {\r\n transform: translateX(100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position-rt,\r\n .w-dialog-ani-position-rb,\r\n .w-dialog-ani-position-r {\r\n transform: translateX(-100%);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-position--rt,\r\n .w-dialog-ani-position--rb,\r\n .w-dialog-ani-position--r {\r\n transform: translateX(0);\r\n transition: transform var(--w-dialog-ani-duration);\r\n }\r\n\r\n .w-dialog-ani-indent {\r\n transition: top var(--w-dialog-ani-duration), bottom var(--w-dialog-ani-duration);\r\n }\r\n \r\n .w-dialog-move-helper {\r\n position: fixed;\r\n background: #fff;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n opacity: 0;\r\n z-index: 101;\r\n }\r\n</style>\n","import script from \"./Dialog.vue?vue&type=script&lang=js\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js\"\n\nimport \"./Dialog.vue?vue&type=style&index=0&id=58f631d8&lang=css\"\n\nexport default script","<template>\r\n <slot></slot>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-dialog-move',\r\n methods: {\r\n onmousedown(e) {\r\n let o = $.dialog(e.currentTarget)\r\n if (o) {\r\n if (o.x.movable !== false && !o.x.fullScreen) {\r\n let d = o.el()\r\n let sl = d.style.left\r\n let sr = d.style.right\r\n let st = d.style.top\r\n let sb = d.style.bottom\r\n let b = sb ? -1 : 1\r\n let r = sr ? -1 : 1\r\n let v = b < 0 ? 'bottom' : 'top'\r\n let h = r < 0 ? 'right' : 'left'\r\n let x = e.clientX\r\n let y = e.clientY\r\n let t = $.number(b < 0 ? sb : st)\r\n let l = $.number(r < 0 ? sr : sl)\r\n let m\r\n let n = document.documentElement.clientHeight\r\n let w = document.documentElement.clientWidth\r\n $.moveup(function(e) {\r\n !m && (m = $.q('<div class=w-dialog-move></div>').appendTo(document.body));\r\n let cx = $.numRange(e.clientX, 0, w)\r\n let cy = $.numRange(e.clientY, 0, n)\r\n o.setPosition({[v]: (t + b * (cy - y)) + 'px', [h]: (l + r * (cx - x)) + 'px'})\r\n }, function(e, moved) {\r\n moved && m && m.remove()\r\n }, e)\r\n }\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.$el.nextElementSibling.addEventListener('mousedown', this.onmousedown)\r\n },\r\n unmounted() {\r\n this.$el.nextElementSibling.removeEventListener('mousedown', this.onmousedown)\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-dialog-move {\r\n position: fixed;\r\n background: #fff;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n opacity: 0;\r\n z-index: 101;\r\n }\r\n</style>\n","import { render } from \"./DialogMove.vue?vue&type=template&id=5a3b6ded\"\nimport script from \"./DialogMove.vue?vue&type=script&lang=js\"\nexport * from \"./DialogMove.vue?vue&type=script&lang=js\"\n\nimport \"./DialogMove.vue?vue&type=style&index=0&id=5a3b6ded&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n\r\n export default {\r\n name: 'w-alert',\r\n mixins: [Dialog],\r\n props: ['text', 'yes', 'no', 'showButton'],\r\n mounted() {\r\n this.addEvent('close', () => this.$options.name == 'w-alert' ? this.cue(this.x.yes) : this.cue(this.x.no))\r\n },\r\n methods: {\r\n cueYes() {\r\n this.close()\r\n },\r\n cueNo() {\r\n this.close()\r\n },\r\n cue(a) {\r\n a && a(this.args)\r\n },\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-dialog w-vertical', this.animateClass, this.snapClass]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import script from \"./Alert.vue?vue&type=script&lang=js\"\nexport * from \"./Alert.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import Alert from './Alert.vue' \r\n\r\n export default {\r\n name: 'w-confirm',\r\n mixins: [Alert],\r\n methods: {\r\n cueYes() {\r\n this.cue(this.x.yes)\r\n this.x.no = null\r\n this.close()\r\n },\r\n cueNo() {\r\n this.close()\r\n },\r\n },\r\n computed: {\r\n html_prop_class() {\r\n return 'w-alert w-dialog w-vertical'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./Confirm.vue?vue&type=script&lang=js\"\nexport * from \"./Confirm.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n\r\n let inst = null\r\n let tipCache = {\r\n time: new Date().getTime()\r\n }\r\n export {tipCache}\r\n \r\n export default {\r\n name: 'w-tip',\r\n mixins: [Dialog],\r\n props: ['text', 'face'],\r\n methods: {\r\n x_default() {\r\n return {\r\n prong: true,\r\n autoHide: true,\r\n }\r\n },\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-dialog w-vertical' + (this.x.face && ' z-face-' + this.x.face)\r\n },\r\n defaultSnapTargetElem() {\r\n return this.commander.snapElem()\r\n },\r\n defaultSnapPosition() {\r\n return 'tb,rl,lr,bt,rr,ll,bb,tt,cc'\r\n }\r\n },\r\n mounted() {\r\n tipCache.time = new Date().getTime()\r\n inst && $.close(inst)\r\n inst = this.uid\r\n },\r\n unmounted() {\r\n inst = null\r\n }\r\n }\r\n \r\n</script>\r\n\r\n<style>\r\n .w-tip.w-dialog {\r\n border: 1px solid #2498ff;\r\n background: #f5faff;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip .w-tip-x {\r\n position: absolute;\r\n right: 3px;\r\n top: 3px;\r\n padding: 0 3px;\r\n cursor: pointer\r\n }\r\n\r\n .w-tip .f-i-close {\r\n font-size: 12px;\r\n color: #999\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #2498ff\r\n }\r\n\r\n .w-tip.w-dialog.z-face-warn {\r\n border: 1px solid #f3e041;\r\n background: #faf0cd;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #f3e041\r\n }\r\n\r\n .w-tip-body {\r\n min-height: 32px;\r\n }\r\n\r\n .w-tip-text {\r\n padding: 0 10px;\r\n }\r\n</style>\n","import script from \"./Tip.vue?vue&type=script&lang=js\"\nexport * from \"./Tip.vue?vue&type=script&lang=js\"\n\nimport \"./Tip.vue?vue&type=style&index=0&id=129e762e&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Img from './Img.vue'\r\n import Menu from './Menu.vue'\r\n\r\n export default {\r\n name: 'w-button',\r\n pubParentName: 'w-buttonbar',\r\n mixins: [WidgetBase],\r\n props: ['text', 'icon', 'focusIcon', 'face', 'target', 'closable', 'loading', 'disabled', 'vertical', 'dropClass', 'dropPosition', 'dropHover', 'dropIcon', 'showDropIcon'],\r\n inject: ['providePubParent'],\r\n emits: ['click:close'],\r\n data() {\r\n return {\r\n dropper: null,\r\n showDrop: false,\r\n mouses: {\r\n onmouseenter: e => {e.currentTarget.classList.add('z-hv'); this.x.dropHover && this.drop()},\r\n onmouseleave: e => e.currentTarget.classList.remove('z-hv'),\r\n onmousedown: e => e.currentTarget.classList.add('z-down'),\r\n onmouseup: e => e.currentTarget.classList.remove('z-down'),\r\n }\r\n }\r\n },\r\n watch: {\r\n disabled(a) {\r\n a && $.q('.z-hv', this.el()).removeClass('z-hv')\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n showDropIcon: true\r\n }\r\n },\r\n ajaxLock(a) {\r\n a = a == null ? true : a\r\n this.x.loading = a\r\n },\r\n drop() {\r\n this.showDrop = true\r\n },\r\n onclick(e) {\r\n if (this.isMore) {\r\n this.drop()\r\n }\r\n if (this.pubParent && this.pubParent.clickTab) {\r\n this.pubParent.clickTab(this)\r\n }\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n clickDrop(e) {\r\n if (this.isDisabled) return\r\n e.stopPropagation()\r\n this.drop()\r\n },\r\n html_drop() {\r\n return \r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n if (this.x.loading) {\r\n r.push(h('div', {\r\n class: 'w-button-loading f-abs-full f-flex-center'\r\n }, h(Img, {\r\n src: '#f-svg-loading'\r\n })))\r\n }\r\n if (this.x.icon) {\r\n r.push(this.html_icon(this.x.focusIcon && this.isCurrent ? this.x.focusIcon : this.x.icon,\r\n 'w-button-icon f-flex-center f-height'))\r\n }\r\n if (t) {\r\n r.push(h('div', {\r\n class: 'w-button-text'\r\n }, t))\r\n }\r\n if (this.isMore && this.x.showDropIcon) {\r\n r.push(h(Img, {\r\n class: 'w-button-more f-flex-center f-height',\r\n src: this.x.dropIcon || '.f-i .f-i-caret-down'\r\n }))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-button-close f-flex-center'\r\n }, h('i', {\r\n class: 'w-button-close-icon f-i f-i-close',\r\n onclick: this.clickClose,\r\n })))\r\n }\r\n return [\r\n h('div', {\r\n class: 'w-button-main f-oh f-height',\r\n ...(this.isCombo && !this.isDisabled && this.mouses),\r\n }, r),\r\n this.isCombo && this.x.showDropIcon && h(Img, {\r\n class: 'w-button-drop f-flex-center f-height',\r\n src: this.x.dropIcon || '.f-i .f-i-caret-down',\r\n ...(!this.isDisabled && this.mouses),\r\n onclick: this.clickDrop\r\n }),\r\n this.showDrop ? h(Menu, {\r\n context: this,\r\n ownproperty: true,\r\n minWidth: $.bcr(this.el()).width,\r\n autoHide: true,\r\n dropHover: this.x.dropHover,\r\n dropClass: this.x.dropClass,\r\n dropPosition: this.x.dropPosition,\r\n snap: {\r\n target: () => this.el(),\r\n position: this.x.dropPosition || (this.pubParent && this.pubParent.x.vertical ? 'rt,lt' : 'v'),\r\n indent: 1\r\n },\r\n onClose: () => this.showDrop = false\r\n }, this.$slots) : []\r\n ]\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'div'\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n isMore() {\r\n return !!this.$slots.default && !this.getOn('click')\r\n },\r\n isCombo() {\r\n return !!(this.$slots.default && this.getOn('click'))\r\n },\r\n isDisabled() {\r\n return this.x.disabled || this.x.loading\r\n },\r\n html_props() {\r\n return {\r\n disabled: this.isDisabled,\r\n class: {\r\n [`z-face-${this.x.face}`]: this.x.face,\r\n 'z-combo': this.isCombo,\r\n 'z-more': this.isMore,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled,\r\n 'z-loading': this.x.loading,\r\n 'z-vertical': this.x.vertical,\r\n 'z-closable': this.x.closable\r\n },\r\n onclick: this.onclick,\r\n ...(!this.isCombo && this.mouses),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import script from \"./Button.vue?vue&type=script&lang=js\"\nexport * from \"./Button.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n import Img from './Img.vue'\r\n import WidgetAbs from './WidgetAbs.vue'\r\n\r\n export default {\r\n name: 'w-menubutton',\r\n mixins: [Button],\r\n methods: {\r\n drop() {\r\n if (this.showDrop) return\r\n this.closeSub()\r\n this.showDrop = true\r\n this.parentMenu.subMenu = this\r\n },\r\n onclick(e) {\r\n if (this.isMore) return\r\n //this.trigger(e)\r\n setTimeout(() => this.parentMenu.root.close(), 10)\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && e.currentTarget.classList.add('z-hv')\r\n if (this.isMore) {\r\n this.drop()\r\n } else {\r\n this.closeSub()\r\n }\r\n },\r\n closeSub() {\r\n if (this.parentMenu.subMenu) {\r\n this.parentMenu.subMenu.showDrop = false\r\n this.parentMenu.subMenu = null\r\n }\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n let src = this.x.icon\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n r.push(!src || font ? h('i', {\r\n class: 'w-menubutton-icon f-flex-center f-height ' + (src ? src.replace(/\\./g, '') : '')\r\n }) : h('img', {\r\n src: src,\r\n class: 'w-menubutton-icon f-flex-center f-height'\r\n }))\r\n\r\n if (t) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-text f-line-1'\r\n }, t))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-close'\r\n }, h('i', {\r\n class: 'w-menubutton-close-icon f-i f-i-close',\r\n onclick: this.clickClose\r\n })))\r\n }\r\n r.push(h(Img, {\r\n class: 'w-menubutton-drop f-flex-center f-height',\r\n src: this.isMore ? (this.x.dropIcon || '.f-i .f-i-caret-right') : ''\r\n }))\r\n if (this.showDrop) {\r\n r.push(h(Menu, {\r\n autoHide: true,\r\n context: this,\r\n ownproperty: true,\r\n dropClass: this.x.dropClass || this.parentMenu.x.dropClass,\r\n snap: {\r\n target: () => this.el(),\r\n position: '21,12',\r\n indent: 1\r\n },\r\n onClose: () => this.showDrop = null\r\n }, this.$slots))\r\n }\r\n\r\n return r\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'button'\r\n },\r\n isMore() {\r\n return !!this.$slots.default\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n ownerView() { // 因为业务会调用 $.vm(event), 所以返回commander的view\r\n return this.parentMenu.rootCommander.ownerView\r\n },\r\n html_props() {\r\n return {\r\n disabled: this.x.disabled,\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: !this.x.disabled && (e => e.currentTarget.classList.remove('z-hv')),\r\n onclick: this.onclick\r\n }\r\n }\r\n },\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menubutton {\r\n display: inline-flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n margin: 0;\r\n height: 32px;\r\n background: #fff;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-menubutton .f-i {\r\n color: #999;\r\n }\r\n\r\n .w-menubutton-icon {\r\n width: 30px;\r\n }\r\n\r\n .w-menubutton-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n }\r\n\r\n .w-menubutton-drop {\r\n width: 30px;\r\n margin-left: 5px;\r\n }\r\n\r\n .w-menubutton>.w-menubutton-close {\r\n margin-right: -5px;\r\n flex-shrink: 0;\r\n color: #aaa;\r\n }\r\n\r\n .w-menubutton-close-icon:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-menubutton.z-hv,\r\n .w-menubutton.z-drop {\r\n background: #f8f8f8;\r\n }\r\n\r\n .w-menubutton.z-ds {\r\n background-color: #eee;\r\n color: #777;\r\n cursor: default;\r\n }\r\n\r\n .w-menubutton.z-ds .w-menubutton-icon {\r\n color: #bbb;\r\n }\r\n</style>\n","import script from \"./MenuButton.vue?vue&type=script&lang=js\"\nexport * from \"./MenuButton.vue?vue&type=script&lang=js\"\n\nimport \"./MenuButton.vue?vue&type=style&index=0&id=56deea48&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Dialog from './Dialog.vue'\r\n import MenuButton from './MenuButton.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n let inst = null\r\n\r\n export default {\r\n name: 'w-menu',\r\n mixins: [Dialog],\r\n methods: {\r\n x_default() {\r\n return {\r\n autoHide: true,\r\n independent: true,\r\n }\r\n },\r\n hasBubble(a, b) {\r\n if (this.contains(a, b)) return true\r\n let p = $(a).closest('w-menu,w-menubutton')\r\n if (p && (p = p.parentMenu) && p.rootCommander == this.rootCommander) return true\r\n },\r\n arrow(a) {\r\n let b = this.$refs.bbr.el()\r\n let c = $.bcr(b)\r\n b.scrollTop += c.height * a\r\n },\r\n mousewheel(e) {\r\n this.arrow(e.wheelDelta < 0 ? 1 : -1)\r\n },\r\n getRoot() {\r\n let c = this\r\n while (c.getCommander().$options.name === 'w-menubutton') c = c.getCommander().parentMenu\r\n return c\r\n },\r\n // implement\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.mag_l || c.mag_r) {\r\n if (c.bottom < 0) {\r\n c.top += c.bottom\r\n if (c.top < 0) {\r\n this.setMaxHeight(c.height + c.top)\r\n c.top = 0\r\n }\r\n this.fixSnapStyle()\r\n } else if (c.top < 0) {\r\n c.bottom += c.top\r\n if (c.bottom < 0) {\r\n this.setMaxHeight(c.height + c.bottom)\r\n c.bottom = 0\r\n }\r\n this.fixSnapStyle()\r\n }\r\n } else {\r\n if (c.bottom < 0) {\r\n this.setMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.setMaxHeight(c.height + c.top)\r\n }\r\n }\r\n },\r\n html_buttons() {\r\n return this.slots_children().map(s => {\r\n let n = s.type.name\r\n return n === 'w-button' || n === 'w-submitbutton' ? h(MenuButton, s.props, s.children) : s\r\n })\r\n },\r\n html_slots() {\r\n return [\r\n this.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-up'\r\n })),\r\n h(Vertical, {\r\n class: 'w-menu-bbr',\r\n height: '*',\r\n ref: 'bbr',\r\n onwheel: this.mousewheel\r\n }, {\r\n default: () => this.html_buttons()\r\n }),\r\n this.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-down'\r\n })),\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-dialog w-vertical', this.animateClass, this.snapClass, this.x.dropClass, {\r\n 'z-hide': this.isDeactivated,\r\n 'z-full': this.x.fullScreen,\r\n 'z-max-height': this.maxHeight,\r\n }]\r\n },\r\n root() {\r\n return this.getRoot()\r\n },\r\n rootCommander() {\r\n return this.root.commander\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n },\r\n mounted() {\r\n if (this.context && this.context.$options.name !== 'w-menubutton') {\r\n if (inst) {\r\n $.close(inst)\r\n }\r\n inst = this\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menu {\r\n box-shadow: none;\r\n border: 1px solid #ccc;\r\n background: #fff;\r\n }\r\n\r\n .w-menu .w-split {\r\n height: 1px;\r\n background: #ddd;\r\n margin: 2px 0;\r\n }\r\n\r\n .w-menu-arr {\r\n height: 18px;\r\n line-height: 1;\r\n text-align: center;\r\n cursor: pointer;\r\n }\r\n\r\n .w-menu-arr:hover {\r\n background: #f5f5f5;\r\n }\r\n</style>\n","import script from \"./Menu.vue?vue&type=script&lang=js\"\nexport * from \"./Menu.vue?vue&type=script&lang=js\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=0cc8b3b0&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Dialog from './Dialog.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-loading',\r\n mixins: [Dialog],\r\n props: ['text', 'icon'],\r\n methods: {\r\n x_default() {\r\n return {\r\n //local: true,\r\n }\r\n },\r\n html_slots() {\r\n return h(Img, {\r\n src: this.x.icon !== undefined ? this.x.icon : '#f-svg-loading',\r\n text: this.x.text !== undefined ? this.x.text : $.loc.loading\r\n })\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-dialog'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-loading {\r\n padding: 10px;\r\n border-radius: 10px;\r\n background: rgba(0, 0, 0, .6);\r\n color: #fff;\r\n box-shadow: none;\r\n }\r\n\r\n .w-loading .f-svg {\r\n width: 30px;\r\n height: 30px;\r\n fill: #fff;\r\n }\r\n .w-loading .f-svg>use {\r\n stroke: #fff;\r\n }\r\n</style>\n","import script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\n\nimport \"./Loading.vue?vue&type=style&index=0&id=35a83c14&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n h\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-table',\r\n mixins: [WidgetBase],\r\n props: ['face', 'scroll-x', 'scroll-y'],\r\n provide() {\r\n return {\r\n _provideTable: this,\r\n provideLevel: -1,\r\n provideParentTR: null,\r\n }\r\n },\r\n data() {\r\n return {\r\n sticky: {left: null, right: null},\r\n }\r\n },\r\n mounted() {\r\n const observe = (e) => this.initFixedCells('left').concat(this.initFixedCells('right'))\r\n $.lodash.each(observe(), v => new ResizeObserver(observe).observe(v))\r\n this.$el.setAttribute('w-scroll-x', 'left')\r\n if ($.br.chrome && $.br.chrome <= 60) { //低版本谷歌表格宽度有变化时,sticky的td内容会不可见。因此执行一个强制重新渲染的步骤\r\n new ResizeObserver(() => {\r\n this.$el.setAttribute('w-compact-resize-sticky', '')\r\n requestAnimationFrame(() => this.$el.removeAttribute('w-compact-resize-sticky'))\r\n }).observe(this.$el)\r\n }\r\n },\r\n methods: {\r\n initFixedCells(dir) {\r\n let sticky = null\r\n let offset = 0\r\n let fixedCells = $.lodash.map(this.$el.querySelector(`thead`).querySelectorAll(`td[w-fixed=\"${dir}\"]`))\r\n if (dir === 'right') fixedCells.reverse()\r\n fixedCells.forEach(td => {\r\n (sticky || (sticky = [])).push({colIndex: td.cellIndex, offset})\r\n offset += td.offsetWidth\r\n })\r\n this.sticky[dir] = sticky\r\n return fixedCells\r\n },\r\n html_slots() {\r\n return [\r\n this.slotHooks.thead, this.slotHooks.tbody, this.slotHooks.hiddens || [],\r\n ]\r\n },\r\n },\r\n computed: {\r\n slotHooks() {\r\n const a = {}\r\n this.slots_children().forEach(o => {\r\n let n = o.type.name && o.type.name.slice(2)\r\n if (n) {\r\n if (n === 'hidden') {\r\n (a.hiddens || (a.hiddens = [])).push(o)\r\n } else\r\n a[n] = o\r\n }\r\n })\r\n return a\r\n },\r\n colgroup() {\r\n return $.slotsChildren(this.slotHooks.columns.children).map(v => v.props)\r\n },\r\n html_class() {\r\n return ['f-flex-column', this.x.face && 'z-face-' + this.x.face]\r\n },\r\n html_style() {\r\n let r = {}\r\n if (this.sticky.left) {\r\n this.sticky.left.forEach(v => r[`--w-td-fixed-left-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n if (this.sticky.right) {\r\n this.sticky.right.forEach(v => r[`--w-td-fixed-right-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n return r\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-table {\r\n position: relative;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n }\r\n\r\n .w-table-tbl {\r\n table-layout: fixed;\r\n width: 100%;\r\n border-collapse: separate;\r\n }\r\n\r\n .w-thead {\r\n overflow: hidden;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-tr {\r\n height: 40px;\r\n }\r\n\r\n .w-td,\r\n .w-th {\r\n background: #fff;\r\n }\r\n\r\n .w-thead .w-td,\r\n .w-th {\r\n background: var(--w-thead-background-color);\r\n }\r\n\r\n .w-tbody .w-td {\r\n border-bottom: 1px solid var(--w-td-border-color);\r\n }\r\n\r\n .w-tr.z-on .w-td {\r\n background: var(--w--focus-light-color);\r\n }\r\n\r\n .w-th {\r\n font-weight: normal;\r\n }\r\n\r\n .w-th.z-sortable {\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort {\r\n height: 28px;\r\n line-height: 1;\r\n color: #aaa;\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort-up:before {\r\n position: relative;\r\n top: 1px;\r\n }\r\n\r\n .w-th-sort-down:before {\r\n position: relative;\r\n top: -4px;\r\n }\r\n\r\n .w-th.z-asc .w-th-sort-up {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-th.z-desc .w-th-sort-down {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-td {\r\n padding: 5px;\r\n }\r\n\r\n .w-td.z-align-left {\r\n text-align: left;\r\n }\r\n\r\n .w-td.z-align-center {\r\n text-align: center;\r\n }\r\n\r\n .w-td.z-align-right {\r\n text-align: right;\r\n }\r\n\r\n .w-td.z-valign-top {\r\n vertical-align: top;\r\n }\r\n\r\n .w-td.z-valign-middle {\r\n vertical-align: middle;\r\n }\r\n\r\n .w-td.z-valign-bottom {\r\n vertical-align: bottom;\r\n }\r\n\r\n .w-td>.w-triplebox>.w-input,\r\n .w-td>.w-radio>.w-input {\r\n min-height: auto;\r\n }\r\n\r\n .w-table.z-face-cell {\r\n border: 1px solid var(--w-table-border-color);\r\n }\r\n\r\n .w-table.z-face-cell .w-td {\r\n border: 0 solid var(--w-td-border-color, var(--w-table-border-color));\r\n border-right-width: 1px;\r\n border-bottom-width: 1px;\r\n }\r\n\r\n .w-table.z-face-cell .w-td-lastborder {\r\n border-right: 0;\r\n }\r\n\r\n .w-table.z-face-cell .w-tbody {\r\n margin-bottom: -1px;\r\n }\r\n\r\n .w-td-fixed-left,\r\n .w-td-fixed-right {\r\n position: sticky;\r\n z-index: 1;\r\n }\r\n\r\n .w-td-fixed-left-last:after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-td-fixed-right-first:after {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(-100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-left-last:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=right] .w-td-fixed-left-last:after {\r\n box-shadow: inset 10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=left] .w-td-fixed-right-first:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-right-first:after {\r\n box-shadow: inset -10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-compact-resize-sticky] .w-td-fixed-left,\r\n .w-table[w-compact-resize-sticky] .w-td-fixed-right {\r\n position: static;\r\n }\r\n \r\n</style>\n","import script from \"./Table.vue?vue&type=script&lang=js\"\nexport * from \"./Table.vue?vue&type=script&lang=js\"\n\nimport \"./Table.vue?vue&type=style&index=0&id=0024ac8a&lang=css\"\n\nexport default script","<script>\r\n export default {\r\n name: 'w-columns'\r\n }\r\n</script>\r\n\r\n","import script from \"./TableColumns.vue?vue&type=script&lang=js\"\nexport * from \"./TableColumns.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n export default {\r\n name: 'w-column',\r\n props: ['width', 'minWidth'],\r\n }\r\n</script>\r\n\r\n","import script from \"./TableColumn.vue?vue&type=script&lang=js\"\nexport * from \"./TableColumn.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['pub', 'current'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n methods: {\r\n inCurrent(target) {\r\n let c = this.x.current\r\n if (c == null) return\r\n if (Array.isArray(c)) {\r\n return -1 < c.findIndex(v => this.isCurrentChild(v, target))\r\n } else {\r\n return this.isCurrentChild(c, target)\r\n }\r\n },\r\n isCurrentChild(current, target) {\r\n if (typeof current === 'object') {\r\n let d = target.isWidget ? (target.x || target).data : (target.props && target.props.data)\r\n if (d) {\r\n for (let i in current)\r\n if ($.lodash.get(d, i) == current[i]) return true\r\n }\r\n } else if (current == (target.isWidget ? target.getKey() : target.key)) {\r\n return true\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./PubParent.vue?vue&type=script&lang=js\"\nexport * from \"./PubParent.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-thead',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['br', 'sort'],\r\n inject: ['_provideTable'],\r\n provide() {\r\n return {\r\n provideLeafLevel: -2,\r\n provideParentLeaf: null,\r\n provideInBody: false,\r\n _provideThead: this,\r\n _provideTBody: false,\r\n }\r\n },\r\n data() {\r\n return {\r\n rows: null,\r\n sortUID: null,\r\n }\r\n },\r\n methods: {\r\n isExpanded() {\r\n return true\r\n },\r\n slot_rows() {\r\n if (this.$slots.row) {\r\n let r\r\n let chd = this.x.children\r\n if (Array.isArray(chd)) {\r\n let i = 0\r\n r = chd.map(item => this.$slots.row({item}).map(t => $.lodash.set(t, 'props.rowIndex', i++)))\r\n }\r\n return r || []\r\n } else {\r\n return this.slots_children().map((vr, vi) => $.lodash.set(vr, 'props.rowIndex', vi))\r\n }\r\n },\r\n html_tbody() {\r\n let cg = this._provideTable.colgroup\r\n let rows = this.slot_rows()\r\n let style = {}\r\n if (!this._provideTable.fixed) {\r\n let mw = 0\r\n cg.forEach(c => {\r\n mw += $.number(c.width) || $.number(c['min-width'])\r\n })\r\n if (mw) {\r\n style.minWidth = $.unitSize(mw)\r\n }\r\n }\r\n this.rows = {}\r\n return h('div', {\r\n class: 'w-table-tbl-wrap'\r\n }, h('table', {\r\n ref: 'table',\r\n cellpadding: 0,\r\n cellspacing: 0,\r\n class: 'w-table-tbl',\r\n style,\r\n }, [\r\n //h('colgroup', null, cg.map(v => h('col', {style: {width: v.width == '*' ? null : $.unitSize(v.width)}}))),\r\n h('thead', null, h('tr', null, cg.map(v => h('td', {\r\n style: {\r\n width: v.width == '*' ? null : $.unitSize(v.width),\r\n minWidth: $.unitSize(v['min-width']),\r\n },\r\n 'w-fixed': v.fixed\r\n })))),\r\n h('tbody', rows)\r\n ]))\r\n },\r\n html_slots() {\r\n return this.html_tbody()\r\n }\r\n },\r\n computed: {\r\n isEscape() {\r\n return this.x.escape\r\n },\r\n }\r\n }\r\n</script>\n","import script from \"./TableTHead.vue?vue&type=script&lang=js\"\nexport * from \"./TableTHead.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import THead from './TableTHead.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-tbody',\r\n mixins: [THead, Scroll],\r\n inject: ['_provideTable'],\r\n props: ['children'],\r\n provide() {\r\n return {\r\n _provideThead: null,\r\n provideInBody: true,\r\n _provideTBody: this,\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this._provideTable.x, (x) => {\r\n this.x.scrollX = x.scrollX\r\n this.x.scrollY = this._provideTable.fixed ? true : x.scrollY\r\n }, {\r\n immediate: true\r\n })\r\n },\r\n methods: {\r\n\t\t\tgetCurrent() {\r\n\t\t\t const tr = $.q('.w-tr.z-on', this.el())[0]\r\n\t\t\t return tr && $(tr)\r\n\t\t\t},\r\n viewCurrent(f) {\r\n\t\t\t\tf = f || this.getCurrent()\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView({x: 'left'}))\r\n }\r\n },\r\n onScroll(e) {\r\n let hd = this._provideTable.slotHooks.thead\r\n if (hd) {\r\n hd.el.scrollLeft = e.target.scrollLeft\r\n }\r\n },\r\n onScrollPosition(v) {\r\n let el = this._provideTable.el()\r\n if (el && v == 'left' || v == 'center' || v == 'right') {\r\n el.setAttribute('w-scroll-x', v)\r\n }\r\n },\r\n onScrollAttributeChange(e) {\r\n let el = this._provideTable.el()\r\n if (el) {\r\n e.forEach(m => {\r\n let n = m.attributeName\r\n m.target.hasAttribute(n) ? el.setAttribute(n, '') : el.removeAttribute(n)\r\n })\r\n }\r\n },\r\n html_slots() {\r\n return this.html_scroll_slots(this.html_tbody())\r\n }\r\n },\r\n computed: {\r\n inBody() {\r\n return true\r\n },\r\n html_class() {\r\n return ['w-vertical f-flex-1 f-oh', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./TableTBody.vue?vue&type=script&lang=js\"\nexport * from \"./TableTBody.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n\r\n export default {\r\n name: 'w-tr',\r\n pubParentName: 'w-tbody,w-thead',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['rowIndex', 'expanded', 'children'],\r\n inject: ['_provideTable', 'providePubParent', 'provideInBody', '_provideTBody', 'provideLevel', 'provideParentTR'],\r\n provide() {\r\n return {\r\n provideParentTR: this,\r\n provideLevel: this.provideLevel + 1,\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n return $.hasChild(this.$slots, 'rows')\r\n },\r\n isDisplay() {\r\n if (!this.provideParentTR) return true\r\n let p = this\r\n while (p = p.provideParentTR) {\r\n if (!p.isExpanded()) return false\r\n }\r\n return true\r\n },\r\n isExpanded() {\r\n return this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentTR) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n toggle(exp, fn) {\r\n let leaf = this.query('.w-leaf')\r\n if (leaf) {\r\n leaf.toggle(exp, fn)\r\n } else {\r\n this.setExpanded(exp)\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n html_slots() {\r\n let ri = this.rowIndex\r\n let rs = this.pubParent.rows\r\n let ci = 0\r\n return this.slots_children().map(td => {\r\n if (rs[ri] && rs[ri][ci]) {\r\n ci += rs[ri][ci]\r\n }\r\n td.dfishColIndex = ci\r\n if (td.props) {\r\n if (td.props.rowspan > 1) {\r\n for (let j = 1, r; j < td.props.rowspan; j++) {\r\n r = rs[ri + j] || (rs[ri + j] = {})\r\n r[ci] = $.number(td.props.colspan) || 1\r\n }\r\n }\r\n if (td.props.colspan > 1) ci += td.props.colspan - 1\r\n }\r\n ci++;\r\n return td\r\n })\r\n },\r\n html() {\r\n if (this.x.children && Array.isArray(this.x.children) && this._provideTBody && this._provideTBody.$slots.row) {\r\n return [this.html_self(true), this.x.children.map(item => this._provideTBody.$slots.row({item}))]\r\n }\r\n return this.$slots.row ? [this.html_self(true), this.$slots.row()] : this.html_self()\r\n },\r\n },\r\n computed: {\r\n tagName() {\r\n return 'tr'\r\n },\r\n level() {\r\n return this.provideLevel + 1\r\n },\r\n isEscape() {\r\n return this.pubParent.x.escape\r\n },\r\n inCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n if (this.provideInBody) {\r\n return {\r\n class: {\r\n 'z-on': this.inCurrent,\r\n 'z-expanded': this.isExpanded(),\r\n 'f-hide': !this.isDisplay()\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: this.onmouseleave\r\n }\r\n }\r\n \r\n }\r\n },\r\n mounted() {\r\n if (this.inCurrent) this.pubParent.viewCurrent(this)\r\n }\r\n\r\n }\r\n</script>\n","import script from \"./TableTR.vue?vue&type=script&lang=js\"\nexport * from \"./TableTR.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import {h} from 'vue'\r\n \r\n export default {\r\n name: 'w-td',\r\n props: ['colspan', 'rowspan', 'align', 'valign', 'data'],\r\n inject: ['_provideTable', 'provideInBody'],\r\n methods: {\r\n td_props() {\r\n let ci = this.$.vnode.dfishColIndex\r\n let col = this._provideTable.colgroup[ci] || false\r\n let len = this._provideTable.colgroup.length\r\n let colspan = this.colspan\r\n if (colspan == -1) {\r\n colspan = len\r\n }\r\n let last = ci + (colspan || 1) == len\r\n return {\r\n class: ['w-td',\r\n last && 'w-td-lastborder',\r\n this.provideInBody && col.class, \r\n col.fixed && {\r\n [`w-td-fixed-${col.fixed}`]: true, \r\n [`w-td-fixed-left-last`]: col.fixed === 'left' && (this._provideTable.colgroup[ci + 1] && this._provideTable.colgroup[ci + 1].fixed != col.fixed),\r\n [`w-td-fixed-right-first`]: col.fixed === 'right' && (this._provideTable.colgroup[ci - 1] && this._provideTable.colgroup[ci - 1].fixed != col.fixed),\r\n }\r\n ],\r\n style: [this.provideInBody && col.style, col.fixed && {[`${col.fixed}`]: `var(--w-td-fixed-${col.fixed}-${ci})`}],\r\n colspan,\r\n rowspan: this.rowspan,\r\n align: this.align || col.align,\r\n valign: this.valign || col.valign,\r\n }\r\n }\r\n },\r\n render() {\r\n return h('td', this.td_props(), this.$slots)\r\n }\r\n }\r\n</script>\r\n","import script from \"./TableTD.vue?vue&type=script&lang=js\"\nexport * from \"./TableTD.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import TD from './TableTD.vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-th',\r\n mixins: [TD, WidgetBase],\r\n props: ['sortable', 'sortOrders', 'sortOrderDefault'],\r\n inject: ['_provideThead'],\r\n emits: ['click:sort'],\r\n data() {\r\n return {\r\n sortType: null,\r\n sortOrder: null,\r\n }\r\n },\r\n methods: {\r\n onClick(e) {\r\n if (this.x.sortable) {\r\n this.clickSort(e, 'toggle')\r\n }\r\n },\r\n clickSort(e, order) {\r\n e.stopPropagation()\r\n let o = this.sortOrder\r\n if(this._provideThead.sortUID != this.uid) {\r\n o = null\r\n }\r\n let orders = this.x.sortOrders || ['asc', 'desc', null]\r\n if (order === 'toggle') {\r\n let i = orders.indexOf(o)\r\n o = orders[i < 0 || i == 2 ? 0 : i + 1]\r\n } else {\r\n o = o == order ? null : order\r\n }\r\n this.sortOrder = o\r\n this._provideThead.sortUID = this.uid\r\n e.value = o\r\n this.$emit('click:sort', e, o)\r\n },\r\n html_slots() {\r\n return h(Horizontal, {class: 'w-th-wrap', valign: 'middle', align: this.align || this.col.align}, {default: () => [\r\n h('div', {class: 'w-th-title'}, this.$slots),\r\n this.x.sortable ? h('div', {class: 'w-th-sort f-flex-column f-flex-center f-oh'}, [\r\n h('i', {class: 'f-i f-i-caret-up f-oh w-th-sort-up', onClick: e => this.clickSort(e, 'asc')}),\r\n h('i', {class: 'f-i f-i-caret-down f-oh w-th-sort-down', onClick: e => this.clickSort(e, 'desc')}),\r\n ]) : []\r\n ]})\r\n }\r\n },\r\n computed: {\r\n col() {\r\n return this._provideTable.colgroup[this.$.vnode.dfishColIndex] || false\r\n },\r\n tagName() {\r\n return 'th'\r\n },\r\n html_props() {\r\n return mergeProps(this.td_props(), {\r\n class: {'z-sortable': this.x.sortable, [`z-${this.sortOrder}`]: this.sortOrder && this._provideThead.sortUID == this.uid},\r\n onClick: this.onClick,\r\n }) \r\n },\r\n }\r\n }\r\n</script>\r\n","import script from \"./TableTH.vue?vue&type=script&lang=js\"\nexport * from \"./TableTH.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-grid',\r\n mixins: [Scroll],\r\n props: ['columns', 'rows', 'gap', 'defaultColspan', 'face'],\r\n methods: {\r\n x_default() {\r\n return {\r\n columns: 12,\r\n gap: 0,\r\n }\r\n },\r\n html_slots() {\r\n return this.x.scrollX || this.x.scrollY ? this.html_scroll_slots() : h('div', {\r\n class: 'w-grid-cont',\r\n style: this.html_scroll_cont_style,\r\n }, this.$slots)\r\n },\r\n },\r\n computed: {\r\n html_props() {\r\n return {\r\n class: [this.x.rows ? 'z-full' : 'z-auto', this.x.face && 'z-face-' + this.x.face, this.html_scroll_class],\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let cols = this.x.columns\r\n if ($.isNumber(cols)) cols = `repeat(${cols}, 1fr)`\r\n let rows = this.x.rows\r\n if ($.isNumber(rows)) rows = `repeat(${rows}, 1fr)`\r\n let dc = this.x.defaultColspan\r\n return {\r\n 'grid-template-columns': cols,\r\n 'grid-template-rows': rows,\r\n 'grid-gap': this.x.gap ? $.unitSize(this.x.gap) : '',\r\n '--w-grid-colspan': (dc == -1 || dc == null ? '' : `span ${dc}`),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-grid {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont {\r\n display: grid;\r\n grid-auto-flow: row;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont>*,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont>* {\r\n grid-column: var(--w-grid-colspan, 1 / -1);\r\n grid-row: var(--w-grid-rowspan);\r\n }\r\n\r\n .w-grid.z-full>.w-grid-cont {\r\n height: 100%;\r\n }\r\n\r\n .w-grid.w-scroll.z-auto>.w-scroll-overflow>.w-scroll-cont {\r\n min-height: auto;\r\n }\r\n\r\n .w-grid.z-face-cell {\r\n border-top: 1px solid var(--w-grid-cell-border-color);\r\n border-left: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-formbase {\r\n align-items: stretch;\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n border-bottom: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n \r\n .w-grid.z-face-cell .w-td > .w-formbase {\r\n border-right: 0;\r\n border-bottom: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-label {\r\n background: var(--w-grid-cell-label-background-color);\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-input-border,\r\n .w-grid.z-face-cell .w-input .w-formbase {\r\n border: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload {\r\n align-items: stretch;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload>.w-input {\r\n padding: 10px;\r\n justify-content: center;\r\n }\r\n\r\n .w-grid.z-face-cell .w-imageupload>.w-input,\r\n .w-grid.z-face-cell .w-mediaupload>.w-input {\r\n padding: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-form>.w-input,\r\n .w-grid.z-face-cell .w-switch>.w-input,\r\n .w-grid.z-face-cell .w-radiogroup>.w-input,\r\n .w-grid.z-face-cell .w-checkboxgroup>.w-input {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-boxgroup-grid {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-grid.z-face-cell .w-combobox-list {\r\n padding-left: 5px;\r\n }\r\n</style>\r\n","import script from \"./Grid.vue?vue&type=script&lang=js\"\nexport * from \"./Grid.vue?vue&type=script&lang=js\"\n\nimport \"./Grid.vue?vue&type=style&index=0&id=5e2b9c3a&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-swiper-item',\r\n pubParentName: 'w-swiper',\r\n inject: ['providePubParent'],\r\n mixins: [WidgetBase],\r\n props: ['lazy'],\r\n data() {\r\n return {\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n lazy: true\r\n }\r\n },\r\n html_slots() {\r\n if (this.loaded || !this.lazy) {\r\n return this.$slots\r\n }\r\n if (this.isCurrent) {\r\n this.loaded = true\r\n return this.$slots\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {'z-on': this.isCurrent}\r\n },\r\n isCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./SwiperItem.vue?vue&type=script&lang=js\"\nexport * from \"./SwiperItem.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-swiper',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['arrow', 'indicatorDots', 'duration'],\r\n data() {\r\n return {\r\n focusIndex: null,\r\n }\r\n },\r\n watch: {\r\n current(v) {\r\n this.setFocus(v)\r\n },\r\n },\r\n methods: {\r\n //@a -> key, index\r\n setFocus(a) {\r\n let s = this.slots_children()\r\n let c = s.findIndex(v => this.isCurrentChild(a, v))\r\n this.focusIndex = c\r\n },\r\n clickArrow(a) {\r\n this.focusIndex += a\r\n },\r\n clickIndicator(a) {\r\n this.focusIndex = a\r\n },\r\n html_slots() {\r\n if (this.focusIndex == null) {\r\n this.setFocus(this.x.current)\r\n }\r\n let v = this.x.vertical\r\n let a = v ? 'up' : 'left'\r\n let b = v ? 'down' : 'right'\r\n return [\r\n h('div', {\r\n class: 'w-swiper-cont',\r\n ref: 'cont',\r\n }, this.$slots),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + a,\r\n onclick: e => this.clickArrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + a\r\n })),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + b,\r\n onclick: e => this.clickArrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + b\r\n })),\r\n this.x.indicatorDots && h('div', {\r\n class: 'w-swiper-indicator f-flex-center',\r\n }, this.slots_children().map((v, i) => h('div', {\r\n class: 'w-swiper-indicator-dot' + (i == this.focusIndex ? ' z-on' : ''),\r\n onclick: e => this.clickIndicator(i)\r\n })))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n let i = this.focusIndex\r\n return {\r\n 'z-at-first': i == 0,\r\n 'z-at-last': i > -1 && i == this.slots_children().length - 1\r\n }\r\n },\r\n html_style() {\r\n let i = this.focusIndex\r\n return {\r\n '--w-swiper-translate-x': (-i * 100) + '%',\r\n '--w-swiper-transition': this.x.duration ? `transform ${this.x.duration}ms` : 0,\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.cont) {\r\n new MutationObserver(() => {\r\n this.setFocus(this.x.current)\r\n }).observe(this.$refs.cont, {\r\n childList: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-swiper {\r\n position: relative;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-swiper-cont {\r\n display: flex;\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n\r\n .w-swiper-item {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n left: var(--w-swiper-translate-x);\r\n transition: var(--w-swiper-transition);\r\n }\r\n\r\n .w-swiper-item>* {\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-left,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-right,\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-up,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-down {\r\n display: none\r\n }\r\n\r\n .w-swiper-arrow {\r\n position: absolute;\r\n margin: auto;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-arrow.z-left {\r\n width: 40px;\r\n right: auto\r\n }\r\n\r\n .w-swiper-arrow.z-right {\r\n width: 40px;\r\n left: auto\r\n }\r\n\r\n .w-swiper-arrow.z-up {\r\n height: 40px;\r\n bottom: auto\r\n }\r\n\r\n .w-swiper-arrow.z-down {\r\n height: 40px;\r\n top: auto\r\n }\r\n\r\n .w-swiper-arrow .f-i {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 36px;\r\n color: #ccc\r\n }\r\n\r\n .w-swiper-arrow:hover {\r\n background: rgba(0, 0, 0, .1)\r\n }\r\n\r\n .w-swiper-arrow:hover .f-i {\r\n color: #fff\r\n }\r\n\r\n .w-swiper-indicator {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: 10px;\r\n text-align: center\r\n }\r\n\r\n .w-swiper-indicator-dot {\r\n width: 9px;\r\n height: 9px;\r\n margin: 0 4px;\r\n background-color: #bbb;\r\n border-radius: 10px;\r\n vertical-align: middle;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-indicator-dot.z-on {\r\n background-color: #333\r\n }\r\n</style>\n","import script from \"./Swiper.vue?vue&type=script&lang=js\"\nexport * from \"./Swiper.vue?vue&type=script&lang=js\"\n\nimport \"./Swiper.vue?vue&type=style&index=0&id=385a8e70&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Horizontal from './Horizontal.vue'\r\n import PubParent from './PubParent.vue'\r\n\r\n export default {\r\n name: 'w-buttonbar',\r\n mixins: [Horizontal, PubParent],\r\n props: ['vertical', 'clickTab'],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n valign: this.vertical ? null : 'middle'\r\n }\r\n },\r\n html_slots() { \r\n let s\r\n if (this.$slots.split) {\r\n let a = this.slots_children()\r\n let b = this.$slots.split()\r\n s = []\r\n for (let i = 0, l = a.length; i < l; i++) {\r\n s.push(a[i])\r\n if (i < l - 1) s.push(b)\r\n }\r\n }\r\n return this.html_scroll_slots(s)\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return this.x.vertical ? 'v' : 'h'\r\n },\r\n html_class() {\r\n return [this.x.vertical ? 'w-vertical' : 'w-horizontal']\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./ButtonBar.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonBar.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import Button from './Button.vue'\r\n export default {\r\n mixins: [Button],\r\n computed: {\r\n html_class() {\r\n return 'w-tab'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-tab {\r\n background: #f8f8f8;\r\n }\r\n .w-tab.z-on {\r\n background: #fff;\r\n }\r\n</style>\r\n","import script from \"./TabButton.vue?vue&type=script&lang=js\"\nexport * from \"./TabButton.vue?vue&type=script&lang=js\"\n\nimport \"./TabButton.vue?vue&type=style&index=0&id=db7c48b8&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import TabButton from './TabButton.vue'\r\n import Swiper from './Swiper.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-tabs',\r\n mixins: [WidgetBase],\r\n props: ['current', 'position', 'gap'],\r\n methods: {\r\n x_default() {\r\n return {\r\n position: 'top',\r\n gap: -1\r\n }\r\n },\r\n clickTab(tab) {\r\n this.x.current = tab.getKey()\r\n },\r\n html_slots() {\r\n let buttons = []\r\n let pages = []\r\n let pos = this.x.position\r\n this.slots_children().forEach((v, i) => {\r\n if (!v.props || v.props.key == null) {\r\n $.lodash.set(v, 'props.key', i)\r\n }\r\n buttons.push(h(TabButton, v.props))\r\n pages.push(h(SwiperItem, {lazy: v.props.lazy == null ? true : v.props.lazy, key: v.props.key}, v.children))\r\n })\r\n return [\r\n h(ButtonBar, {\r\n class: 'w-tabs-buttonbar',\r\n current: this.x.current,\r\n gap: this.x.gap,\r\n vertical: pos == 'left' || pos == 'right',\r\n scrollX: this.x.scrollX,\r\n scrollY: this.x.scrollY,\r\n clickTab: this.clickTab\r\n }, {default: () => buttons}),\r\n h(Swiper, {class: 'w-tabs-swiper f-flex-1 f-oh', current: this.x.current}, {default: () => pages}),\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n let pos = this.x.position\r\n return 'f-oh f-flex' + (pos == 'top' || pos == 'bottom' ? '-column' : '') + ' z-pos-' + pos\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n .w-tabs-buttonbar {\r\n position: relative;\r\n background: #f5f5f5;\r\n }\r\n \r\n .w-tabs-buttonbar:after {\r\n content: '';\r\n position: absolute;\r\n background: #ddd;\n }\r\n \r\n .w-tab.z-on {\r\n position: relative;\r\n z-index: 1;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar > .w-tab {\r\n border-top: 0;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-bottom-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-top > .w-tabs-buttonbar:after {\r\n width: 100%;\r\n height: 1px;\r\n bottom: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar {\r\n order: 1;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-swiper {\r\n order: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar:after {\r\n width: 100%;\r\n height: 1px;\r\n top: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar > .w-tab {\r\n border-bottom: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-bottom > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-top-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-right-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar:after {\r\n width: 1px;\r\n height: 100%;\r\n right: 0;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar > .w-tab {\r\n border-left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-left > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-top: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar {\r\n order: 1;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-swiper {\r\n order: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar > .w-tab.z-on {\r\n border-left-color: #fff;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar:after {\r\n width: 1px;\r\n height: 100%;\r\n left: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar > .w-tab {\r\n border-right: 0;\r\n }\r\n \r\n .w-tabs.z-pos-right > .w-tabs-buttonbar > .w-tab:first-child {\r\n border-top: 0;\r\n }\r\n \r\n \r\n</style>\r\n","import script from \"./Tabs.vue?vue&type=script&lang=js\"\nexport * from \"./Tabs.vue?vue&type=script&lang=js\"\n\nimport \"./Tabs.vue?vue&type=style&index=0&id=554c0a38&lang=css\"\n\nexport default script","<script>\r\n export default {\r\n name: 'w-tab',\r\n }\r\n</script>\r\n\r\n","import script from \"./Tab.vue?vue&type=script&lang=js\"\nexport * from \"./Tab.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Horizontal from './Horizontal.vue'\r\n import PubParent from './PubParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-album',\r\n mixins: [Horizontal, PubParent],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n br: true,\r\n valign: 'top',\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-horizontal'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./Album.vue?vue&type=script&lang=js\"\nexport * from \"./Album.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Button from './Button.vue'\r\n\r\n export default {\r\n name: 'w-submitbutton',\r\n pubParentName: 'w-buttonbar',\r\n mixins: [Button],\r\n computed: {\r\n html_class() {\r\n return 'w-button'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n \r\n</style>\r\n","import script from \"./SubmitButton.vue?vue&type=script&lang=js\"\nexport * from \"./SubmitButton.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-html',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['line'],\r\n computed: {\r\n html_props() {\r\n let line = this.x.line\r\n return {\r\n class: [\r\n (this.x.align || this.x.valign) && 'w-horizontal',\r\n line != null && 'f-line',\r\n this.html_align_class\r\n ],\r\n style: line != null && {\r\n '-webkit-line-clamp': line\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-html {\r\n box-sizing: border-box;\r\n flex-wrap: wrap;\r\n }\r\n</style>\n","import script from \"./Html.vue?vue&type=script&lang=js\"\nexport * from \"./Html.vue?vue&type=script&lang=js\"\n\nimport \"./Html.vue?vue&type=style&index=0&id=612320da&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n mergeProps\r\n } from 'vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import SrcParent from './SrcParent.vue'\r\n\r\n\r\n export default {\r\n name: 'w-tree',\r\n mixins: [Scroll, PubParent, SrcParent],\r\n emits: ['click:item'],\r\n provide() {\r\n return {\r\n provideLevel: -1,\r\n provideParentLeaf: null,\r\n provideParentTR: null,\r\n }\r\n },\r\n methods: {\r\n getCurrent() {\r\n const leaf = $.q('.w-leaf.z-on', this.el())[0]\r\n return leaf && $(leaf)\r\n },\r\n viewCurrent(f) {\r\n f = f || this.getCurrent()\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView())\r\n }\r\n },\r\n html_slots() {\r\n let r\r\n let chd = this.x.children\r\n if (this.$slots.default) {\r\n if (Array.isArray(chd)) {\r\n r = chd.map(item => this.$slots.default({item}))\r\n } else {\r\n r = []\r\n }\r\n }\r\n return this.html_scroll_slots(r)\r\n }\r\n },\r\n computed: {\r\n level() {\r\n return -1\r\n },\r\n html_props() {\r\n return {\r\n class: this.html_scroll_class\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.children) this.request()\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-tree {\r\n text-align: left;\r\n box-sizing: border-box;\r\n }\r\n\r\n</style>\r\n","import script from \"./Tree.vue?vue&type=script&lang=js\"\nexport * from \"./Tree.vue?vue&type=script&lang=js\"\n\nimport \"./Tree.vue?vue&type=style&index=0&id=53bcfba2&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-label',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['text', 'suffix', 'vertical'],\r\n methods: {\r\n html_slots() {\r\n return h('label', {class: 'w-label-text'}, \r\n h('span', this.$slots.default ? this.$slots.default() : this.x.text + (this.x.suffix == null ? '' : this.x.suffix)))\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n this.x.vertical && (this.$parent.labelVertical = true)\r\n return ['f-oh f-br' + (this.x.vertical ? ' z-vertical' : ''), this.html_align_class]\r\n },\r\n html_style() {\r\n return {\r\n width: null,\r\n '--label-width': this.x.width && $.unitSize(this.x.width)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import script from \"./Label.vue?vue&type=script&lang=js\"\nexport * from \"./Label.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Label from './Label.vue'\r\n import {tipCache} from './Tip.vue'\r\n\r\n const _validate_dft_value = {\r\n required: true,\r\n beforeNow: true,\r\n afterNow: true\r\n }\r\n\r\n\r\n export default {\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['name', 'value', 'modelValue', 'placeholder', 'label', 'readonly', 'readonlyValidate', 'disabled', 'required',\r\n 'validateDefault', 'validateHandler', 'inputWidth', 'inputHeight' ],\r\n emits: ['update:modelValue', 'change', 'blur', 'focus'],\r\n data() {\r\n let mv = this.modelValue\r\n return {\r\n isFormWidget: true,\r\n isFocus: false,\r\n hasBorder: false,\r\n isPlural: false,\r\n warnClass: '',\r\n labelVertical: false,\r\n modifiedValue: mv,\r\n defaultValue: mv,\r\n placeholder_type: '',\r\n }\r\n },\r\n methods: {\r\n val(v) {\r\n if (arguments.length == 0)\r\n return this.x.modelValue\r\n let ov = this.x.modelValue\r\n this.x.modelValue = v\r\n let changed = ov !== v\r\n if (typeof ov === 'object') {\r\n changed = JSON.stringify(ov) != JSON.stringify(v)\r\n }\r\n if (changed) {\r\n this.warnClass && this.warn(false)\r\n if (this.isUsableVal(v)) {\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n }\r\n }\r\n return v\r\n },\r\n formVal() {\r\n return this.input_value\r\n },\r\n isUsableVal(v) { //implement\r\n return true \r\n },\r\n defaultRuleValue(name) {\r\n let r = this.rules[name]\r\n if (r != null) {\r\n if (Array.isArray(r)) {\r\n r = r[0]\r\n }\r\n return r && r.value ? r.value : r\r\n }\r\n },\r\n valid(trigger) {\r\n let e = this.getValidError(trigger)\r\n if (e) {\r\n this.warn()\r\n this.showErrorTip(e.text)\r\n }\r\n return !e\r\n },\r\n getValidError(trigger, val) {\r\n let ques = trigger ? this.validTriggers[trigger] : this.validQueues\r\n if (ques && (this.isNormal || (this.isReadonly && this.x.readonlyValidate))) {\r\n let v = val !== undefined ? val : this.isPlural ? this.groupFormVal() : this.formVal()\r\n if (typeof v !== 'string')\r\n v = Array.isArray(v) ? v.join(',') : v == null ? '' : ('' + v);\r\n v = v.trim()\r\n let hs = this.validHooks\r\n for (let q of ques) {\r\n let rv = typeof q.rule !== 'object' ? q.rule : q.rule.value !== undefined ? q.rule.value : q.rule\r\n let e = hs[q.type](v, rv, q)\r\n if (e) return e\r\n }\r\n }\r\n },\r\n formErr(que, arg) {\r\n let label = this.getLabelText()\r\n let type = que.type\r\n let text = que.rule && que.rule.text\r\n if (!text) {\r\n text = $.loc.ps.apply(null, [$.loc.form[type], label || ''].concat(arg != null && arg !== '' ? arg : [])) || ''\r\n }\r\n return {\r\n wid: this.uid,\r\n name: this.x.name,\r\n type,\r\n label,\r\n text,\r\n }\r\n },\r\n warn(a) {\r\n let w = typeof a === 'string' ? a : a !== false ? 'z-err' : ''\r\n this.warnClass = w\r\n if (!w && this._tip) {\r\n\t\t\t\t\tthis.pop('w-tip', false)\r\n\t\t\t\t\tthis._tip = null\r\n }\r\n },\r\n showErrorTip(text) {\r\n this.scrollIntoView({\r\n ease: 200,\r\n success: () => {\r\n this._tip = this.pop('w-tip', {\r\n text,\r\n face: 'warn',\r\n independent: true,\r\n snap: {\r\n target: this.errorTipTarget\r\n }\r\n })\r\n }\r\n })\r\n },\r\n focus() {\r\n this.$refs.v.focus()\r\n return this\r\n },\r\n formText() {\r\n let t = this.val()\r\n return t == null ? '' : t\r\n },\r\n getLabelText() {\r\n let t = this.x.label || (this.pubParent && this.pubParent.x.label)\r\n return t ? (t.text || t) : ''\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n },\r\n baseFocus(e) {\r\n this.isFocus = true\r\n this.warn(false)\r\n this.trigger(e)\r\n },\r\n baseBlur(e) {\r\n if (!this.isFocusTarget(e.relatedTarget)) this.isFocus = false\r\n this.trigger(e)\r\n setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) {\r\n let time = new Date().getTime()\r\n if (time - tipCache.time > 100) this.valid('blur')\r\n }\r\n }, 100)\r\n },\r\n snapElem() {\r\n return this.el('main')\r\n },\r\n hasBubble(a) {\r\n return this.snapElem().contains(a.isWidget ? a.el() : a)\r\n },\r\n isFocusTarget(el) {\r\n // implement\r\n },\r\n // @original: 检测表单是否有修改,对照参考的值为初始值\r\n isModified(original) {\r\n let dv = original ? this.defaultValue : this.modifiedValue\r\n let mv = this.x.modelValue\r\n if (dv == null) dv = ''\r\n if (mv == null) mv = ''\r\n if (dv == mv)\r\n return false\r\n return JSON.stringify(dv) != JSON.stringify(mv)\r\n },\r\n // @original: 设置为true,修改初始值\r\n saveModified(original) {\r\n this.modifiedValue = $.lodash.clone(this.x.modelValue)\r\n if (original) {\r\n this.defaultValue = this.modifiedValue\r\n }\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n this.val(empty || this.defaultValue == null ? '' : this.defaultValue)\r\n },\r\n html_label() {\r\n return this.$slots.label ? this.$slots.label() : (this.x.label && typeof this.x.label === 'object' && h(Label,\r\n this.x.label))\r\n },\r\n html_input() {\r\n return h(this.input_tag, {\r\n class: 'w-input-value',\r\n ref: 'v',\r\n id: this.uid + 'v',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n readonly: this.isReadonly,\r\n disabled: this.isDisabled,\r\n placeholder: this.input_placeholder,\r\n autocomplete: 'off', //off, nope, new-password\r\n //list: 'autocompleteOff',\r\n //role: 'presentation',\r\n oninput: this.oninput,\r\n onfocus: this.baseFocus,\r\n onblur: this.baseBlur,\r\n ...this.input_prop,\r\n })\r\n },\r\n html_input_hidden() {\r\n return this.x.name ? h('input', {\r\n type: 'hidden',\r\n ref: 'v',\r\n name: this.input_name,\r\n value: this.input_value,\r\n disabled: this.x.disabled,\r\n }) : []\r\n },\r\n html_button() {\r\n return []\r\n },\r\n html_form() {\r\n return [\r\n this.slot('prepend'),\r\n this.html_input(),\r\n this.html_button(),\r\n this.slot('append'),\r\n ]\r\n },\r\n html_main() {\r\n let fh = this.x.inputHeight && $.unitSize(this.x.inputHeight)\r\n return h('div', mergeProps({\r\n ref: 'main',\r\n id: this.uid + 'main',\r\n class: ['w-input', {\r\n 'w-input-border': this.hasBorder,\r\n [`f-${this.dir}-gap`]: $.br.compat.gap,\r\n }],\r\n style: {\r\n 'height': fh\r\n },\r\n title: this.input_title\r\n }, this.main_prop), this.html_form())\r\n },\r\n html_slots() {\r\n return [this.html_label(), this.html_main(), this.slot('after'), this.slot('dialog')]\r\n }\r\n },\r\n computed: {\r\n rules() {\r\n return this.x\r\n },\r\n pubValidHooks() {\r\n return {\r\n required: (v, rule, que) => {\r\n if (rule && !v) return this.formErr(que)\r\n },\r\n pattern: (v, rule, que) => {\r\n if (v && (typeof rule === 'string' ? !$.eval(`${rule}.test(v)`, {rule, v}) : !rule.test(v)))\r\n return this.formErr(que)\r\n },\r\n validateHandler: (v, rule) => {\r\n let text = rule && rule(v)\r\n if (text) {\r\n return this.formErr({type: 'validateHandler', rule: {text}})\r\n }\r\n }\r\n }\r\n },\r\n validHooks() {\r\n return this.pubValidHooks\r\n },\r\n validQueues() {\r\n let r = []\r\n let type = 'validateDefault'\r\n if (this.validHooks[type]) r.push({type})\r\n for(let k in this.validHooks) {\r\n if (!r.includes(k)) {\r\n let rule = this.rules[k]\r\n if (rule != null) {\r\n if (Array.isArray(rule)) {\r\n rule.forEach(item => r.push({type: k, rule: item}))\r\n } else {\r\n r.push({type: k, rule})\r\n }\r\n }\r\n }\r\n }\r\n return r\r\n },\r\n validTriggers() {\r\n let r = {}\r\n Object.keys(this.validHooks).forEach(k => {\r\n let d = this.rules[k]\r\n if (d) {\r\n if (Array.isArray(d)) {\r\n for (let e of d) {\r\n if (e.trigger) {\r\n (r[e.trigger] || (r[e.trigger] = [])).push({type: k, rule: e})\r\n }\r\n }\r\n } else if (d.trigger) {\r\n (r[d.trigger] || (r[d.trigger] = [])).push({type: k, rule: d})\r\n }\r\n }\r\n })\r\n return r\r\n },\r\n input_value() {\r\n return this.x.modelValue\r\n },\r\n input_name() {\r\n return this.x.name\r\n },\r\n input_tag() {\r\n return 'input'\r\n },\r\n input_type() {\r\n return 'text'\r\n },\r\n input_title() {\r\n // implement\r\n },\r\n input_prop() {\r\n // implement\r\n },\r\n input_placeholder() {\r\n if (!this.isNormal) return;\r\n let s = this.x.placeholder\r\n if (s == null && $.x.autoPlaceholder && this.x.label) {\r\n s = $.loc.ps($.loc[this.placeholder_type || 'placeholder_input'], (this.x.label.text || this.x.label))\r\n }\r\n return s\r\n },\r\n main_prop() {\r\n // implement\r\n },\r\n isNormal() {\r\n return !this.isReadonly && !this.isDisabled\r\n },\r\n isDisabled() {\r\n return this.x.disabled\r\n },\r\n isReadonly() {\r\n return this.x.readonly\r\n },\r\n errorTipTarget() {\r\n return this\r\n },\r\n html_on() {\r\n // implement\r\n },\r\n html_props() {\r\n let fw = this.x.inputWidth && $.unitSize(this.x.inputWidth)\r\n return {\r\n class: ['w-formbase', this.warnClass, this.html_align_class, {\r\n 'z-on': this.isFocus,\r\n 'z-ds': !this.isNormal,\r\n 'z-req': this.rules.required,\r\n 'z-label-vertical': this.labelVertical,\r\n 'z-fixed': !!fw,\r\n 'z-full': this.x.inputWidth === '*'\r\n }],\r\n style: fw && {\r\n '--w-input-width': fw\r\n },\r\n //'w-input-width': this.x.inputWidth,\r\n ...this.html_on\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-label {\r\n display: flex;\r\n align-items: center;\r\n padding-right: 10px;\r\n flex-shrink: 0;\r\n justify-content: flex-end;\r\n box-sizing: border-box;\r\n width: var(--v-label-width, var(--label-width));\r\n }\r\n\r\n .w-label.z-vertical {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-label-text {\r\n text-align: right;\r\n }\r\n\r\n .w-formbase {\r\n display: flex;\r\n box-sizing: border-box;\r\n align-items: center;\r\n }\r\n\r\n .w-input {\r\n display: flex;\r\n box-sizing: border-box;\r\n min-height: 32px;\r\n overflow: hidden;\r\n align-items: center;\r\n flex: 1;\r\n flex-shrink: 1;\r\n flex-basis: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-label-vertical {\r\n display: block;\r\n }\r\n\r\n .w-formbase.z-label-vertical>.w-input {\r\n max-width: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-fixed>.w-input {\r\n flex-grow: 0;\r\n }\r\n\r\n .w-input-border {\r\n border: 1px solid #ddd;\r\n box-sizing: border-box;\r\n background: #fff;\r\n }\r\n\r\n .w-input-bbr {\r\n display: flex;\r\n flex-shrink: 0;\r\n width: 26px;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 16px;\r\n cursor: pointer;\r\n }\r\n\r\n .w-input-bbr.f-i-caret-down {\r\n font-size: 18px;\r\n }\r\n\r\n .w-input-bbr button {\r\n width: 100%;\r\n }\r\n\r\n .w-input-main button:hover {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-input-bbr,\r\n .w-input-bbr button,\r\n .w-input-main button:disabled {\r\n color: #a3a3a3;\r\n }\r\n\r\n .w-formbase.z-on>.w-input-border,\r\n .w-input-border.z-drop {\r\n border-color: var(--w--focus-color);\r\n }\r\n\r\n .w-input-value {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-input-border>.w-input-value {\r\n width: 100%;\r\n border: 0;\r\n padding: 1px 0 1px 10px;\r\n background: transparent;\r\n }\r\n\r\n input::placeholder,\r\n textarea::placeholder,\r\n .w-input-placeholder {\r\n color: #a6a6a6;\r\n }\r\n\r\n .w-dropbox-text {\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding-left: 10px;\r\n text-align: left;\r\n }\r\n \r\n .w-dropbox-dialog.z-mob {\r\n max-width: calc(100% - 40px);\r\n max-height: calc(100% - 100px);\r\n }\r\n\r\n .w-textarea .w-input-border>.w-input-value {\r\n height: 100%;\r\n padding: 5px 10px;\r\n box-sizing: border-box;\r\n font-family: inherit;\r\n }\r\n\r\n .w-textarea .w-input-border {\r\n height: 100%;\r\n }\r\n\r\n .w-checkbox,\r\n .w-triplebox,\r\n .w-radio {\r\n margin: 0\r\n }\r\n\r\n .w-triplebox {\r\n display: inline-flex;\r\n justify-content: center;\r\n }\r\n\r\n .w-checkboxgroup>.w-input,\r\n .w-radiogroup>.w-input {\r\n flex-wrap: wrap;\r\n padding-top: 3px;\r\n padding-bottom: 3px;\r\n gap: var(--w-boxgroup-gap, 10px);\r\n --w-compat-gap: var(--w-boxgroup-gap, 10px);\r\n }\r\n\r\n .w-boxgroup-grid {\r\n flex: 1;\r\n display: grid;\r\n grid-template-columns: auto 1fr;\r\n align-items: center;\r\n grid-gap: var(--w-boxgroup-gap);\r\n }\r\n\r\n .w-checkbox-target>*,\r\n .w-radio-target>* {\r\n width: 100%;\r\n }\r\n\r\n .w-checkboxgroup>.w-input>.w-checkbox>.w-input,\r\n .w-radiogroup>.w-input>.w-radio>.w-input {\r\n min-height: auto;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-checkbox-text,\r\n .w-radio-text,\r\n .w-triplebox-text {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-checkbox-appear,\r\n .w-radio-appear,\r\n .w-triplebox-appear {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n border: 1px solid #ccc;\r\n box-sizing: border-box;\r\n line-height: 0;\r\n color: var(--w--focus-color);\r\n background-color: #fff;\r\n box-shadow: 0 1px 2px rgb(0 0 0 / 5%), inset 0px -15px 10px -12px rgb(0 0 0 / 5%);\r\n }\r\n\r\n .w-radio-appear {\r\n border-radius: 20px;\r\n }\r\n\r\n .w-checkbox .w-input-value,\r\n .w-radio .w-input-value,\r\n .w-triplebox .w-input-value {\r\n display: none;\r\n }\r\n\r\n .w-checkbox-appear .f-i,\r\n .w-radio-appear .f-i,\r\n .w-triplebox-appear .f-i {\r\n visibility: hidden;\r\n font-size: 14px;\r\n }\r\n\r\n .w-radio-appear .f-i {\r\n width: 10px;\r\n height: 10px;\r\n background: var(--w--focus-color);\r\n border-radius: 20px;\r\n }\r\n\r\n .w-radio-text,\r\n .w-checkbox-text,\r\n .w-triplebox-text {\r\n word-break: keep-all;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear,\r\n .w-input-value:checked+.w-triplebox-appear,\r\n .w-input-value:checked+.w-radio-appear {\r\n border-color: var(--w--focus-color);\r\n box-shadow: none;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear .f-i,\r\n .w-input-value:checked+.w-triplebox-appear .f-i,\r\n .w-input-value:checked+.w-radio-appear .f-i {\r\n visibility: visible;\r\n }\r\n\r\n .w-triplebox.z-half .w-triplebox-appear:before {\r\n content: '';\r\n position: absolute;\r\n background: var(--w--focus-color);\r\n flex-shrink: 0;\r\n width: 10px;\r\n height: 3px;\r\n }\r\n\r\n .w-formbase.z-ds .w-input-border,\r\n .w-formbase.z-ds .w-checkbox-appear,\r\n .w-formbase.z-ds .w-triplebox-appear,\r\n .w-formbase.z-ds .w-radio-appear {\r\n border-color: #ccc;\r\n background-color: #e6e6e6;\r\n }\r\n\r\n .w-formbase.z-err .w-input-border,\r\n .w-formbase.z-err .w-radio-appear,\r\n .w-formbase.z-err .w-triplebox-appear,\r\n .w-formbase.z-err .w-checkbox-appear,\r\n .w-form.z-err > .w-input{\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text {\r\n position: relative;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text>span:before {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-right: 3px;\r\n }\r\n\r\n .w-label.z-h-align-left {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-label.z-h-align-left>.w-label-text {\r\n text-align: left;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:before {\r\n content: '';\r\n display: none;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:after {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-left: 3px;\r\n }\r\n\r\n .w-form>.w-input {\r\n word-break: break-word;\r\n gap: var(--w-form-gap);\r\n }\r\n\r\n .w-form.z-vertical>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-v-align-left>.w-input,\r\n .w-form.z-h-valign-top>.w-input {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-form.z-v-align-center>.w-input,\r\n .w-form.z-h-valign-middle>.w-input {\r\n align-items: center;\r\n }\r\n\r\n .w-form.z-v-align-right>.w-input,\r\n .w-form.z-h-valign-bottom>.w-input {\r\n align-items: flex-end;\r\n }\r\n\r\n .w-form.z-h-align-left>.w-input,\r\n .w-form.z-v-valign-top>.w-input {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-form.z-h-align-center>.w-input,\r\n .w-form.z-v-valign-middle>.w-input {\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-h-align-right>.w-input,\r\n .w-form.z-v-valign-bottom>.w-input {\r\n justify-content: flex-end;\r\n }\r\n \r\n .w-text > .w-input,\r\n .w-spinner > .w-input,\r\n .w-datepicker > .w-input {\r\n align-items: stretch;\r\n }\r\n \r\n .w-input-value:checked+.w-radio-appear:after {\r\n content: 'a';\r\n position: absolute;\r\n }\r\n \r\n</style>\n","import script from \"./FormBase.vue?vue&type=script&lang=js\"\nexport * from \"./FormBase.vue?vue&type=script&lang=js\"\n\nimport \"./FormBase.vue?vue&type=style&index=0&id=9d77751e&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, ref\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-checkbox',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['text', 'checked', 'partialSubmit', 'minSize', 'maxSize'],\r\n inject: ['providePubParent', 'provideBoxParent'],\r\n emits: ['change', 'update:checked', 'click'],\r\n data() {\r\n return {\r\n isPlural: true,\r\n indeterminate: false,\r\n modifiedChecked: false,\r\n defaultChecked: false,\r\n }\r\n },\r\n created() {\r\n if (this.provideBoxParent) {\r\n this.provideBoxParent.boxProxy = this\r\n }\r\n this.defaultChecked = this.isChecked\r\n this.modifiedChecked = this.isChecked\r\n },\r\n methods: {\r\n val(a) {\r\n if (arguments.length == 0) {\r\n return this.getVal()\r\n }\r\n this.setVal(a, {\r\n type: 'change',\r\n target: this.$refs.v\r\n })\r\n },\r\n getVal() {\r\n return this.isChecked ? this.value : ''\r\n },\r\n setVal(checked, event) {\r\n let p = this.pubParent\r\n let v = this.checkValue\r\n let rdo = this.input_type === 'radio'\r\n let mv = this.x.modelValue\r\n if (rdo) {\r\n mv = checked ? $.string(v) : ''\r\n } else {\r\n mv = checked ? $.idsAdd(mv, v) : $.idsRemove(mv, v)\r\n }\r\n this.x.modelValue = mv\r\n if (rdo) {\r\n this.siblings().forEach(sb => sb.x.modelValue = mv)\r\n }\r\n this.$emit('update:modelValue', mv)\r\n this.trigger(event, mv)\r\n this.pubParent && this.pubParent.trigger(event, mv)\r\n },\r\n formVal() {\r\n return !this.isDisabled && this.isChecked ? this.x.value : ''\r\n },\r\n groupFormVal(a) {\r\n if (a == null) {\r\n let r = []\r\n $.lodash.each(this.siblings(null, true), f => {\r\n let g = f.formVal()\r\n if (g != null && g != '') r.push(g)\r\n })\r\n return r.join(',')\r\n }\r\n $.lodash.each(this.siblings(), f => f.val($.idsAny(a, f.checkValue)))\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n this.val(a)\r\n },\r\n // @a -> T/F 是否只获取所有选中项, b -> 是否只选择可用的\r\n siblings(a, b) {\r\n return $.lodash.map($.q(':input[name=\"' + this.input_name + '\"]:not([w-form-ignore] :input)' + (b ? ':not(:disabled)' : '') +\r\n (a === true ? ':checked' : a === false ? ':not(:checked)' : (a || '')), this.ownerView.el()), e => $(e))\r\n },\r\n relate() {\r\n // implement\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n if (this.pubParent) {\r\n this.pubParent.reset(empty)\r\n } else {\r\n this.val(empty || !this.defaultChecked ? false : true)\r\n }\r\n },\r\n onclick(e) {\r\n //implement\r\n e.stopPropagation()\r\n },\r\n onbasechange(e) {\r\n if (this.warnClass && this.x.name) {\r\n this.ownerView.fAll(this.x.name).forEach(v => v.warn && v.warn(false))\r\n }\r\n this.setVal(e.target.checked, e)\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n },\r\n isModified(original) {\r\n if (this.pubParent) {\r\n return this.pubParent.isModified(original)\r\n } else {\r\n let c = original ? this.defaultChecked : this.modifiedChecked\r\n return c == this.isChecked\r\n }\r\n },\r\n saveModified(original) {\r\n if (this.pubParent) {\r\n this.pubParent.saveModified(original)\r\n } else {\r\n this.modifiedChecked = this.isChecked\r\n if (original) {\r\n this.defaultChecked = this.modifiedChecked\r\n }\r\n }\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n html_input() {\r\n return [h(this.input_tag, {\r\n ref: 'v',\r\n class: 'w-input-value',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n checked: this.isChecked,\r\n disabled: this.isDisabled,\r\n onclick: e => {\r\n if (this.isNormal) {\r\n this.indeterminate = false\r\n } else e.preventDefault()\r\n },\r\n onchange: this.onchange,\r\n ...this.input_prop,\r\n }), h('em', {\r\n ref: 'appear',\r\n class: this.$options.name + '-appear'\r\n }, h('i', {\r\n class: this.input_icon\r\n })),\r\n this.x.text ?\r\n h('span', {\r\n class: this.$options.name + '-text'\r\n }, this.x.text) : null\r\n ]\r\n },\r\n html_main() {\r\n return h('label', {\r\n class: 'w-input',\r\n onclick: this.onclick,\r\n }, this.html_input())\r\n },\r\n html_target() {\r\n return h(Horizontal, {\r\n class: this.$options.name + '-target',\r\n ref: 'target'\r\n }, this.$slots)\r\n },\r\n html() {\r\n return this.pubParent && this.pubParent.x.vertical ? [this.html_self(true), this.html_target()] : this.html_self()\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length < $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n maxSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length > $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n }\r\n },\r\n rules() {\r\n return {\r\n required: this.x.required != null ? this.x.required : (this.pubParent && this.pubParent.x.required),\r\n minSize: this.x.minSize != null ? this.x.minSize : (this.pubParent && this.pubParent.x.minSize),\r\n maxSize: this.x.maxSize != null ? this.x.maxSize : (this.pubParent && this.pubParent.x.maxSize),\r\n }\r\n },\r\n input_type() {\r\n return 'checkbox'\r\n },\r\n input_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_value() {\r\n // 如果没有定义value,必须返回空字符串。因为当<input type=\"checkbox\">没有value属性时,它的表单值会变成\"on\"\r\n return this.x.value == null ? '' : this.x.value\r\n },\r\n input_prop() {\r\n return {\r\n indeterminate: this.indeterminate,\r\n 'w-partialsubmit': this.x.partialSubmit ? 1 : null,\r\n }\r\n },\r\n input_icon() {\r\n return 'f-i f-i-check'\r\n },\r\n checkValue() {\r\n return this.x.value\r\n },\r\n isChecked() {\r\n return $.idsAny(this.x.modelValue, this.checkValue)\r\n },\r\n isDisabled() {\r\n return this.x.disabled != null ? this.x.disabled : (this.pubParent && this.pubParent.disabled)\r\n },\r\n isReadonly() {\r\n return this.x.readonly != null ? this.x.readonly : (this.pubParent && this.pubParent.readonly)\r\n },\r\n html_class() {\r\n return {\r\n 'z-half': this.indeterminate\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.target) {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n this.siblings().forEach((sb) => {\r\n let t = sb.$refs.target\r\n if (t) this.ownerView.fAll(null, t.$el).forEach(n => n.x.disabled = !sb.isChecked)\r\n })\r\n }, {immediate: true})\r\n }\r\n },\r\n }\r\n</script>\n","import script from \"./CheckBox.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n\r\n export default {\r\n name: 'w-triplebox',\r\n mixins: [CheckBox],\r\n props: ['all'],\r\n created() {\r\n this.$watch(() => this.x.modelValue, (v, ov) => {\r\n if ((v == null || v == '') && (ov == null || ov == '')) return\r\n this.provideBoxParent && this.provideBoxParent.triple()\r\n if (!this.x.all) this.relate()\r\n })\r\n },\r\n methods: {\r\n getVal() {\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.value : ''\r\n },\r\n formVal() {\r\n if (this.isDisabled) return ''\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.$refs.v.value : ''\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n this.relate()\r\n },\r\n checkstate(a) {\r\n let b = this.indeterminate ? 2 : this.isChecked ? 1 : 0\r\n if (a == null) {\r\n return b\r\n }\r\n this.val(a == 1)\r\n this.indeterminate = a == 2\r\n },\r\n isPartial() {\r\n return this.checkstate() == 2\r\n },\r\n getRelates() {\r\n return this.ownerView.fAll(this.x.name)\r\n },\r\n relate() {\r\n if (this.x.name) {\r\n for (var i = 0, b = this.getRelates(), c = this.isPartial(), l = b.length, n = l, c0 = 0, c1 = 0, c2 = 0,\r\n d; i < l; i++) {\r\n if (!b[i].isNormal) {\r\n n--\r\n continue\r\n }\r\n if (this.x.all) {\r\n if (this != b[i]) {\r\n if (c) {\r\n this.checkstate(b[i].checkstate())\r\n break;\r\n } else {\r\n b[i].checkstate(this.isChecked ? 1 : 0)\r\n }\r\n } else if (l == 1)\r\n d = this\r\n } else if (b[i].x.all) {\r\n d = b[i]\r\n } else {\r\n b[i].isChecked ? (c1++) : b[i].isPartial() ? (c2++) : (c0++)\r\n }\r\n }\r\n if (d && ((c0 + c1 + c2) || l == 1)) {\r\n d.checkstate(c0 == n - 1 ? 0 : c1 == n - 1 ? 1 : 2)\r\n }\r\n }\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n let s = this.checkstate()\r\n if (s != a) {\r\n this.checkstate(a)\r\n this.relate()\r\n }\r\n },\r\n },\r\n computed: {\r\n checkValue() {\r\n return this.x.all ? 'checked' : this.x.value\r\n }\r\n },\r\n mounted() {\r\n //if (!this.x.all && this.isChecked)\r\n }\r\n\r\n }\r\n</script>\n","import script from \"./TripleBox.vue?vue&type=script&lang=js\"\nexport * from \"./TripleBox.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import TripleBox from './TripleBox.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-leaf',\r\n pubParentName: 'w-tree',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['text', 'expanded', 'expandedIcon', 'collapsedIcon', 'icon', 'boxSync', 'src', 'disabled'],\r\n inject: ['providePubParent', 'provideLevel', 'provideParentLeaf', 'provideParentTR'],\r\n provide() {\r\n return {\r\n provideParentLeaf: this,\r\n provideLevel: this.provideLevel + 1,\r\n provideBoxParent: this,\r\n }\r\n },\r\n data() {\r\n return {\r\n hover: false,\r\n loading: false,\r\n loaded: this.getInitLoaded()\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n let chd = (this.x || this.$props).children\r\n if (chd === true || (Array.isArray(chd) && chd.length)) return true\r\n },\r\n childrenList() {\r\n return $.lodash.map(this.$refs.cont.querySelectorAll(':scope > .w-leaf'), v => $(v))\r\n },\r\n getInitLoaded() {\r\n return this.hasChild() || !this.getSrc() ? true : false\r\n },\r\n isExpanded() {\r\n return this.provideParentTR ? this.provideParentTR.isExpanded() : this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n isFolder() {\r\n return this.hasChild() ? true : !!(this.getSrc() && !this.loaded)\r\n },\r\n toggle(exp, fn) {\r\n (this.provideParentTR || this).setExpanded(exp)\r\n if (this.isExpanded() && !this.loaded) {\r\n this.request(fn)\r\n } else {\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n onclick(e) {\r\n if (this.x.disabled) {\r\n if (!this.$refs.toggle || !this.$refs.toggle.contains(e.target))\r\n e.stopPropagation()\r\n return\r\n }\r\n if (this.boxProxy && this.x.boxSync) {\r\n this.boxProxy.check(!this.boxProxy.isChecked)\r\n this.triple()\r\n }\r\n },\r\n // triplebox 级联勾选\r\n triple() {\r\n if (!this.boxProxy || this.boxProxy.$options.name !== 'w-triplebox') return\r\n let p = this\r\n while ((p = p.provideParentLeaf) && p.$options.name === 'w-leaf') {\r\n if (p.boxProxy) {\r\n let c = p.childrenList()\r\n let m = [0, 0, 0]\r\n let l = c.length\r\n c.forEach(v => {\r\n let b = v.boxProxy\r\n if (b) m[b.checkstate()]++\r\n })\r\n p.boxProxy.check(m[0] === l ? 0 : m[1] === l ? 1 : 2)\r\n }\r\n }\r\n let c = this.boxProxy.checkstate()\r\n c != 2 && this.tripleAll(c)\r\n },\r\n tripleAll(a) {\r\n this.childrenList().forEach(v => {\r\n if (v.boxProxy) {\r\n v.boxProxy.check(a)\r\n v.tripleAll(a)\r\n }\r\n })\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentLeaf) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n html_self() {\r\n let exp = this.isExpanded()\r\n let ico = this.isFolder() ? (exp ? this.x.expandedIcon : this.x.collapsedIcon) : this.x.icon\r\n return h('div', mergeProps(this.html_attrs, this.html_props, this.$attrs), [\r\n this.loading ?\r\n h(Img, {\r\n src: '#f-svg-loading',\r\n class: 'w-leaf-loading'\r\n }) :\r\n h('div', {\r\n ref: 'toggle',\r\n class: ['w-leaf-toggle f-i', exp ? 'f-i-caret-down' : 'f-i-caret-right'],\r\n onclick: (e) => {\r\n e.stopPropagation(), this.toggle()\r\n }\r\n }),\r\n this.$slots.box && this.$slots.box(),\r\n ico && h(Img, {\r\n src: ico,\r\n class: 'w-leaf-icon'\r\n }),\r\n h('div', {\r\n class: 'w-leaf-text f-line-1',\r\n title: this.x.text,\r\n }, this.$slots.text ? this.$slots.text() : this.x.text)\r\n ])\r\n },\r\n html_cont() {\r\n let r\r\n let chd = this.x.children\r\n let tree = this.pubParent\r\n if (Array.isArray(chd) && tree) {\r\n r = chd.map(item => tree.$slots.default({item}))\r\n }\r\n return h('div', {\r\n id: this.uid + 'cont',\r\n ref: 'cont',\r\n class: 'w-leaf-cont',\r\n style: {\r\n display: this.x.expanded ? '' : 'none'\r\n },\r\n }, r)\r\n },\r\n html() {\r\n return [this.html_self(), this.html_cont()]\r\n }\r\n },\r\n computed: {\r\n tree() {\r\n return this.pubParent\r\n },\r\n level() {\r\n return this.provideParentTR ? this.provideParentTR.level : this.provideLevel + 1\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let exp = this.isExpanded()\r\n let fd = this.isFolder()\r\n let ds = this.x.disabled\r\n let prop = {\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': ds,\r\n 'z-folder': fd,\r\n 'z-expanded': fd && exp,\r\n 'z-collapse': fd && !exp\r\n },\r\n style: 'padding-left:' + $.unitSize(this.level * 16),\r\n }\r\n if (this.pubParent) {\r\n prop.onmouseenter = this.onmouseenter\r\n prop.onmouseleave = this.onmouseleave\r\n prop[`onClick${ds?'Capture':''}`] = this.onclick\r\n }\r\n return prop\r\n }\r\n },\r\n mounted() {\r\n if (this.x.expanded) this.toggle(true)\r\n if (this.isCurrent) this.pubParent.viewCurrent(this)\r\n if (this.boxProxy) {\r\n this.$nextTick(() => {\r\n if (!this.isFolder() && !this.$refs.cont.nextElementSibling) {\r\n this.triple()\r\n }\r\n })\r\n }\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-leaf {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n min-height: 30px;\r\n width: 100%;\r\n text-align: left;\r\n }\r\n\r\n .w-leaf-text {\r\n flex: 1;\r\n }\r\n\r\n .w-leaf-toggle {\r\n visibility: hidden;\r\n padding: 0 1px;\r\n margin-left: 1px;\r\n color: #777;\r\n opacity: #777;\r\n }\r\n \r\n .w-leaf.z-on .w-leaf-toggle,\r\n .w-leaf.z-on .f-svg {\r\n color: currentcolor;\r\n fill: currentcolor;\r\n }\r\n\r\n .w-leaf-loading {\r\n width: 20px;\r\n margin-left: 1px;\r\n }\r\n\r\n .w-leaf-icon {\r\n margin-right: 6px;\r\n }\r\n\r\n .w-leaf.z-folder .w-leaf-toggle {\r\n visibility: visible;\r\n }\r\n\r\n .w-leaf .w-triplebox,\r\n .w-leaf .w-checkbox, \r\n .w-leaf .w-radio {\r\n margin-right: 6px;\r\n }\r\n \r\n .w-leaf.z-hv {\r\n background: #f5faff;\r\n }\r\n \r\n .w-leaf.z-on {\r\n background: var(--w--focus-color);\r\n color: #fff\r\n }\r\n \r\n .w-leaf.z-ds {\r\n color: #999;\r\n }\r\n \r\n</style>\n","import script from \"./Leaf.vue?vue&type=script&lang=js\"\nexport * from \"./Leaf.vue?vue&type=script&lang=js\"\n\nimport \"./Leaf.vue?vue&type=style&index=0&id=1baf3a86&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n\r\n export default {\r\n name: 'w-pagebar',\r\n mixins: [ButtonBar],\r\n emits: ['click:item'],\r\n props: ['limit', 'size', 'offset', 'buttonCount', 'noFirstLast', 'face', 'jump'],\r\n data() {\r\n return {\r\n isJumpFocus: false,\r\n showDrop: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n limit: 1,\r\n size: 0,\r\n offset: 0,\r\n buttonCount: 5,\r\n face: 'normal',\r\n gap: 0,\r\n valign: 'middle',\r\n }\r\n },\r\n inCurrent(a) {\r\n return this.currentPage == a.text\r\n },\r\n clickItem(e, i) {\r\n let b = (i - 1) * this.x.limit\r\n if (b != this.x.offset) {\r\n e.runType = 'click:item'\r\n e.value = b\r\n this.trigger(e, b)\r\n }\r\n },\r\n clickDrop(e) {\r\n this.showDrop = true\r\n },\r\n onJumpClick(e) {\r\n let v = Math.max(0, $.number(this.$refs.jumpInput.value))\r\n this.clickItem(e, v)\r\n },\r\n html_button(i, t, ic, ds) {\r\n return h('button', {\r\n class: ['w-pagebar-button w-pagebar-num', {'z-on': !t && !ic && i == this.currentPage, 'z-ds': ds, [ic]: ic}],\r\n disabled: ds,\r\n onclick: e => this.clickItem(e, i)\r\n }, t || (ic ? '' : i))\r\n },\r\n html_slots() {\r\n return this.x.face === 'button' ? this.html_face_button() :\r\n this.x.face === 'simple' ? this.html_face_simple() : \r\n this.html_face_normal()\r\n },\r\n html_buttons() {\r\n return [h(Button, {\r\n class: 'w-pagebar-button w-pagebar-prev',\r\n icon: '.f-i .f-i-angle-left',\r\n disabled: this.currentPage == 1,\r\n title: $.loc.page_text.prev,\r\n onclick: e => this.clickItem(e, this.currentPage - 1)\r\n }), h(Button, {\r\n class: 'w-pagebar-button w-pagebar-next',\r\n icon: '.f-i .f-i-angle-right',\r\n disabled: this.currentPage == this.sumPage,\r\n title: $.loc.page_text.next,\r\n onclick: e => this.clickItem(e, this.currentPage + 1)\r\n })]\r\n },\r\n html_drop() {\r\n let s = []\r\n if (this.x.buttonCount) {\r\n s.push(h(Button, {\r\n class: 'w-pagebar-button w-pagebar-button-count w-pagebar-prev',\r\n ref: 'drop',\r\n text: this.currentPage + '/' + this.sumPage,\r\n onclick: e => this.clickDrop(e)\r\n }))\r\n }\r\n if (this.showDrop) {\r\n let b = []\r\n for (let i = 1, sp = this.sumPage; i <= sp; i ++) b.push(h(Button, {text: i, onClick: e => this.clickItem(e, i)}))\r\n s.push(h(Menu, {snap: {target: () => this.$refs.drop, position: 'v', indent: 1}, onClose: () => this.showDrop = false}, {default: () => b}))\r\n }\r\n return s\r\n },\r\n html_face_simple() {\r\n return this.html_drop().concat(this.html_buttons())\r\n },\r\n html_face_button() {\r\n let b = this.html_buttons()\r\n b.splice(1, 0, ...this.html_drop())\r\n return b\r\n },\r\n html_face_normal() {\r\n const s = []\r\n let sp = this.sumPage\r\n let cp = this.currentPage\r\n let n = $.number(this.x.buttonCount)\r\n let f = Math.max(1, cp - Math.ceil(n / 2) + 1)\r\n let l = Math.min(sp + 1, f + n)\r\n let d = l - f < n ? Math.max(1, l - n) : f\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(1, this.labelFirst, this.iconFirst, cp == 1))\r\n }\r\n s.push(this.html_button(cp - 1, this.labelPrev, this.iconPrev, cp == 1))\r\n for (let i = d; i < l; i++) {\r\n s.push(this.html_button(i))\r\n }\r\n s.push(this.html_button(cp + 1, this.labelNext, this.iconNext, cp >= this.sumPage))\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(sp, this.labelLast, this.iconLast, cp >= this.sumPage))\r\n }\r\n if (this.x.jump) {\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-to'\r\n }, $.loc.to))\r\n s.push(h('input', {\r\n class: 'w-pagebar-jump-input',\r\n ref: 'jumpInput',\r\n onfocus: e => this.isJumpFocus = true,\r\n onblur: e => this.isJumpFocus = false,\r\n onkeydown: e => e.keyCode == 13 && this.onJumpClick(e)\r\n }))\r\n s.push(h('button', {\r\n class: 'w-pagebar-button w-pagebar-jump-button',\r\n onclick: this.onJumpClick\r\n }, 'GO'))\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-page'\r\n }, $.loc.page))\r\n }\r\n return s\r\n },\r\n html_face_mini() {\r\n return this.html_face_normal()\r\n },\r\n },\r\n computed: {\r\n currentPage() {\r\n return (Math.ceil(this.x.offset / this.x.limit) || 0) + 1\r\n },\r\n sumPage() {\r\n return Math.ceil(this.x.size / this.x.limit) || 1\r\n },\r\n labelFirst() {\r\n return this.x.face === 'normal' ? $.loc.page_text.first : ''\r\n },\r\n labelLast() {\r\n return this.x.face === 'normal' ? $.loc.page_text.last : ''\r\n },\r\n labelNext() {\r\n return this.x.face === 'normal' ? $.loc.page_text.next : ''\r\n },\r\n labelPrev() {\r\n return this.x.face === 'normal' ? $.loc.page_text.prev : ''\r\n },\r\n iconFirst() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-first' : ''\r\n },\r\n iconLast() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-last' : ''\r\n },\r\n iconNext() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-right' : ''\r\n },\r\n iconPrev() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-left' : ''\r\n },\r\n html_class() {\r\n return [\r\n 'w-buttonbar w-horizontal',\r\n 'z-face-' + this.x.face,\r\n this.html_align_class,\r\n this.isJumpFocus && 'z-jump-on',\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-pagebar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-num {\r\n display: flex;\r\n position: relative;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n border: 1px solid #ddd;\r\n background: #fff;\r\n cursor: pointer;\r\n }\r\n\r\n .w-pagebar-num .w-button-text {\r\n padding: 0\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num {\r\n min-width: 30px;\r\n padding: 0 10px;\r\n height: 32px;\r\n flex-shrink: 0;\r\n margin-right: -1px;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num:last-child,\r\n .w-pagebar.z-face-mini .w-pagebar-num:last-child{\r\n margin-right: 0;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on {\r\n font-weight: 700;\r\n background: var(--w--focus-color);\r\n border-color: var(--w--focus-color);\r\n color: #fff;\r\n z-index: 1;\r\n cursor: default;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-hv {\r\n color: #3e89fa;\r\n border-color: var(--w--focus-color);\r\n z-index: 1;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on.z-hv {\r\n color: #fff;\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num {\r\n min-width: 23px;\r\n padding: 0 3px;\r\n height: 23px;\r\n flex-shrink: 0;\r\n margin-right: 3px;\r\n }\r\n \r\n .w-pagebar.z-face-mini .f-i {\r\n color: #999;\r\n font-size: 14px;\r\n }\r\n\r\n .w-pagebar.z-face-mini .f-i.z-ds,\r\n .w-pagebar.z-face-mini .f-i.z-ds:hover {\r\n color: #ccc;\r\n background: #f9f9f9;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-pagebar.z-face-mini .w-pagebar-num:hover {\r\n border-color: var(--w--focus-color);\r\n color: var(--w--focus-color);\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num.z-on {\r\n background: var(--w--focus-color);\r\n border-color: var(--w--focus-color);\r\n color: #fff;\r\n cursor: default;\r\n }\r\n \r\n \r\n .w-pagebar.z-face-button .w-button {\r\n margin-right: -1px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button:last-child {\r\n margin-right: 0;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button-main {\r\n padding: 0 6px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-pagebar-button-count {\r\n padding: 0 8px;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button.z-ds {\r\n background: transparent;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button-main {\r\n border: 0;\r\n padding: 3px;\r\n }\r\n\r\n .w-pagebar.z-face-simple .w-button .w-button-icon {\r\n color: #555;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button.z-ds .w-button-icon {\r\n color: #bbb;\r\n }\r\n \r\n \r\n .w-pagebar-num.z-ds {\r\n color: #999;\r\n cursor: default;\r\n background-color: #fff;\r\n }\r\n\r\n .w-pagebar-jump-to {\r\n padding: 0 5px 0 10px;\r\n }\r\n\r\n .w-pagebar-jump-input {\r\n width: 30px;\r\n height: 32px;\r\n border: 1px solid #ddd;\r\n background-color: #fff;\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-pagebar-jump-button {\r\n width: 30px;\r\n height: 30px;\r\n padding: 0;\r\n border: 1px solid #ddd;\r\n background-color: #fafafa;\r\n margin-left: -1px;\r\n color: #888;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-jump-page {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-input {\r\n border-color: var(--w--focus-color);\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-button {\r\n border-color: var(--w--focus-color);;\r\n background-color: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n</style>\r\n","import script from \"./PageBar.vue?vue&type=script&lang=js\"\nexport * from \"./PageBar.vue?vue&type=script&lang=js\"\n\nimport \"./PageBar.vue?vue&type=style&index=0&id=a0cae56c&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-split',\r\n mixins: [WidgetBase],\r\n props: ['collapsedIcon', 'expandedIcon', 'movable', 'range', 'toNext', 'expanded'],\r\n inject: ['provideLayout'],\r\n created() {\r\n this.$watch('expanded', (v) => {\r\n if (typeof v === 'boolean') this.x.expanded = v\r\n else if (this.x.expanded == null) this.x.expanded = true\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n toggle(exp) {\r\n this.x.expanded = exp == null ? !this.x.expanded : exp\r\n let minorElem = this.x.toNext ? this.el().nextElementSibling : this.el().previousElementSibling\r\n if (minorElem) {\r\n $.q(minorElem).toggleClass('f-split-collapsed', !this.x.expanded)\r\n //$.q(minorElem).css(this.expanded ? {visibility: '', position: '', zIndex: ''} : {visibility: 'hidden', position: 'absolute', zIndex: -1})\r\n }\r\n },\r\n dragstart(e) {\r\n let prevElem = this.el().previousElementSibling\r\n let nextElem = this.el().nextElementSibling\r\n if (prevElem && nextElem) {\r\n let vert = this.inVertical\r\n let minorElem = this.x.toNext ? nextElem : prevElem\r\n let downX = $.eventX(e)\r\n let downY = $.eventY(e)\r\n let posName = vert ? 'top' : 'left'\r\n let sizeName = vert ? 'height' : 'width'\r\n let clientName = vert ? 'clientY' : 'clientX'\r\n let downPos = vert ? downY : downX\r\n let minPos = $.bcr(prevElem)[posName]\r\n let maxPos = $.bcr(nextElem)[vert ? 'bottom' : 'right'] - 5\r\n let movRect = $.lodash.pick($.bcr(this.$refs.movable), ['width', 'height', 'top', 'left'])\r\n let pos\r\n let help\r\n $.moveup((e) => {\r\n if (!help) {\r\n help = $.q(`<div style=\"position:absolute;background:rgba(0,0,0,.3);z-index:101;\"></div>`).css(\r\n movRect).appendTo(document.body)\r\n }\r\n pos = $.numRange(movRect[posName] + e[clientName] - downPos, minPos, maxPos)\r\n help.css({\r\n [posName]: pos\r\n })\r\n }, (e, moved) => {\r\n if (moved && help) {\r\n help.remove()\r\n let size = (this.x.expanded ? $.bcr(minorElem)[sizeName] : 0) + (this.x.toNext ? 1 : -1) * (downPos -\r\n pos)\r\n if (size <= 0) {\r\n this.toggle(false)\r\n } else {\r\n if (!this.x.expanded) this.toggle(true)\r\n $.q(minorElem).css({\r\n [sizeName]: size\r\n })\r\n }\r\n }\r\n }, e)\r\n }\r\n },\r\n html_slots() {\r\n let r = []\r\n let expandedIcon = this.x.expandedIcon || this.x.collapsedIcon\r\n let collapsedIcon = this.x.collapsedIcon || expandedIcon\r\n if (expandedIcon) {\r\n r.push(this.html_icon(this.x.expanded ? expandedIcon : collapsedIcon, 'w-split-icon', () => this.toggle()))\r\n }\r\n if (this.x.movable) {\r\n r.push(h('div', {\r\n ref: 'movable',\r\n class: 'w-split-movable',\r\n onmousedown: this.dragstart\r\n }))\r\n }\r\n return r\r\n }\r\n },\r\n computed: {\r\n inVertical() {\r\n return this.provideLayout === 'w-vertical'\r\n },\r\n html_props() {\r\n return {\r\n class: ['f-rel z-' + (this.inVertical ? 'vertical' : 'horizontal'), {\r\n 'z-tonext': this.x.toNext\r\n }]\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-split-collapsed {\r\n position: absolute !important;\r\n visibility: hidden !important;\r\n z-index: -1;\r\n opacity: 0;\r\n }\r\n\r\n .w-split-icon {\r\n position: absolute;\r\n cursor: pointer;\r\n line-height: 1;\r\n z-index: 1;\r\n }\r\n\r\n .w-split.z-vertical .w-split-icon {\r\n left: 50%;\r\n top: 0;\r\n transform: translateX(-50%);\r\n }\r\n\r\n .w-split.z-vertical.z-tonext .w-split-icon {\r\n top: auto;\r\n bottom: 0;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-icon {\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n }\r\n\r\n .w-split.z-horizontal.z-tonext .w-split-icon {\r\n left: auto;\r\n right: 0;\r\n }\r\n\r\n .w-split-movable {\r\n position: absolute;\r\n }\r\n\r\n .w-split.z-vertical .w-split-movable {\r\n height: 100%;\r\n min-height: 5px;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n cursor: row-resize;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-movable {\r\n width: 100%;\r\n min-width: 5px;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n cursor: col-resize;\r\n }\r\n</style>\r\n","import script from \"./Split.vue?vue&type=script&lang=js\"\nexport * from \"./Split.vue?vue&type=script&lang=js\"\n\nimport \"./Split.vue?vue&type=style&index=0&id=64ffe5ca&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-toggle',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['collapsedIcon', 'expandedIcon', 'expanded', 'align', 'valign'],\r\n methods: {\r\n x_default() {\r\n return {\r\n expanded: true,\r\n valign: 'middle',\r\n }\r\n },\r\n toggle(e = true) {\r\n let exp = typeof e === 'boolean' ? e : !this.x.expanded\r\n this.x.expanded = exp\r\n $.q(this.el()).nextUntil('.w-toggle').toggle(exp)\r\n },\r\n html_slots() {\r\n let exp = this.x.expanded\r\n let ico = exp ? this.x.expandedIcon : this.x.collapsedIcon\r\n return [ico && h(Img, {\r\n src: ico,\r\n class: 'w-toggle-icon',\r\n }), h('div', {class: 'w-toggle-main'}, this.$slots.default())]\r\n }\r\n },\r\n computed: {\r\n html_props() {\r\n let exp = this.x.expanded\r\n return {\r\n class: ['w-horizontal f-pointer',\r\n {\r\n 'z-expanded': exp,\r\n 'z-collapse': !exp,\r\n },\r\n this.html_align_class],\r\n onclick: this.toggle\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-toggle-icon {\r\n margin-right: 5px;\r\n flex-shrink: 0;\r\n }\r\n</style>\r\n","import script from \"./Toggle.vue?vue&type=script&lang=js\"\nexport * from \"./Toggle.vue?vue&type=script&lang=js\"\n\nimport \"./Toggle.vue?vue&type=style&index=0&id=431717dc&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-video',\r\n mixins: [WidgetBase],\r\n props: ['src', 'poster'],\r\n data() {\r\n return {\r\n playing: false,\r\n }\r\n },\r\n methods: {\r\n getMimeType() {\r\n let filePath = $.strTo(this.x.src, '?') || this.x.src\r\n let fileName = $.strFrom(filePath, '/', true) || filePath\r\n let suffix = $.strFrom(fileName, '.', true)\r\n return suffix ? mimeType(fileName) : 'video/mp4'\r\n },\r\n html_slots() {\r\n return [h('video', {\r\n class: 'w-video-vd f-width f-height',\r\n ref: 'vd',\r\n src: this.x.src,\r\n poster: this.x.poster,\r\n onplay: e => this.playing = true,\r\n onpause: e => this.playing = false,\r\n controls: true,\r\n 'webkit-playsinline': true,\r\n 'playsinline': true,\r\n 'x-webkit-airplay': true,\r\n 'x5-playsinline': true,\r\n 'x5-video-player-type': 'h5',\r\n 'x5-video-orientation': 'h5',\r\n 'x5-video-player-fullscreen': true,\r\n }), h('div', {\r\n class: 'w-video-play f-abs-center f-flex-center',\r\n innerHTML: '<i class=\"f-i f-i-play\"></i>',\r\n onclick: e => {\r\n let o = this.$refs.vd\r\n o.paused ? o.play() : o.pause()\r\n }\r\n })]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['f-rel f-flex-center', {'z-play': this.playing}]\r\n }\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-video {\r\n box-sizing: border-box;\r\n background: #000;\r\n }\r\n\r\n .w-video.z-play .w-video-play {\r\n display: none\r\n }\r\n\r\n .w-video-play {\r\n display: flex;\r\n width: 62px;\r\n height: 62px;\r\n background: rgba(0, 0, 0, .5);\r\n border-radius: 50%;\r\n z-index: 1;\r\n }\r\n\r\n .w-video-play .f-i {\r\n color: #fff;\r\n font-size: 36px;\r\n transform: translate(4px, 0px);\r\n cursor: default\r\n }\r\n</style>\n","import script from \"./Video.vue?vue&type=script&lang=js\"\nexport * from \"./Video.vue?vue&type=script&lang=js\"\n\nimport \"./Video.vue?vue&type=style&index=0&id=7ee48295&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-progress',\r\n mixins: [WidgetBase],\r\n props: ['percent', 'range', 'text'],\r\n methods: {\r\n html_slots() {\r\n let w = $.number(this.x.percent)\r\n return [\r\n this.x.text && h('span', {\r\n class: 'w-progress-text'\r\n }, this.x.text),\r\n h('div', {\r\n class: 'w-progress-gut',\r\n style: {\r\n width: `${w}%`\r\n }\r\n }, h('div', {\r\n class: 'w-progress-bar f-flex f-flex-center',\r\n style: {\r\n width: `${w==0?w:(100*100/w)}%`\r\n }\r\n }, this.x.text && h('span', {\r\n class: 'w-progress-text'\r\n }, this.x.text)))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n if (this.x.range) {\r\n let a = this.x.range.split(',')\r\n for (let i = a.length - 1; i >= 0; i--) {\r\n if ($.number(this.x.percent) >= $.number(a[i])) return 'z-' + a[i]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-progress {\r\n display: flex;\r\n position: relative;\r\n height: 18px;\r\n border-radius: 20px;\r\n background: #e6e6e6;\r\n align-items: center;\r\n justify-content: center;\r\n overflow: hidden;\r\n font-size: 12px;\r\n line-height: 1;\r\n }\r\n\r\n .w-progress-gut {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n background: var(--w--focus-color);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n transition: width, background .1s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-progress-bar {\r\n color: #fff;\r\n height: 100%;\r\n }\r\n</style>\r\n","import script from \"./Progress.vue?vue&type=script&lang=js\"\nexport * from \"./Progress.vue?vue&type=script&lang=js\"\n\nimport \"./Progress.vue?vue&type=style&index=0&id=18056e88&lang=css\"\n\nexport default script","<template>\r\n <w-vertical v-bind=\"html_binds\" :class=\"['f-rel', 'w-calendar-' + this.x.face]\">\r\n <w-vertical class=\"w-calendar-main\" v-if=\"!onlyTime\">\r\n <w-horizontal :class=\"['w-calendar-head', {'f-h-gap': dfish.br.compat.gap}]\" valign=\"middle\" align=\"center\">\r\n <i class=\"w-calendar-head-prev-year f-i f-i-angle-double-left f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(-12)\"></i>\r\n <i class=\"w-calendar-head-prev f-i f-i-angle-single-left f-pointer\" @click=\"clickStep(-1)\"></i>\r\n <w-horizontal :class=\"['w-calendar-head-pop', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <div class=\"w-calendar-head-year f-link\" ref=\"popYear\" @click=\"clickPopYear()\" v-html=\"headYear\"></div>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopYear\" :context=\"$refs.popYear\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"{target: $refs.popYear, position: 'cc'}\" @close=\"headPopYear=null\">\r\n <div class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(-1)\"><i class=\"f-i f-i-minus\"></i></div>\r\n <w-html height=\"*\" @wheel.passive=\"mousewheelPopYear\">\r\n <div v-for=\"item in headPopYear\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getFullYear()}]\"\r\n @click=\"clickPopYearItem(item)\">{{item}}</div>\r\n </w-html>\r\n <w-html class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(1)\"><i class=\"f-i f-i-plus\"></i>\r\n </w-html>\r\n </w-dialog>\r\n <w-html v-if=\"x.face == 'date'\" class=\"w-calendar-head-month f-link\" ref=\"popMonth\" @click=\"clickPopMonth\">\r\n {{headMonth}}\r\n </w-html>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopMonth\" :context=\"$refs.popMonth\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"{target: $refs.popMonth, position: 'cc'}\" @close=\"headPopMonth=null\">\r\n <w-html height=\"*\">\r\n <div v-for=\"item in headPopMonth\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getMonth() + 1}]\"\r\n @click=\"clickPopMonthItem(item)\">{{item}}</div>\r\n </w-html>\r\n </w-dialog>\r\n </w-horizontal>\r\n <i class=\"w-calendar-head-next f-i f-i-angle-single-right f-pointer\" @click=\"clickStep(1)\"></i>\r\n <i class=\"w-calendar-head-next-year f-i f-i-angle-double-right f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(12)\"></i>\r\n <div class=\"w-calendar-head-blank\"></div>\r\n </w-horizontal>\r\n <slot name=\"head\"></slot>\r\n <div class=\"w-calendar-body\">\r\n <template v-if=\"x.face == 'date'\">\r\n <div v-for=\"item in loc.calendar.day_title_1\" class=\"w-calendar-daytitle\">{{item}}</div>\r\n </template>\r\n <div v-for=\"item in bodyList\" :title=\"item.title\"\r\n :class=\"['w-calendar-item', {'z-on': item.focus && !item.disabled, 'z-pad': item.pad, 'z-ds': item.disabled}]\"\r\n @click=\"clickItem($event,item)\">\r\n <slot :item=\"item\">\r\n <div class=\"w-calendar-item-text\">{{item.text}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </w-vertical>\r\n <w-horizontal v-if=\"hasTime\" class=\"w-calendar-time\">\r\n <w-vertical v-if=\"focusHour!==false\" class=\"w-calendar-time-col w-calendar-time-hour\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.hour}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"hour\" :current=\"focusHour\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"h in bodyListHour\" :key=\"h\" :text=\"dfish.strPad(h)\"\r\n :disabled=\"isHourDisabled(h)\" @click=\"clickHour($event,h)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusMinute!==false\" class=\"w-calendar-time-col w-calendar-time-minute\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.minute}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"minute\" :current=\"focusMinute\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"m in bodyListMinute\" :key=\"m\" :text=\"dfish.strPad(m)\"\r\n :disabled=\"isMinuteDisabled(m)\" @click=\"clickMinute($event,m)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusSecond!==false\" class=\"w-calendar-time-col w-calendar-time-second\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.second}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"second\" :current=\"focusSecond\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"s in bodyListSecond\" :key=\"s\" :text=\"dfish.strPad(s)\"\r\n :disabled=\"isSecondDisabled(s)\" @click=\"clickSecond($event,s)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-horizontal>\r\n <w-horizontal v-if=\"success\" :class=\"['w-calendar-foot', {'f-h-gap': dfish.br.compat.gap}]\" align=\"between\"\r\n valign=\"middle\">\r\n <div class=\"w-calendar-button-now f-link\" @click=\"clickNow\">{{loc.calendar.now}}</div>\r\n <div class=\"w-calendar-button-confirm f-link\" @click=\"clickConfirm\">{{loc.confirm}}</div>\r\n </w-horizontal>\r\n </w-vertical>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-calendar',\r\n mixins: [WidgetBase],\r\n emits: ['click:item', 'change'],\r\n props: ['value', 'minValue', 'maxValue', 'current', 'pad', 'face', 'format', 'success', 'cg', 'start',\r\n 'enableHour', 'enableMinute', 'enableSecond', 'defaultHour', 'defaultMinute', 'defaultSecond'\r\n ],\r\n data() {\r\n let dt = this.value2date()\r\n return {\r\n dt,\r\n currentDate: null,\r\n headPopYear: null,\r\n headPopMonth: null,\r\n }\r\n },\r\n watch: {\r\n value(v) {\r\n this.dt = this.value2date()\r\n },\r\n dt(nv, ov) {\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.trigger('change', nv)\r\n } else if (this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.trigger('change', nv)\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.trigger('change', nv)\r\n }\r\n },\r\n current(nc) {\r\n if (!nc) return\r\n let nv = typeof nc === 'string' ? $.dateParse(nc, this.formatter) : nc\r\n let ov = this.dt\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.dt = nv\r\n } else if (this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.dt = nv\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.dt = nv\r\n }\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n let b = this.format || ''\r\n return {\r\n face: b === 'yyyy' ? 'year' : b.includes('MM') && !b.includes('dd') ? 'month' : b\r\n .includes('ww') ? 'week' : 'date'\r\n }\r\n },\r\n value2date() {\r\n let dt = this.value\r\n let bd = this.minValue\r\n let ed = this.maxValue\r\n let f = this.format || ''\r\n if (bd && (!dt || dt < bd)) {\r\n dt = bd\r\n }\r\n if (ed && (!dt || dt > ed)) {\r\n dt = ed\r\n }\r\n dt = dt ? $.dateParse(dt, f) : new Date()\r\n if (!this.value) this.setDefaultTime(dt)\r\n return dt\r\n },\r\n weekday(d) {\r\n let w = d.getDay()\r\n return w == 0 ? 6 : w - 1\r\n },\r\n setDefaultTime(d) {\r\n let dh = this.defaultHour == null ? d.getHours() : parseFloat(this.defaultHour)\r\n if (this.enableHour) {\r\n let eh = $.arrayNumber(this.enableHour)\r\n if (!eh.includes(dh)) dh = eh[0]\r\n }\r\n d.setHours(dh)\r\n let dm = this.defaultMinute == null ? d.getMinutes() : parseFloat(this.defaultMinute)\r\n if (this.enableMinute) {\r\n let em = $.arrayNumber(this.enableMinute)\r\n if (!em.includes(dm)) dm = em[0]\r\n }\r\n d.setMinutes(dm)\r\n let ds = this.defaultSecond == null ? d.getSeconds() : parseFloat(this.defaultSecond)\r\n if (this.enableSecond) {\r\n let es = $.arrayNumber(this.enableSecond)\r\n if (!es.includes(ds)) ds = es[0]\r\n }\r\n d.setSeconds(ds)\r\n return d\r\n },\r\n fixDate(d) {\r\n if (this.beginDate && d < this.beginDate) d = this.beginDate\r\n if (this.endDate && d > this.endDate) d = this.endDate\r\n return this.setDefaultTime(new Date(d.getTime()))\r\n },\r\n clickStep(a) {\r\n let d = new Date(this.dt.getTime())\r\n if (this.x.face == 'year') {\r\n d = $.dateAdd(d, 'y', 10 * a)\r\n } else if (this.x.face == 'month') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'date') {\r\n d = $.dateAdd(d, 'M', a)\r\n } else if (this.x.face == 'week') {\r\n d = $.dateAdd(d, 'y', a)\r\n }\r\n this.dt = d\r\n },\r\n clickPopYear(y) {\r\n y = y || (this.dt.getFullYear() - 4)\r\n if (y < 1000) y = 1000\r\n this.headPopYear = Array.from(Array(10)).map((v, i) => y + i)\r\n },\r\n clickPopYearItem(year) {\r\n let d = new Date(this.dt.getTime())\r\n d.setFullYear(year)\r\n this.dt = d\r\n this.headPopYear = null\r\n },\r\n clickPopYearStep(a) {\r\n let r = this.headPopYear\r\n let y = a < 0 ? r[0] - 10 : r[r.length - 1] + 1\r\n this.clickPopYear(y)\r\n },\r\n mousewheelPopYear(e) {\r\n this.clickPopYearStep(e.wheelDelta > 0 ? -1 : 1)\r\n },\r\n clickPopMonth() {\r\n this.headPopMonth = Array.from(Array(12)).map((v, i) => i + 1)\r\n },\r\n clickPopMonthItem(month) {\r\n let m = this.dt.getMonth()\r\n this.dt = $.dateAdd(this.dt, 'M', month - 1 - this.dt.getMonth())\r\n this.headPopMonth = null\r\n },\r\n clickItem(e, item) {\r\n if (item.disabled) return\r\n if (this.x.current !== undefined) {\r\n this.dt = this.fixDate(item.date)\r\n }\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n if (!this.hasTime)\r\n this.callback(item.value)\r\n },\r\n clickNow() {\r\n this.callback(this.fixDate(new Date()))\r\n },\r\n clickConfirm(s) {\r\n let d = this.dt\r\n let f = this.focusDate\r\n this.callback(this.fixDate(new Date(f.getFullYear(), f.getMonth(), f.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())))\r\n },\r\n callback(v) {\r\n if (typeof v === 'object') {\r\n v = this.fm(v)\r\n }\r\n this.x.success && this.x.success(v)\r\n },\r\n clickHour(e, v) {\r\n this.dt.setHours(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.hour.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickMinute(e, v) {\r\n this.dt.setMinutes(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.minute.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickSecond(e, v) {\r\n this.dt.setSeconds(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.second.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n fm(a) {\r\n return $.dateFormat(typeof a === 'string' ? $.dateParse(a, this.formatter) : a, this.formatter)\r\n },\r\n isHourDisabled(v) {\r\n let n = this.minHour\r\n let m = this.maxHour\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isMinuteDisabled(v) {\r\n let n = this.minMinute\r\n let m = this.maxMinute\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isSecondDisabled(v) {\r\n let n = this.minSecond\r\n let m = this.maxSecond\r\n return (n && n > v) || (m && m < v)\r\n },\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n formatter() {\r\n return this.x.format || 'yyyy-MM-dd'\r\n },\r\n hasTime() {\r\n return /[Hms]/.test(this.formatter)\r\n },\r\n onlyTime() {\r\n return this.hasTime && !/[yMd]/.test(this.formatter)\r\n },\r\n focusValue() {\r\n let d = this.focusDate\r\n return d && this.fm(d)\r\n },\r\n focusDate() {\r\n let c = this.x.current\r\n if (c) {\r\n return $.dateParse(c, this.x.format)\r\n } else if (!this.x.value && this.x.success) {\r\n return this.x.format && this.dt\r\n }\r\n },\r\n beginDate() {\r\n return this.x.minValue && $.dateParse(this.x.minValue, this.formatter)\r\n },\r\n endDate() {\r\n return this.x.maxValue && $.dateParse(this.x.maxValue, this.formatter)\r\n },\r\n focusHour() {\r\n return this.x.format.includes('H') && this.dt.getHours()\r\n },\r\n focusMinute() {\r\n return this.x.format.includes('m') && this.dt.getMinutes()\r\n },\r\n focusSecond() {\r\n return this.x.format.includes('s') && this.dt.getSeconds()\r\n },\r\n minHour() {\r\n if (this.beginDate) {\r\n let d = this.beginDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n maxHour() {\r\n if (this.endDate) {\r\n let d = this.endDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n minMinute() {\r\n if (this.minHour === this.dt.getHours()) {\r\n return this.beginDate.getMinutes()\r\n }\r\n },\r\n maxMinute() {\r\n if (this.maxHour === this.dt.getHours()) {\r\n return this.endDate.getMinutes()\r\n }\r\n },\r\n minSecond() {\r\n if (this.minMinute === this.dt.getMinutes()) {\r\n return this.beginDate.getSeconds()\r\n }\r\n },\r\n maxSecond() {\r\n if (this.maxMinute === this.dt.getMinutes()) {\r\n return this.endDate.getSeconds()\r\n }\r\n },\r\n headYear() {\r\n let y = this.dt.getFullYear()\r\n if (this.x.face === 'year') {\r\n y = this.dt.getFullYear() - (this.dt.getFullYear() % 10)\r\n y += ' - ' + (y + 9)\r\n }\r\n return $.loc.ps($.loc.calendar.y, y)\r\n },\r\n headMonth() {\r\n return $.loc.calendar.monthname[this.dt.getMonth()]\r\n },\r\n bodyList() {\r\n return this.x.face === 'year' ? this.bodyListYear : this.x.face === 'month' ? this.bodyListMonth :\r\n this.x.face === 'week' ? this.bodyListWeek : this.bodyListDate\r\n },\r\n bodyListYear() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear() - (this.dt.getFullYear() % 10) - 1\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setFullYear(y)\r\n for (let i = 0; i < 12; i++) {\r\n let v = y + i\r\n let g = {\r\n value: v,\r\n text: v,\r\n date: new Date(b.getTime()),\r\n pad: i == 0 || i == 11,\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n r.push(g)\r\n b.setFullYear(b.getFullYear() + 1)\r\n }\r\n return r\r\n },\r\n bodyListMonth() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 0; i < 12; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: $.loc.calendar.monthname[i],\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 1)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListWeek() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let w = $.dateWeek(this.dt)\r\n let y = w[0]\r\n let b = $.dateWeekLast(y)\r\n let c = $.dateWeekFirst(y)\r\n let d = c[2]\r\n for (let i = 1, l = b[1]; i <= l; i++) {\r\n let v = this.fm(d)\r\n let g = {\r\n text: i,\r\n value: y + '-' + $.strPad(i),\r\n date: new Date(d.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v,\r\n title: $.loc.ps($.loc.calendar.from_to, $.dateFormat(d, 'yyyy-MM-dd'), $.dateFormat($.dateAdd(d, 'd', 6),\r\n 'yyyy-MM-dd'))\r\n }\r\n d.setDate(d.getDate() + 7)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListDate() {\r\n let b = new Date(this.dt.getTime())\r\n let c = b.getMonth()\r\n let d = new Date(b.getTime())\r\n let f = this.focusValue\r\n let fd = f && $.dateFormat($.dateParse(f, this.x.format), 'yyyy-MM-dd')\r\n let fn = this.beginDate && $.dateFormat(this.beginDate, 'yyyy-MM-dd')\r\n let fm = this.endDate && $.dateFormat(this.endDate, 'yyyy-MM-dd')\r\n let cell = []\r\n b.setDate(1)\r\n d.setDate(new Date(b.getFullYear(), c + 1, 0).getDate())\r\n let g = 7 - (this.weekday(b) + d.getDate()) % 7\r\n if (g && g < 7)\r\n d.setDate(d.getDate() + g)\r\n if (this.weekday(b) > 0)\r\n b.setDate(1 - this.weekday(b))\r\n if (this.x.pad) {\r\n g = 1 + (d.getTime() - b.getTime()) / 86400000\r\n g < 42 && d.setDate(d.getDate() + 42 - g)\r\n }\r\n while (b <= d) {\r\n let v = this.fm(b)\r\n let fv = $.dateFormat(b, 'yyyy-MM-dd')\r\n let t = {\r\n text: b.getDate(),\r\n value: v,\r\n date: new Date(b.getTime()),\r\n pad: b.getMonth() !== c,\r\n disabled: (fn && fn > fv) || (fm && fm < fv) ? true : false,\r\n focus: fd === fv,\r\n }\r\n cell.push(t)\r\n b.setDate(b.getDate() + 1)\r\n }\r\n return cell\r\n },\r\n bodyListHour() {\r\n return this.enableHour ? $.arrayNumber(this.enableHour) : Array.from(Array(24).keys())\r\n },\r\n bodyListMinute() {\r\n return this.enableMinute ? $.arrayNumber(this.enableMinute) : Array.from(Array(60).keys())\r\n },\r\n bodyListSecond() {\r\n return this.enableSecond ? $.arrayNumber(this.enableSecond) : Array.from(Array(60).keys())\r\n },\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-calendar-dialog {\r\n line-height: 1.5;\r\n --w-datepicker-dialog-width: 260px;\r\n --w-datepicker-dialog-time-width: 66px;\r\n width: calc(var(--w-datepicker-dialog-width) + calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0)));\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime {\r\n --w-datepicker-dialog-width: 2px;\r\n --w-datepicker-dialog-time-height: 254px;\r\n }\r\n\r\n .w-calendar-dialog.z-hastime .w-calendar-head,\r\n .w-calendar-dialog.z-hastime .w-calendar-body {\r\n box-sizing: border-box;\r\n width: calc(var(--w-datepicker-dialog-width) - 2px);\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-head {\r\n box-sizing: border-box;\r\n width: var(--w-datepicker-dialog-width);\r\n }\r\n\r\n .w-calendar-dialog .w-calendar-body {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-calendar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-calendar-head,\r\n .w-calendar-foot {\r\n height: 36px;\r\n padding: 0 5px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-pop {\r\n padding: 0 10px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-blank {\r\n display: none;\r\n flex: 1;\r\n }\r\n\r\n .w-calendar-head-month {\r\n margin-left: 3px;\r\n }\r\n\r\n .w-calendar-body {\r\n display: grid;\r\n }\r\n\r\n .w-calendar-date .w-calendar-body,\r\n .w-calendar-week .w-calendar-body {\r\n grid-template-columns: repeat(7, 1fr);\r\n }\r\n\r\n .w-calendar-body {\r\n grid-template-columns: repeat(4, 1fr);\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n\r\n .w-calendar-dialog .w-calendar-month .w-calendar-body,\r\n .w-calendar-dialog .w-calendar-year .w-calendar-body {\r\n min-height: 120px;\r\n }\r\n\r\n .w-calendar-item {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .w-calendar-item,\r\n .w-calendar-daytitle {\r\n text-align: center;\r\n padding: 5px;\r\n cursor: default;\r\n }\r\n\r\n .w-calendar-item:not(.z-ds):not(.z-on):hover,\r\n .w-calendar-head-year-item:hover {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-calendar-item.z-on {\r\n background: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n \r\n .w-calendar-item.z-ds {\r\n background: #f9f9f9;\r\n }\r\n\r\n .w-calendar-item.z-ds,\r\n .w-calendar-item.z-pad {\r\n color: #999;\r\n }\r\n\r\n .w-calendar-item-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-calendar-foot {\r\n position: relative;\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n position: static;\r\n height: var(--w-datepicker-dialog-time-height);\r\n }\r\n\r\n .w-calendar-time {\r\n position: absolute;\r\n top: 0;\r\n bottom: 35px;\r\n right: 0;\r\n width: calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0));\r\n border-left: 1px solid #ddd;\r\n }\r\n \r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n border-left: 0;\r\n }\r\n\r\n .w-calendar-time-th,\r\n .w-calendar-time-item {\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-time-th {\r\n line-height: 36px;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-time-item {\r\n height: 30px;\r\n border: 0;\r\n }\r\n\r\n .w-calendar-time-item.z-on,\r\n .w-calendar-head-year-item.z-on {\r\n background: var(--w--focus-light-color);\r\n }\r\n\r\n .w-calendar-head-year-item {\r\n height: 24px;\r\n line-height: 24px;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-head .f-i {\r\n font-size: 20px;\r\n color: #aaa;\r\n }\r\n\r\n .w-calendar-head .f-i:hover {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-calendar-time-body .w-scroll-cont {\r\n padding: 94px 0;\r\n }\r\n \r\n .w-calendar-time-body .w-button.z-ds {\r\n background: #fff;\r\n color: #aaa;\r\n }\r\n \r\n .w-calendar-button-now,\r\n .w-calendar-button-confirm {\r\n padding: 2px 10px;\r\n cursor: pointer;\r\n }\r\n</style>\n","import { render } from \"./Calendar.vue?vue&type=template&id=7377352c\"\nimport script from \"./Calendar.vue?vue&type=script&lang=js\"\nexport * from \"./Calendar.vue?vue&type=script&lang=js\"\n\nimport \"./Calendar.vue?vue&type=style&index=0&id=7377352c&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n\r\n export default {\r\n name: 'w-timeline',\r\n mixins: [Scroll, PubParent],\r\n props: ['face', 'vertical'],\r\n methods: {\r\n indent() {\r\n let len = this.$refs.wrap.querySelectorAll('.w-timeline-item').length\r\n if (len <= 1) return\r\n let vt = this.x.vertical\r\n let size = vt ? 'width' : 'height'\r\n let prevWidth = 0\r\n let nextWidth = 0\r\n for (let i = 0; i < len; i++) {\r\n let prev = this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i}\"]`)\r\n let next = i < len - 1 && this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i+1}\"]`)\r\n let prevBcr = $.bcr(prev.querySelector('.w-timeline-item-icon-img'))\r\n if (prev.parentNode == this.$refs.prev) {\r\n prevWidth = Math.max(prevWidth, prevBcr[size])\r\n } else {\r\n nextWidth = Math.max(nextWidth, prevBcr[size])\r\n }\r\n if (next && prev.parentNode != next.parentNode) {\r\n let nextBcr = $.bcr(next.querySelector('.w-timeline-item-icon-img'))\r\n if (vt && prevBcr.bottom + 25 > nextBcr.top) {\r\n $.q(next).css({\r\n marginTop: prevBcr.bottom + 25 - nextBcr.top\r\n })\r\n } else if (!vt && prevBcr.right + 50 > nextBcr.left) {\r\n $.q(next).css({\r\n marginLeft: prevBcr.right + 50 - nextBcr.left\r\n })\r\n }\r\n }\r\n }\r\n let prevItems = $.q('.w-timeline-item', this.$refs.prev)\r\n prevItems.each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginRight' : 'marginBottom']: (prevWidth - bcr[size]) / 2\r\n })\r\n })\r\n $.q('.w-timeline-item', this.$refs.next).each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginLeft' : 'marginTop']: (nextWidth - bcr[size]) / 2\r\n })\r\n })\r\n prevItems.length && $.q(this.$refs.next).css({\r\n [vt ? 'marginLeft' : 'marginTop']: `-${nextWidth/2 + prevWidth/2}px`\r\n })\r\n\r\n let firstBcr = $.bcr($.q(`.w-timeline-item[w-index=\"0\"] .w-timeline-item-icon-img`, this.$refs.wrap)[0])\r\n let lastBcr = $.bcr($.q(`.w-timeline-item[w-index=\"${len-1}\"] .w-timeline-item-icon-img`, this.$refs.wrap)[0])\r\n let wrapBcr = $.bcr(this.$refs.wrap)\r\n if (this.x.vertical) {\r\n $.q(this.$refs.line).css({\r\n width: 2,\r\n height: lastBcr.top - firstBcr.bottom,\r\n top: firstBcr.bottom - wrapBcr.top,\r\n left: (firstBcr.left + firstBcr.right) / 2 - wrapBcr.left - 1,\r\n })\r\n } else {\r\n $.q(this.$refs.line).css({\r\n width: lastBcr.left - firstBcr.right,\r\n height: 2,\r\n top: (firstBcr.top + firstBcr.bottom) / 2 - wrapBcr.top - 1,\r\n left: firstBcr.right - wrapBcr.left\r\n })\r\n }\r\n\r\n },\r\n html_slots() {\r\n let prevSlots = []\r\n let nextSlots = []\r\n let vt = this.x.vertical\r\n this.slots_children().forEach((c, i) => {\r\n $.lodash.set(c, 'props.index', i)\r\n if (vt) {\r\n (c.props.position == 'right' ? prevSlots : nextSlots).push(c)\r\n } else {\r\n (c.props.position == 'bottom' ? nextSlots : prevSlots).push(c)\r\n }\r\n })\r\n return this.html_scroll_slots(\r\n h('div', {\r\n ref: 'wrap',\r\n class: 'w-timeline-wrap'\r\n }, [\r\n h('div', {\r\n ref: 'line',\r\n class: 'w-timeline-line'\r\n }),\r\n h('div', {\r\n ref: 'prev',\r\n class: ['w-timeline-prev', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, prevSlots),\r\n h('div', {\r\n ref: 'next',\r\n class: ['w-timeline-next', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, nextSlots),\r\n ])\r\n )\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return [this.html_scroll_class,\r\n {\r\n ['z-face-' + this.x.face]: this.x.face,\r\n 'z-horizontal': !this.x.vertical,\r\n 'z-vertical': this.x.vertical\r\n }\r\n ]\r\n }\r\n },\r\n mounted() {\r\n this.indent()\r\n const observe = () => {\r\n if (this.$refs.wrap && this.$refs.next) {\r\n $.q('.w-timeline-item', this.$refs.wrap).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n $.q(this.$refs.next).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n this.indent()\r\n }\r\n }\r\n new ResizeObserver(observe).observe(this.$refs.wrap)\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-timeline-wrap {\r\n flex-shrink: 0;\r\n display: flex;\r\n position: relative;\r\n width: max-content;\r\n min-width: 100%;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-wrap {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-prev .w-timeline-item {\r\n flex-direction: column-reverse;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-wrap,\r\n .w-timeline.z-vertical .w-timeline-item {\r\n flex-direction: row;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev,\r\n .w-timeline.z-vertical .w-timeline-next {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev .w-timeline-item {\r\n flex-direction: row-reverse;\r\n }\r\n\r\n .w-timeline-prev,\r\n .w-timeline-next {\r\n position: relative;\r\n display: flex;\r\n flex: 1;\r\n flex-shrink: 0;\r\n --w-compat-gap: 25px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-timeline-prev:empty,\r\n .w-timeline-next:empty {\r\n display: none;\r\n }\r\n\r\n .w-timeline-item {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-icon {\r\n align-items: center;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-main {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item-main {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item.z-right {\r\n text-align: right;\r\n }\r\n\r\n .w-timeline-item-icon {\r\n display: flex;\r\n flex-shrink: 0;\r\n position: relative;\r\n line-height: 1;\r\n }\r\n\r\n .w-timeline-item-icon-img.z-default {\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n border: 2px solid #1890ff;\r\n border-radius: 100px;\r\n background: #fff;\r\n color: #1890ff;\r\n }\r\n\r\n .w-timeline-line {\r\n position: absolute;\r\n background: #ddd;\r\n }\r\n \r\n</style>\n","import script from \"./Timeline.vue?vue&type=script&lang=js\"\nexport * from \"./Timeline.vue?vue&type=script&lang=js\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=ab029c5a&lang=css\"\n\nexport default script","<!-- <template>\r\n <div v-bind=\"html_binds\">\r\n <div class=\"_t\">\r\n <div class=\"_s\"></div>\r\n <i v-if=\"pubParent.x.face === 'bubble'\"\r\n :class=\"'_caret f-i f-i-caret-' + (leftIndex != null ? 'right' : rightIndex != null ? 'left' : topIndex != null ? 'down' : 'up')\"></i>\r\n </div>\r\n \r\n </div>\r\n</template> -->\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-timeline-item',\r\n pubParentName: 'w-timeline',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['position', 'index'],\r\n methods: {\r\n html_slots() {\r\n let text = h('div', {\r\n class: 'w-timeline-item-main f-br'\r\n }, h('div', {\r\n class: 'w-timeline-item-main-text'\r\n }, this.$slots))\r\n let icon = h('div', {\r\n ref: 'icon',\r\n class: 'w-timeline-item-icon'\r\n }, this.$slots.icon ? h('div', {\r\n class: 'w-timeline-item-icon-img'\r\n }, this.$slots.icon()) : h('i', {\r\n class: 'w-timeline-item-icon-img z-default'\r\n }))\r\n return [icon, text]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'z-' + (this.x.position || (this.pubParent.x.vertical ? 'left' : 'bottom'))\r\n },\r\n html_props() {\r\n return {\r\n 'w-index': this.x.index\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\n","import script from \"./TimelineItem.vue?vue&type=script&lang=js\"\nexport * from \"./TimelineItem.vue?vue&type=script&lang=js\"\n\nexport default script","<template>\r\n <div ref=\"root\" v-bind=\"html_binds\">\r\n <div ref=\"options\" class=\"w-slidepicker-options\">\r\n <slot />\r\n </div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-top\"></div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-bottom\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n getCurrentInstance,\r\n onMounted,\r\n watch,\r\n computed,\r\n ref,\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-slidepicker',\r\n mixins: [WidgetBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['optionHeight', 'modelValue', 'minValue', 'maxValue', 'keepIndex', 'cover'],\r\n emits: ['update:modelValue', 'change'],\r\n setup(props, context) {\r\n const self = getCurrentInstance().ctx\r\n const root = ref()\r\n const options = ref()\r\n let startY, endY, minY, maxY, optY, optH, roll\r\n\r\n const onmousedown = function(downEv) {\r\n let downY = $.eventY(downEv)\r\n let moveY, lastY, lastTime\r\n let speed = 0\r\n let lastSpeed = null\r\n options.value.style.transition = ''\r\n $.moveup(e => {\r\n let nowY = $.eventY(e)\r\n let nowTime = e.timeStamp\r\n moveY = optY + nowY - downY\r\n if (lastY && lastTime && nowTime > lastTime) {\r\n lastSpeed = speed\r\n speed = (nowY - lastY) / (nowTime - lastTime)\r\n }\r\n lastY = nowY\r\n lastTime = nowTime\r\n moveY = $.numRange(moveY, minY - optH, maxY + optH)\r\n options.value.style.transform = `translateY(${moveY}px)`\r\n }, (e, moved) => {\r\n if (!moved) {\r\n return onclick(downEv)\r\n }\r\n if (moveY == null) return\r\n let minSpeed = 0.15 //speed大于这个值时,做惯性滚动\r\n if (Math.abs(speed) < minSpeed || (lastSpeed && Math.abs(lastSpeed) < minSpeed)) {\r\n speed = 0\r\n } else if (lastSpeed && Math.abs(lastSpeed) > Math.abs(speed)) {\r\n speed = lastSpeed //记录最后两个speed,选择其中一个最大的,此步骤可优化体验\r\n }\r\n let y = moveY + (speed * 200)\r\n let s = Math.abs(speed / 2)\r\n let yuH = (maxY - y) % optH\r\n y += yuH\r\n if (yuH > (optH / 2)) {\r\n y -= optH\r\n }\r\n optY = $.numRange(y, minY, maxY)\r\n if (optY != moveY) {\r\n if (moveY < minY || moveY > minY || s < minSpeed) {\r\n s = minSpeed\r\n }\r\n if (Math.abs(optY - moveY) < 10) {\r\n s = 0.05 // 移动范围很小时,过渡时间也相应缩短\r\n }\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform ${s}s ease-out`\r\n }\r\n }, downEv)\r\n }\r\n const onwheel = function(e) {\r\n optY += (e.wheelDelta < 0 ? -1 : 1) * optH\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform .12s ease-out`\r\n }\r\n const onclick = function(e) {\r\n let g = $(e)\r\n if (g.$options.name == 'w-option') {\r\n update(g.$props.value)\r\n focus(true)\r\n }\r\n }\r\n const focus = function(ease) {\r\n if (!root.value || !options.value) return\r\n let sc = self.slots_children()\r\n if (!sc.length) return\r\n let v = self.x.modelValue\r\n let nv = self.x.minValue\r\n let xv = self.x.maxValue\r\n if (nv || nv === 0 || xv || xv === 0) {\r\n v = $.numRange(v, nv, xv)\r\n if (v != self.x.modelValue) {\r\n update(v)\r\n }\r\n }\r\n let bcrRoot = $.bcr(root.value)\r\n let bcrOpt = $.bcr(options.value)\r\n let ni = -1\r\n let xi = -1\r\n let asc = true\r\n optH = self.x.optionHeight\r\n startY = maxY = (bcrRoot.height - optH) / 2\r\n endY = minY = startY - bcrOpt.height + optH\r\n if (nv || nv === 0) {\r\n ni = sc.findIndex(s => s.props.value == nv)\r\n }\r\n if (xv || xv === 0) {\r\n xi = sc.findIndex(s => s.props.value == xv)\r\n }\r\n if ((ni > -1 || xi > -1) && sc[0].props.value > sc[sc.length - 1].props.value) { // 判断是不是倒序\r\n asc = false\r\n }\r\n if (ni > -1) {\r\n if (asc) {\r\n maxY -= ni * optH\r\n } else {\r\n minY += ni * optH\r\n }\r\n }\r\n if (xi > -1) {\r\n if (asc) {\r\n minY += (sc.length - 1 - xi) * optH\r\n } else {\r\n maxY -= (sc.length - 1 - xi) * optH\r\n }\r\n }\r\n if (v != null) {\r\n let index = sc.findIndex(s => s.props.value == v)\r\n if (index === -1) {\r\n update(optY != null && optY < endY && self.keepIndex ? sc[sc.length - 1].props.value : sc[0].props.value)\r\n } else {\r\n optY = startY - (optH * index)\r\n }\r\n } else {\r\n optY = startY\r\n }\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transition = ''\r\n options.value.style.transform = `translateY(${optY}px)`\r\n if (ease) {\r\n options.value.style.transition = `transform .15s ease-out`\r\n }\r\n }\r\n\r\n const update = function(v) {\r\n roll = true\r\n self.x.modelValue = v\r\n }\r\n \r\n const getIndex = function() {\r\n return (startY - optY) / optH\r\n }\r\n \r\n const transEnd = function() {\r\n let ret = self.slots_children()[getIndex()]\r\n ret && update(ret.props.value)\r\n }\r\n \r\n const x_default = function() {\r\n return {\r\n optionHeight: 32,\r\n cover: true\r\n }\r\n }\r\n\r\n const html_props = computed(() => {\r\n return {\r\n style: {\r\n '--w-option-height': $.unitSize(self.x.optionHeight)\r\n },\r\n ...($.br.mobile ? {\r\n ontouchstart: onmousedown\r\n } : {\r\n onmousedown,\r\n onwheel,\r\n })\r\n }\r\n })\r\n\r\n onMounted(() => {\r\n watch(() => self.x.modelValue, v => {\r\n context.emit('update:modelValue', v)\r\n context.emit('change', v)\r\n })\r\n watch(() => self.x.minValue, focus)\r\n watch(() => self.x.maxValue, focus)\r\n new ResizeObserver(() => {\r\n if (options.value) {\r\n focus()\r\n transEnd()\r\n }\r\n }).observe(options.value)\r\n options.value.addEventListener('transitionend', transEnd)\r\n })\r\n\r\n return {\r\n root,\r\n options,\r\n x_default,\r\n onmousedown,\r\n onwheel,\r\n html_props,\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-slidepicker {\r\n position: relative;\r\n overflow: hidden;\r\n background: #fff;\r\n }\r\n\r\n .w-slidepicker-bg-top {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.9), rgba(245, 245, 245, 0.4));\r\n border-bottom: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker-bg-bottom {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.4), rgba(245, 245, 245, 0.9));\r\n border-top: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker .w-option {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n\r\n .w-slidepicker .w-option-checked {\r\n display: none;\r\n }\r\n\r\n .w-slidepicker-options {\r\n user-select: none;\r\n /* pointer-events: none; */\r\n }\r\n</style>\n","import { render } from \"./SlidePicker.vue?vue&type=template&id=2b33e34a\"\nimport script from \"./SlidePicker.vue?vue&type=script&lang=js\"\nexport * from \"./SlidePicker.vue?vue&type=script&lang=js\"\n\nimport \"./SlidePicker.vue?vue&type=style&index=0&id=2b33e34a&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-hidden',\r\n mixins: [FormBase],\r\n methods: {\r\n isModified() {\r\n return false\r\n },\r\n html() {\r\n return h('input', {\r\n type: 'hidden',\r\n id: this.uid,\r\n class: 'w-hidden',\r\n name: this.x.name,\r\n value: this.x.modelValue,\r\n ref: 'v'\r\n })\r\n }\r\n },\r\n \r\n }\r\n</script>\r\n","import script from \"./Hidden.vue?vue&type=script&lang=js\"\nexport * from \"./Hidden.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-text',\r\n mixins: [FormBase],\r\n props: ['minLength', 'maxLength', 'pattern'],\r\n data() {\r\n return {\r\n hasBorder: true\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minLength: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && $.strLen(v) < r)\r\n return this.formErr(q, [r])\r\n },\r\n maxLength: (v, r, q) => {\r\n let d\r\n if (v && r != null && r !== '' && r > 0 && v && (d = $.strLen(v)) > r)\r\n return this.formErr(q, [d - r])\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Text.vue?vue&type=script&lang=js\"\nexport * from \"./Text.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import Text from './Text.vue'\r\n \r\n export default {\r\n name: 'w-textarea',\r\n mixins: [Text],\r\n computed: {\r\n input_tag() {\r\n return 'textarea'\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Textarea.vue?vue&type=script&lang=js\"\nexport * from \"./Textarea.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['modelValue', 'required', 'vertical', 'gap', 'minSize', 'maxSize'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n methods: {\r\n html_form() {\r\n return this.x.vertical ? h('div', {class: 'w-boxgroup-grid'}, this.$slots) : this.$slots\r\n },\r\n },\r\n computed: {\r\n html_style() {\r\n return this.x.gap && {\r\n '--w-boxgroup-gap': $.unitSize(this.x.gap)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./CheckBoxGroup.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBoxGroup.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import CheckBoxGroup from './CheckBoxGroup.vue'\r\n\r\n export default {\r\n name: 'w-radiogroup',\r\n mixins: [CheckBoxGroup]\r\n }\r\n</script>\r\n","import script from \"./RadioGroup.vue?vue&type=script&lang=js\"\nexport * from \"./RadioGroup.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n\r\n export default {\r\n name: 'w-radio',\r\n pubParentName: 'w-radiogroup',\r\n mixins: [CheckBox],\r\n methods: {\r\n\r\n },\r\n computed: {\r\n input_type() {\r\n return 'radio'\r\n },\r\n input_icon() {\r\n return 'f-i'\r\n },\r\n input_name() {\r\n return this.w_name && (this.w_name + '@' + this.ownerView.uid)\r\n },\r\n w_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_prop() {\r\n return {'w-name': this.w_name}\r\n }\r\n },\r\n mounted() {\r\n\r\n\r\n }\r\n }\r\n</script>\n","import script from \"./Radio.vue?vue&type=script&lang=js\"\nexport * from \"./Radio.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-switch',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['checkedText', 'uncheckedText', 'checkedValue', 'uncheckedValue'],\r\n inject: ['providePubParent'],\r\n methods: {\r\n x_default() {\r\n return {\r\n checkedValue: 1,\r\n uncheckedValue: 0,\r\n }\r\n },\r\n onclick(e) {\r\n let c = !this.isChecked\r\n let v = c ? this.x.checkedValue : this.x.uncheckedValue\r\n this.val(v)\r\n },\r\n formText() {\r\n return this.isChecked ? this.x.checkedText : this.x.uncheckedText\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-switch-box',\r\n onclick: this.isNormal && this.onclick\r\n }, [\r\n h('i', {\r\n class: 'w-switch-icon'\r\n }),\r\n h('span', {\r\n class: 'w-switch-text'\r\n }, this.isChecked ? this.x.checkedText : this.x.uncheckedText),\r\n ])\r\n ]\r\n }\r\n },\r\n computed: {\r\n input_value() {\r\n return this.isChecked ? this.x.checkedValue : this.x.uncheckedValue\r\n },\r\n html_class() {\r\n return this.isChecked ? 'z-checked' : 'z-unchecked'\r\n },\r\n isChecked() {\r\n return this.x.modelValue == this.x.checkedValue\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-switch>.w-input {\r\n flex: none;\r\n display: inline-flex;\r\n }\r\n\r\n .w-switch-box {\r\n flex: 1;\r\n position: relative;\r\n height: 22px;\r\n background: #c0c0c0;\r\n background: rgba(0, 0, 0, 0.25);\r\n border: 1px solid #c1caca;\r\n border-radius: 20px;\r\n color: #fff;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-appearance: none;\r\n }\r\n\r\n .w-switch-icon {\r\n position: absolute;\r\n top: 1px;\r\n left: 1px;\r\n background: #fff;\r\n padding: 10px;\r\n border-radius: 20px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);\r\n transition: all .15s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-switch-text {\r\n float: right;\r\n min-width: 2px;\r\n margin-left: 26px;\r\n margin-right: 8px;\r\n line-height: 22px;\r\n font-style: normal;\r\n min-width: 10px;\r\n }\r\n\r\n .w-switch.z-checked .w-switch-box {\r\n background: #1890ff;\r\n border-color: #1890ff\r\n }\r\n\r\n .w-switch.z-checked .w-switch-icon {\r\n left: 100%;\r\n border-color: #1890ff;\r\n transform: translateX(calc(-100% - 1px));\r\n }\r\n\r\n .w-switch.z-checked .w-switch-text {\r\n float: left;\r\n margin-left: 8px;\r\n margin-right: 26px;\r\n }\r\n\r\n .w-switch.z-ds .w-switch-box {\r\n background: #e6e6e6;\r\n border-color: #e6e6e6;\r\n cursor: default\r\n }\r\n\r\n .w-switch.z-ds .w-switch-icon {\r\n border-color: #e6e6e6\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-box {\r\n background: #a2d2ff;\r\n border-color: #a2d2ff\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-icon {\r\n border-color: #a2d2ff\r\n }\r\n</style>\n","import script from \"./Switch.vue?vue&type=script&lang=js\"\nexport * from \"./Switch.vue?vue&type=script&lang=js\"\n\nimport \"./Switch.vue?vue&type=style&index=0&id=6e279520&lang=css\"\n\nexport default script","import {strFrom} from './str.js'\r\n\r\nconst mimes = {\r\n \".323\": \"text/h323\",\r\n \".3gp\": \"video/3gpp\",\r\n \".aab\": \"application/x-authoware-bin\",\r\n \".aam\": \"application/x-authoware-map\",\r\n \".aas\": \"application/x-authoware-seg\",\r\n \".acx\": \"application/internet-property-stream\",\r\n \".ai\": \"application/postscript\",\r\n \".aif\": \"audio/x-aiff\",\r\n \".aifc\": \"audio/x-aiff\",\r\n \".aiff\": \"audio/x-aiff\",\r\n \".als\": \"audio/X-Alpha5\",\r\n \".amc\": \"application/x-mpeg\",\r\n \".apk\": \"application/vnd.android.package-archive\",\r\n \".asc\": \"text/plain\",\r\n \".asd\": \"application/astound\",\r\n \".asf\": \"video/x-ms-asf\",\r\n \".asn\": \"application/astound\",\r\n \".asp\": \"application/x-asap\",\r\n \".asr\": \"video/x-ms-asf\",\r\n \".asx\": \"video/x-ms-asf\",\r\n \".au\": \"audio/basic\",\r\n \".avi\": \"video/x-msvideo\",\r\n \".awb\": \"audio/amr-wb\",\r\n \".axs\": \"application/olescript\",\r\n \".bas\": \"text/plain\",\r\n \".bcpio\": \"application/x-bcpio\",\r\n \".bld\": \"application/bld\",\r\n \".bld2\": \"application/bld2\",\r\n \".bmp\": \"image/bmp\",\r\n \".bz2\": \"application/x-bzip2\",\r\n \".c\": \"text/plain\",\r\n \".cal\": \"image/x-cals\",\r\n \".cat\": \"application/vnd.ms-pkiseccat\",\r\n \".ccn\": \"application/x-cnc\",\r\n \".cco\": \"application/x-cocoa\",\r\n \".cdf\": \"application/x-cdf\",\r\n \".cer\": \"application/x-x509-ca-cert\",\r\n \".cgi\": \"magnus-internal/cgi\",\r\n \".chat\": \"application/x-chat\",\r\n \".clp\": \"application/x-msclip\",\r\n \".cmx\": \"image/x-cmx\",\r\n \".co\": \"application/x-cult3d-object\",\r\n \".cod\": \"image/cis-cod\",\r\n \".conf\": \"text/plain\",\r\n \".cpio\": \"application/x-cpio\",\r\n \".cpp\": \"text/plain\",\r\n \".cpt\": \"application/mac-compactpro\",\r\n \".crd\": \"application/x-mscardfile\",\r\n \".crl\": \"application/pkix-crl\",\r\n \".crt\": \"application/x-x509-ca-cert\",\r\n \".csh\": \"application/x-csh\",\r\n \".csm\": \"chemical/x-csml\",\r\n \".csml\": \"chemical/x-csml\",\r\n \".css\": \"text/css\",\r\n \".dcm\": \"x-lml/x-evm\",\r\n \".dcr\": \"application/x-director\",\r\n \".dcx\": \"image/x-dcx\",\r\n \".der\": \"application/x-x509-ca-cert\",\r\n \".dhtml\": \"text/html\",\r\n \".dir\": \"application/x-director\",\r\n \".dll\": \"application/x-msdownload\",\r\n \".doc\": \"application/msword\",\r\n \".docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n \".dot\": \"application/msword\",\r\n \".dvi\": \"application/x-dvi\",\r\n \".dwf\": \"drawing/x-dwf\",\r\n \".dwg\": \"application/x-autocad\",\r\n \".dxf\": \"application/x-autocad\",\r\n \".dxr\": \"application/x-director\",\r\n \".ebk\": \"application/x-expandedbook\",\r\n \".emb\": \"chemical/x-embl-dl-nucleotide\",\r\n \".embl\": \"chemical/x-embl-dl-nucleotide\",\r\n \".eps\": \"application/postscript\",\r\n \".epub\": \"application/epub+zip\",\r\n \".eri\": \"image/x-eri\",\r\n \".es\": \"audio/echospeech\",\r\n \".esl\": \"audio/echospeech\",\r\n \".etc\": \"application/x-earthtime\",\r\n \".etx\": \"text/x-setext\",\r\n \".evm\": \"x-lml/x-evm\",\r\n \".evy\": \"application/envoy\",\r\n \".fh4\": \"image/x-freehand\",\r\n \".fh5\": \"image/x-freehand\",\r\n \".fhc\": \"image/x-freehand\",\r\n \".fif\": \"application/fractals\",\r\n \".flr\": \"x-world/x-vrml\",\r\n \".flv\": \"flv-application/octet-stream\",\r\n \".fm\": \"application/x-maker\",\r\n \".fpx\": \"image/x-fpx\",\r\n \".fvi\": \"video/isivideo\",\r\n \".gau\": \"chemical/x-gaussian-input\",\r\n \".gca\": \"application/x-gca-compressed\",\r\n \".gdb\": \"x-lml/x-gdb\",\r\n \".gif\": \"image/gif\",\r\n \".gps\": \"application/x-gps\",\r\n \".gtar\": \"application/x-gtar\",\r\n \".gz\": \"application/x-gzip\",\r\n \".h\": \"text/plain\",\r\n \".hdf\": \"application/x-hdf\",\r\n \".hdm\": \"text/x-hdml\",\r\n \".hdml\": \"text/x-hdml\",\r\n \".hlp\": \"application/winhlp\",\r\n \".hqx\": \"application/mac-binhex40\",\r\n \".hta\": \"application/hta\",\r\n \".htc\": \"text/x-component\",\r\n \".htm\": \"text/html\",\r\n \".html\": \"text/html\",\r\n \".hts\": \"text/html\",\r\n \".htt\": \"text/webviewhtml\",\r\n \".ice\": \"x-conference/x-cooltalk\",\r\n \".ico\": \"image/x-icon\",\r\n \".ief\": \"image/ief\",\r\n \".ifm\": \"image/gif\",\r\n \".ifs\": \"image/ifs\",\r\n \".iii\": \"application/x-iphone\",\r\n \".imy\": \"audio/melody\",\r\n \".ins\": \"application/x-internet-signup\",\r\n \".ips\": \"application/x-ipscript\",\r\n \".ipx\": \"application/x-ipix\",\r\n \".isp\": \"application/x-internet-signup\",\r\n \".it\": \"audio/x-mod\",\r\n \".itz\": \"audio/x-mod\",\r\n \".ivr\": \"i-world/i-vrml\",\r\n \".j2k\": \"image/j2k\",\r\n \".jad\": \"text/vnd.sun.j2me.app-descriptor\",\r\n \".jam\": \"application/x-jam\",\r\n \".jar\": \"application/java-archive\",\r\n \".java\": \"text/plain\",\r\n \".jfif\": \"image/pipeg\",\r\n \".jnlp\": \"application/x-java-jnlp-file\",\r\n \".jpe\": \"image/jpeg\",\r\n \".jpeg\": \"image/jpeg\",\r\n \".jpg\": \"image/jpeg\",\r\n \".jpz\": \"image/jpeg\",\r\n \".js\": \"application/x-javascript\",\r\n \".jwc\": \"application/jwc\",\r\n \".kjx\": \"application/x-kjx\",\r\n \".lak\": \"x-lml/x-lak\",\r\n \".latex\": \"application/x-latex\",\r\n \".lcc\": \"application/fastman\",\r\n \".lcl\": \"application/x-digitalloca\",\r\n \".lcr\": \"application/x-digitalloca\",\r\n \".lgh\": \"application/lgh\",\r\n \".lml\": \"x-lml/x-lml\",\r\n \".lmlpack\": \"x-lml/x-lmlpack\",\r\n \".log\": \"text/plain\",\r\n \".lsf\": \"video/x-la-asf\",\r\n \".lsx\": \"video/x-la-asf\",\r\n \".m13\": \"application/x-msmediaview\",\r\n \".m14\": \"application/x-msmediaview\",\r\n \".m15\": \"audio/x-mod\",\r\n \".m3u\": \"audio/x-mpegurl\",\r\n \".m3url\": \"audio/x-mpegurl\",\r\n \".m4a\": \"audio/mp4a-latm\",\r\n \".m4b\": \"audio/mp4a-latm\",\r\n \".m4p\": \"audio/mp4a-latm\",\r\n \".m4u\": \"video/vnd.mpegurl\",\r\n \".m4v\": \"video/x-m4v\",\r\n \".ma1\": \"audio/ma1\",\r\n \".ma2\": \"audio/ma2\",\r\n \".ma3\": \"audio/ma3\",\r\n \".ma5\": \"audio/ma5\",\r\n \".man\": \"application/x-troff-man\",\r\n \".map\": \"magnus-internal/imagemap\",\r\n \".mbd\": \"application/mbedlet\",\r\n \".mct\": \"application/x-mascot\",\r\n \".mdb\": \"application/x-msaccess\",\r\n \".mdz\": \"audio/x-mod\",\r\n \".me\": \"application/x-troff-me\",\r\n \".mel\": \"text/x-vmel\",\r\n \".mht\": \"message/rfc822\",\r\n \".mhtml\": \"message/rfc822\",\r\n \".mi\": \"application/x-mif\",\r\n \".mid\": \"audio/mid\",\r\n \".midi\": \"audio/midi\",\r\n \".mif\": \"application/x-mif\",\r\n \".mil\": \"image/x-cals\",\r\n \".mio\": \"audio/x-mio\",\r\n \".mmf\": \"application/x-skt-lbs\",\r\n \".mng\": \"video/x-mng\",\r\n \".mny\": \"application/x-msmoney\",\r\n \".moc\": \"application/x-mocha\",\r\n \".mocha\": \"application/x-mocha\",\r\n \".mod\": \"audio/x-mod\",\r\n \".mof\": \"application/x-yumekara\",\r\n \".mol\": \"chemical/x-mdl-molfile\",\r\n \".mop\": \"chemical/x-mopac-input\",\r\n \".mov\": \"video/quicktime\",\r\n \".movie\": \"video/x-sgi-movie\",\r\n \".mp2\": \"video/mpeg\",\r\n \".mp3\": \"audio/mpeg\",\r\n \".mp4\": \"video/mp4\",\r\n \".mpa\": \"video/mpeg\",\r\n \".mpc\": \"application/vnd.mpohun.certificate\",\r\n \".mpe\": \"video/mpeg\",\r\n \".mpeg\": \"video/mpeg\",\r\n \".mpg\": \"video/mpeg\",\r\n \".mpg4\": \"video/mp4\",\r\n \".mpga\": \"audio/mpeg\",\r\n \".mpn\": \"application/vnd.mophun.application\",\r\n \".mpp\": \"application/vnd.ms-project\",\r\n \".mps\": \"application/x-mapserver\",\r\n \".mpv2\": \"video/mpeg\",\r\n \".mrl\": \"text/x-mrml\",\r\n \".mrm\": \"application/x-mrm\",\r\n \".ms\": \"application/x-troff-ms\",\r\n \".msg\": \"application/vnd.ms-outlook\",\r\n \".mts\": \"application/metastream\",\r\n \".mtx\": \"application/metastream\",\r\n \".mtz\": \"application/metastream\",\r\n \".mvb\": \"application/x-msmediaview\",\r\n \".mzv\": \"application/metastream\",\r\n \".nar\": \"application/zip\",\r\n \".nbmp\": \"image/nbmp\",\r\n \".nc\": \"application/x-netcdf\",\r\n \".ndb\": \"x-lml/x-ndb\",\r\n \".ndwn\": \"application/ndwn\",\r\n \".nif\": \"application/x-nif\",\r\n \".nmz\": \"application/x-scream\",\r\n \".nokia-op-logo\": \"image/vnd.nok-oplogo-color\",\r\n \".npx\": \"application/x-netfpx\",\r\n \".nsnd\": \"audio/nsnd\",\r\n \".nva\": \"application/x-neva1\",\r\n \".nws\": \"message/rfc822\",\r\n \".oda\": \"application/oda\",\r\n \".ogg\": \"audio/ogg\",\r\n \".oom\": \"application/x-AtlasMate-Plugin\",\r\n \".p10\": \"application/pkcs10\",\r\n \".p12\": \"application/x-pkcs12\",\r\n \".p7b\": \"application/x-pkcs7-certificates\",\r\n \".p7c\": \"application/x-pkcs7-mime\",\r\n \".p7m\": \"application/x-pkcs7-mime\",\r\n \".p7r\": \"application/x-pkcs7-certreqresp\",\r\n \".p7s\": \"application/x-pkcs7-signature\",\r\n \".pac\": \"audio/x-pac\",\r\n \".pae\": \"audio/x-epac\",\r\n \".pan\": \"application/x-pan\",\r\n \".pbm\": \"image/x-portable-bitmap\",\r\n \".pcx\": \"image/x-pcx\",\r\n \".pda\": \"image/x-pda\",\r\n \".pdb\": \"chemical/x-pdb\",\r\n \".pdf\": \"application/pdf\",\r\n \".pfr\": \"application/font-tdpfr\",\r\n \".pfx\": \"application/x-pkcs12\",\r\n \".pgm\": \"image/x-portable-graymap\",\r\n \".pict\": \"image/x-pict\",\r\n \".pko\": \"application/ynd.ms-pkipko\",\r\n \".pm\": \"application/x-perl\",\r\n \".pma\": \"application/x-perfmon\",\r\n \".pmc\": \"application/x-perfmon\",\r\n \".pmd\": \"application/x-pmd\",\r\n \".pml\": \"application/x-perfmon\",\r\n \".pmr\": \"application/x-perfmon\",\r\n \".pmw\": \"application/x-perfmon\",\r\n \".png\": \"image/png\",\r\n \".pnm\": \"image/x-portable-anymap\",\r\n \".pnz\": \"image/png\",\r\n \".pot\": \"application/vnd.ms-powerpoint\",\r\n \".ppm\": \"image/x-portable-pixmap\",\r\n \".pps\": \"application/vnd.ms-powerpoint\",\r\n \".ppt\": \"application/vnd.ms-powerpoint\",\r\n \".pptx\": \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n \".pqf\": \"application/x-cprplayer\",\r\n \".pqi\": \"application/cprplayer\",\r\n \".prc\": \"application/x-prc\",\r\n \".prf\": \"application/pics-rules\",\r\n \".prop\": \"text/plain\",\r\n \".proxy\": \"application/x-ns-proxy-autoconfig\",\r\n \".ps\": \"application/postscript\",\r\n \".ptlk\": \"application/listenup\",\r\n \".pub\": \"application/x-mspublisher\",\r\n \".pvx\": \"video/x-pv-pvx\",\r\n \".qcp\": \"audio/vnd.qcelp\",\r\n \".qt\": \"video/quicktime\",\r\n \".qti\": \"image/x-quicktime\",\r\n \".qtif\": \"image/x-quicktime\",\r\n \".r3t\": \"text/vnd.rn-realtext3d\",\r\n \".ra\": \"audio/x-pn-realaudio\",\r\n \".ram\": \"audio/x-pn-realaudio\",\r\n \".ras\": \"image/x-cmu-raster\",\r\n \".rc\": \"text/plain\",\r\n \".rdf\": \"application/rdf+xml\",\r\n \".rf\": \"image/vnd.rn-realflash\",\r\n \".rgb\": \"image/x-rgb\",\r\n \".rlf\": \"application/x-richlink\",\r\n \".rm\": \"audio/x-pn-realaudio\",\r\n \".rmf\": \"audio/x-rmf\",\r\n \".rmi\": \"audio/mid\",\r\n \".rmm\": \"audio/x-pn-realaudio\",\r\n \".rmvb\": \"audio/x-pn-realaudio\",\r\n \".rnx\": \"application/vnd.rn-realplayer\",\r\n \".roff\": \"application/x-troff\",\r\n \".rp\": \"image/vnd.rn-realpix\",\r\n \".rpm\": \"audio/x-pn-realaudio-plugin\",\r\n \".rt\": \"text/vnd.rn-realtext\",\r\n \".rte\": \"x-lml/x-gps\",\r\n \".rtf\": \"application/rtf\",\r\n \".rtg\": \"application/metastream\",\r\n \".rtx\": \"text/richtext\",\r\n \".rv\": \"video/vnd.rn-realvideo\",\r\n \".rwc\": \"application/x-rogerwilco\",\r\n \".s3m\": \"audio/x-mod\",\r\n \".s3z\": \"audio/x-mod\",\r\n \".sca\": \"application/x-supercard\",\r\n \".scd\": \"application/x-msschedule\",\r\n \".sct\": \"text/scriptlet\",\r\n \".sdf\": \"application/e-score\",\r\n \".sea\": \"application/x-stuffit\",\r\n \".setpay\": \"application/set-payment-initiation\",\r\n \".setreg\": \"application/set-registration-initiation\",\r\n \".sgm\": \"text/x-sgml\",\r\n \".sgml\": \"text/x-sgml\",\r\n \".sh\": \"application/x-sh\",\r\n \".shar\": \"application/x-shar\",\r\n \".shtml\": \"magnus-internal/parsed-html\",\r\n \".shw\": \"application/presentations\",\r\n \".si6\": \"image/si6\",\r\n \".si7\": \"image/vnd.stiwap.sis\",\r\n \".si9\": \"image/vnd.lgtwap.sis\",\r\n \".sis\": \"application/vnd.symbian.install\",\r\n \".sit\": \"application/x-stuffit\",\r\n \".skd\": \"application/x-Koan\",\r\n \".skm\": \"application/x-Koan\",\r\n \".skp\": \"application/x-Koan\",\r\n \".skt\": \"application/x-Koan\",\r\n \".slc\": \"application/x-salsa\",\r\n \".smd\": \"audio/x-smd\",\r\n \".smi\": \"application/smil\",\r\n \".smil\": \"application/smil\",\r\n \".smp\": \"application/studiom\",\r\n \".smz\": \"audio/x-smd\",\r\n \".snd\": \"audio/basic\",\r\n \".spc\": \"application/x-pkcs7-certificates\",\r\n \".spl\": \"application/futuresplash\",\r\n \".spr\": \"application/x-sprite\",\r\n \".sprite\": \"application/x-sprite\",\r\n \".sdp\": \"application/sdp\",\r\n \".spt\": \"application/x-spt\",\r\n \".src\": \"application/x-wais-source\",\r\n \".sst\": \"application/vnd.ms-pkicertstore\",\r\n \".stk\": \"application/hyperstudio\",\r\n \".stl\": \"application/vnd.ms-pkistl\",\r\n \".stm\": \"text/html\",\r\n \".svg\": \"image/svg+xml\",\r\n \".sv4cpio\": \"application/x-sv4cpio\",\r\n \".sv4crc\": \"application/x-sv4crc\",\r\n \".svf\": \"image/vnd\",\r\n \".svh\": \"image/svh\",\r\n \".svr\": \"x-world/x-svr\",\r\n \".swf\": \"application/x-shockwave-flash\",\r\n \".swfl\": \"application/x-shockwave-flash\",\r\n \".t\": \"application/x-troff\",\r\n \".talk\": \"text/x-speech\",\r\n \".tar\": \"application/x-tar\",\r\n \".taz\": \"application/x-tar\",\r\n \".tbp\": \"application/x-timbuktu\",\r\n \".tbt\": \"application/x-timbuktu\",\r\n \".tcl\": \"application/x-tcl\",\r\n \".tex\": \"application/x-tex\",\r\n \".texi\": \"application/x-texinfo\",\r\n \".texinfo\": \"application/x-texinfo\",\r\n \".tgz\": \"application/x-compressed\",\r\n \".thm\": \"application/vnd.eri.thm\",\r\n \".tif\": \"image/tiff\",\r\n \".tiff\": \"image/tiff\",\r\n \".tki\": \"application/x-tkined\",\r\n \".tkined\": \"application/x-tkined\",\r\n \".toc\": \"application/toc\",\r\n \".toy\": \"image/toy\",\r\n \".tr\": \"application/x-troff\",\r\n \".trk\": \"x-lml/x-gps\",\r\n \".trm\": \"application/x-msterminal\",\r\n \".tsi\": \"audio/tsplayer\",\r\n \".tsp\": \"application/dsptype\",\r\n \".tsv\": \"text/tab-separated-values\",\r\n \".ttz\": \"application/t-time\",\r\n \".txt\": \"text/plain\",\r\n \".uls\": \"text/iuls\",\r\n \".ult\": \"audio/x-mod\",\r\n \".ustar\": \"application/x-ustar\",\r\n \".uu\": \"application/x-uuencode\",\r\n \".uue\": \"application/x-uuencode\",\r\n \".vcd\": \"application/x-cdlink\",\r\n \".vcf\": \"text/x-vcard\",\r\n \".vdo\": \"video/vdo\",\r\n \".vib\": \"audio/vib\",\r\n \".viv\": \"video/vivo\",\r\n \".vivo\": \"video/vivo\",\r\n \".vmd\": \"application/vocaltec-media-desc\",\r\n \".vmf\": \"application/vocaltec-media-file\",\r\n \".vmi\": \"application/x-dreamcast-vms-info\",\r\n \".vms\": \"application/x-dreamcast-vms\",\r\n \".vox\": \"audio/voxware\",\r\n \".vqe\": \"audio/x-twinvq-plugin\",\r\n \".vqf\": \"audio/x-twinvq\",\r\n \".vql\": \"audio/x-twinvq\",\r\n \".vre\": \"x-world/x-vream\",\r\n \".vrml\": \"x-world/x-vrml\",\r\n \".vrt\": \"x-world/x-vrt\",\r\n \".vrw\": \"x-world/x-vream\",\r\n \".vts\": \"workbook/formulaone\",\r\n \".wav\": \"audio/x-wav\",\r\n \".wax\": \"audio/x-ms-wax\",\r\n \".wbmp\": \"image/vnd.wap.wbmp\",\r\n \".wcm\": \"application/vnd.ms-works\",\r\n \".wdb\": \"application/vnd.ms-works\",\r\n \".web\": \"application/vnd.xara\",\r\n \".webm\": \"video/webm\",\r\n \".wi\": \"image/wavelet\",\r\n \".wis\": \"application/x-InstallShield\",\r\n \".wks\": \"application/vnd.ms-works\",\r\n \".wm\": \"video/x-ms-wm\",\r\n \".wma\": \"audio/x-ms-wma\",\r\n \".wmd\": \"application/x-ms-wmd\",\r\n \".wmf\": \"application/x-msmetafile\",\r\n \".wml\": \"text/vnd.wap.wml\",\r\n \".wmlc\": \"application/vnd.wap.wmlc\",\r\n \".wmls\": \"text/vnd.wap.wmlscript\",\r\n \".wmlsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wmlscript\": \"text/vnd.wap.wmlscript\",\r\n \".wmv\": \"audio/x-ms-wmv\",\r\n \".wmx\": \"video/x-ms-wmx\",\r\n \".wmz\": \"application/x-ms-wmz\",\r\n \".wpng\": \"image/x-up-wpng\",\r\n \".wpt\": \"x-lml/x-gps\",\r\n \".wri\": \"application/x-mswrite\",\r\n \".wrl\": \"x-world/x-vrml\",\r\n \".wrz\": \"x-world/x-vrml\",\r\n \".ws\": \"text/vnd.wap.wmlscript\",\r\n \".wsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wv\": \"video/wavelet\",\r\n \".wvx\": \"video/x-ms-wvx\",\r\n \".wxl\": \"application/x-wxl\",\r\n \".x-gzip\": \"application/x-gzip\",\r\n \".xaf\": \"x-world/x-vrml\",\r\n \".xar\": \"application/vnd.xara\",\r\n \".xbm\": \"image/x-xbitmap\",\r\n \".xdm\": \"application/x-xdma\",\r\n \".xdma\": \"application/x-xdma\",\r\n \".xdw\": \"application/vnd.fujixerox.docuworks\",\r\n \".xht\": \"application/xhtml+xml\",\r\n \".xhtm\": \"application/xhtml+xml\",\r\n \".xhtml\": \"application/xhtml+xml\",\r\n \".xla\": \"application/vnd.ms-excel\",\r\n \".xlc\": \"application/vnd.ms-excel\",\r\n \".xll\": \"application/x-excel\",\r\n \".xlm\": \"application/vnd.ms-excel\",\r\n \".xls\": \"application/vnd.ms-excel\",\r\n \".xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n \".xlt\": \"application/vnd.ms-excel\",\r\n \".xlw\": \"application/vnd.ms-excel\",\r\n \".xm\": \"audio/x-mod\",\r\n \".xml\": \"application/xml\",\r\n \".xmz\": \"audio/x-mod\",\r\n \".xof\": \"x-world/x-vrml\",\r\n \".xpi\": \"application/x-xpinstall\",\r\n \".xpm\": \"image/x-xpixmap\",\r\n \".xsit\": \"text/xml\",\r\n \".xsl\": \"text/xml\",\r\n \".xul\": \"text/xul\",\r\n \".xwd\": \"image/x-xwindowdump\",\r\n \".xyz\": \"chemical/x-pdb\",\r\n \".yz1\": \"application/x-yz1\",\r\n \".z\": \"application/x-compress\",\r\n \".zac\": \"application/x-zaurus-zac\",\r\n \".json\": \"application/json\",\r\n \".vsd\": \"application/vnd.visio\",\r\n \".et\": \"application/kset\",\r\n \".wps\": \"application/kswps\",\r\n \".dps\": \"application/ksdps\"\r\n}\r\n\r\nexport default function(a) {\r\n let b = strFrom(a, '.', true) || a\r\n return mimes['.' + b]\r\n}\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import mimeType from '../util/mime.js'\r\n\r\n const suffixHooks = {\r\n '0': 'js.css.pdf.psd.ai.txt.eps.txt',\r\n xls: 'xls.xlsx',\r\n doc: 'doc.docx.rtf',\r\n ppt: 'ppt.pptx',\r\n htm: 'htm.html',\r\n zip: 'rar.zip.tar.jar.z.7z.ace.lzh.arj.gzip.bz2.cab.uue',\r\n fla: 'fla.swf',\r\n fon: 'eot.otf.fon.font.ttf.ttc.woff.woff2',\r\n iso: 'iso.nrg.mds.mdf.bin.cue.img.fcd.lcd.dmg',\r\n vid: 'avi.asf.wmv.avs.flv.mkv.mov.3gp.mp4.webm.mpa.mpe.mpg.mpeg.dat.dsm.ogm.vob.rm.rmvb.ts.tp.ifo.nsv.m4u.m4v.asx.asr.movie.fvi.pvx.rv.vdo.viv.vivo.wm.wmx.wv.wvx.mpv2.mpg4',\r\n aud: 'aif.aifc.aiff.als.awb.mp3.aac.au.wav.wma.cda.flac.m4a.mid.mka.mp2.mpc.ape.ofr.ogg.ra.wv.tta.ac3.dts.wv.shn.vqf.spc.nsf.adx.psf.minipsf.psf2.minipsf2.rsn.zst',\r\n img: 'jpg.jpeg.gif.png.bmp.tif.tiff.ico'\r\n }\r\n\r\n const suffix = (function() {\r\n let r = {}\r\n for (let k in suffixHooks) {\r\n suffixHooks[k].split('.').forEach(v => r[v] = k == '0' ? v : k)\r\n }\r\n return r\r\n })()\r\n\r\n const getSuffix = function(url) {\r\n let a = $.strFrom(url || '', '.', true).toLowerCase()\r\n return suffix[a] || 'file'\r\n }\r\n\r\n // 把 \"1MB\" 转为字节\r\n const fileByte = function(val) {\r\n let unit\r\n if (val != null && !isNaN(val))\r\n val += 'K'\r\n val = $.number(val.replace(/[a-z]+$/i, function($0) {\r\n unit = $0.charAt(0).toUpperCase();\r\n return ''\r\n }))\r\n return val * (unit === 'K' ? 1024 : unit === 'M' ? 1024 * 1024 : unit === 'G' ? 1024 * 1024 * 1024 : unit ===\r\n 'T' ? 1024 * 1024 * 1024 * 1024 : 1)\r\n }\r\n\r\n const fileTypeHooks = {\r\n video: suffixHooks.vid,\r\n audio: suffixHooks.aud,\r\n image: suffixHooks.img\r\n }\r\n\r\n export default {\r\n name: 'w-fileupload',\r\n mixins: [FormBase],\r\n props: ['uploadSrc', 'thumbnailSrc', 'downloadSrc', 'uploadLimit', 'sizeLimit', 'maxFileSize', 'minFileSize',\r\n 'fileTypes', 'filter', 'success', 'error', 'itemWidth', 'click:item', 'vertical',\r\n ],\r\n emits: ['click:item'],\r\n data() {\r\n return {\r\n list: [],\r\n emiting: false,\r\n dir: 'v',\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this.x.modelValue, v => {\r\n if (this.emiting) return this.emiting = false\r\n if (v && typeof v === 'string') v = JSON.parse(v)\r\n this.list = Array.isArray(v) ? v.map(value => {return {value}}) : v ? [{value: v}] : []\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n val(v) {\r\n if (arguments.length == 0) {\r\n let r = []\r\n this.list.forEach(item => item.value && r.push(item.value))\r\n return r\r\n }\r\n this.x.modelValue = v\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n getFileTypes() {\r\n let t = this.x.fileTypes\r\n return t && t !== '*.*' ? t.replace(/\\*/g, '').replace(/;/g, ',').toLowerCase() : ''\r\n },\r\n getAccept() {\r\n let r = []\r\n let t = this.getFileTypes()\r\n if (!t) return\r\n let n = []\r\n t.toLowerCase().split(',').forEach(b => {\r\n if (!b) return\r\n n.push(fileTypeHooks[b] || b)\r\n })\r\n n.forEach(b => {\r\n b && r.push(mimeType(b) || b)\r\n })\r\n return r.join(',')\r\n },\r\n isImage(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'img'\r\n },\r\n isVideo(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'vid'\r\n },\r\n isAudio(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'aud'\r\n },\r\n fileSelected(e) {\r\n if (this.x.uploadLimit > 1 && e.target.files.length + this.list.length > this.x.uploadLimit) {\r\n return $.alert($.loc.ps($.loc.form.upload_limit, this.x.uploadLimit))\r\n }\r\n let xfs = this.x.maxFileSize && fileByte(this.x.maxFileSize)\r\n let nfs = this.x.minFileSize && fileByte(this.x.minFileSize)\r\n let ft = this.getFileTypes()\r\n let xfs_names\r\n let nfs_names\r\n let ft_names\r\n $.lodash.each(e.target.files, file => {\r\n let sfx = '.' + $.strFrom(file.name, '.', true).toLowerCase()\r\n if (xfs && file.size > xfs) {\r\n (xfs_names || (xfs_names = [])).push(file.name)\r\n } else if (nfs && file.size < nfs) {\r\n (nfs_names || (nfs_names = [])).push(file.name)\r\n } else if (ft && !$.idsAny(ft, sfx, ',')) {\r\n (ft_names || (ft_names = [])).push(file.name)\r\n } else {\r\n this.list.push({file})\r\n }\r\n })\r\n if (xfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_maxfilesize, xfs_names.join('<br>'), this.x.maxFileSize))\r\n } else if (nfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_minfilesize, nfs_names.join('<br>'), this.x.minFileSize))\r\n } else if (ft_names) {\r\n $.alert($.loc.ps($.loc.form.upload_invalid_file_type, ft_names.join('<br>')))\r\n }\r\n e.target.value = '' // 获取文件后要设value为空,否则下一次选择同一个文件不会触发onchange\r\n this.nextUpload()\r\n\r\n },\r\n upload(item) {\r\n if (this.x.uploadSrc && !item.loading) {\r\n let src = $.urlFormat(this.x.uploadSrc, this.x.data, this.x)\r\n let fd = new FormData()\r\n fd.append('Filedata', item.file)\r\n item.loading = true\r\n item.source = $.http.CancelToken.source()\r\n $.http.post(src, fd, {\r\n onUploadProgress: e => item.progress = Math.floor(e.loaded / e.total * 100),\r\n cancelToken: item.source.token\r\n }).then(res => {\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n let d = this.x.filter ? this.x.filter(res, this) : res.data\r\n if (!d) {\r\n item.error = {\r\n message: $.loc.form.upload_no_data\r\n }\r\n } else if (d.error) {\r\n item.error = d.error\r\n } else if (!d.id) {\r\n item.error = {\r\n message: $.loc.ps($.loc.form.upload_invalid_data, JSON.stringify(d))\r\n }\r\n } else {\r\n item.value = d\r\n this.x.success && this.x.success(item.value, this, res)\r\n }\r\n this.nextUpload()\r\n if (item.error && item.error.message) $.alert(item.error.message)\r\n }).catch(error => {\r\n item.error = error\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n if (error.response && error.response.status) $.alert(error.response.status + ': ' + error)\r\n })\r\n }\r\n },\r\n nextUpload() {\r\n for (let item of this.list) {\r\n if (item.loading) return\r\n if (item.file && !item.loaded) {\r\n return this.upload(item)\r\n }\r\n }\r\n this.emiting = true\r\n let v = this.val()\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n clickItem(e, item) {\r\n if (!item.value) return\r\n if (this.getOn('click:item')) {\r\n e.runType = 'click:item'\r\n e.value = item.value\r\n this.trigger(e, item.value)\r\n } else if (this.x.downloadSrc) {\r\n $.download($.urlServer(this.x.downloadSrc, item.value, this.x.data))\r\n }\r\n },\r\n remove(item) {\r\n item.source && item.source.cancel()\r\n let i = this.list.findIndex(v => v == item)\r\n this.list.splice(i, 1)\r\n this.nextUpload()\r\n },\r\n formText() {\r\n let v = this.val()\r\n return v.map(m => m.name).join(', ')\r\n },\r\n chooseFile() {\r\n this.$refs.file.click()\r\n },\r\n html_list() {\r\n return this.list.map(item => {\r\n let n = item.value ? item.value.name : item.file.name\r\n return h('div', {\r\n class: ['w-fileupload-value', {\r\n 'z-loading': item.loading,\r\n 'z-err': item.error\r\n }],\r\n style: {\r\n '--w-upload-progress': item.file ? `${item.progress || 0}%` : '',\r\n width: $.unitSize(this.x.itemWidth)\r\n },\r\n title: item.error ? item.error.message : n,\r\n onclick: e => this.clickItem(e, item)\r\n }, [\r\n h('i', {\r\n class: ['w-fileupload-value-icon f-i', 'f-i-file-' + getSuffix(n)]\r\n }),\r\n item.error && h('div', {\r\n class: 'w-fileupload-value-error'\r\n }, $.loc.form.upload_error),\r\n h('div', {\r\n class: 'w-fileupload-value-text f-line-1'\r\n }, n), h('div', {\r\n class: 'w-fileupload-value-close f-i f-i-trash',\r\n title: $.loc.remove,\r\n onclick: e => {\r\n this.remove(item), e.stopPropagation()\r\n }\r\n })\r\n ])\r\n })\r\n },\r\n html_input_form() {\r\n return [\r\n this.html_input_hidden(),\r\n h('input', {\r\n type: 'file',\r\n ref: 'file',\r\n multiple: this.x.uploadLimit != 1,\r\n accept: this.getAccept(),\r\n onchange: this.fileSelected\r\n })\r\n ]\r\n },\r\n html_input_button() {\r\n return h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr',\r\n gap: 10,\r\n }, {\r\n default: () => [this.$slots.button ? this.$slots.button() : h(Button, {\r\n text: '选择文件',\r\n icon: '.f-i .f-i-upload',\r\n class: 'w-fileupload-button',\r\n onclick: this.chooseFile\r\n })]\r\n })\r\n },\r\n html_input_list() {\r\n return this.list.length ? h('div', {\r\n ref: 'list',\r\n class: ['w-fileupload-list', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, this.html_list()) : !this.isNormal ? h('div', {\r\n class: 'w-fileupload-nofile f-flex-align'\r\n }, $.loc.form.no_files) : null\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(this.canUpload && this.html_input_button(), this.html_input_list())\r\n },\r\n\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n for (let item of this.list) {\r\n if (item.loading) {\r\n return this.formErr({type: 'upload_loading'})\r\n }\r\n if (item.error) {\r\n return this.formErr({type: 'upload_invalid_file'})\r\n }\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n let v = this.val()\r\n return v.length == 0 ? '' : JSON.stringify(v)\r\n },\r\n errorTipTarget() {\r\n return this.$refs.uploadbbr || this\r\n },\r\n canUpload() {\r\n if (!this.isNormal) return false\r\n if (this.x.uploadLimit > 0 && this.list.length >= this.x.uploadLimit) return false\r\n return true\r\n },\r\n html_class() {\r\n return {'z-vertical': this.x.vertical}\r\n },\r\n html_style() {\r\n return {\r\n '--w-label-min-height': '32px',\r\n }\r\n },\r\n html_on() {\r\n return {\r\n onclick: () => this.warn(false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-fileupload {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-fileupload>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n\r\n .w-fileupload>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-fileupload input[type=\"file\"],\r\n .w-mediaupload input[type=\"file\"] {\r\n display: none;\r\n }\r\n\r\n .w-fileupload-list {\r\n display: flex;\r\n flex-wrap: wrap;\r\n width: 100%;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-fileupload.z-vertical .w-fileupload-list {\r\n flex-direction: column;\r\n }\r\n\r\n .w-fileupload-button {\r\n background: #f8f8f8;\r\n }\r\n\r\n .w-fileupload-value {\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n box-sizing: border-box;\r\n height: 32px;\r\n border: 1px solid #ddd;\r\n background: #f8f8f8;\r\n overflow: hidden;\r\n }\r\n\r\n .w-fileupload-value.z-loading {\r\n background: linear-gradient(to right, #e5f3ff var(--w-upload-progress), #fff var(--w-upload-progress));\r\n }\r\n\r\n .w-fileupload-value.z-err {\r\n border-color: #f00;\r\n }\r\n\r\n .w-fileupload-value-icon {\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 10px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-fileupload-value-error {\r\n margin-right: 10px;\r\n color: #f00;\r\n }\r\n\r\n .w-fileupload-value-text {\r\n flex: 1;\r\n margin-right: 15px;\r\n max-width: 100%;\r\n }\r\n\r\n .w-fileupload-value-text:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n .w-fileupload.z-ds .w-fileupload-value-close {\r\n display: none;\r\n }\r\n\r\n .w-fileupload-value-close {\r\n padding-right: 8px;\r\n color: #999;\r\n }\r\n\r\n .w-fileupload-value-close:hover {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-fileupload-nofile {\r\n color: #999;\r\n height: 32px;\r\n }\r\n\r\n .w-fileupload.z-err .w-fileupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\n","import script from \"./FileUpload.vue?vue&type=script&lang=js\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js\"\n\nimport \"./FileUpload.vue?vue&type=style&index=0&id=3ae0ecf4&lang=css\"\n\nexport default script","<template>\r\n <w-img :class=\"['w-mediaupload-value', {'z-loading': item.loading, 'z-canplay': canPlay, 'z-err': item.error}]\" ref=\"thumbnail\" :src=\"src\" :data-url=\"dataURL\"\r\n :width=\"upload.x.thumbnailWidth\" :img-width=\"upload.x.thumbnailWidth-2\" :img-height=\"upload.x.thumbnailHeight-2\" :tip=\"tip\" @click=\"click\">\r\n <template v-if=\"upload.x.showFileName\" #default>\r\n <div class=\"f-line-1\">{{name}}</div>\r\n </template>\r\n <template #cover>\r\n <canvas v-if=\"item.loading\" ref=\"loading\" width=\"34\" height=\"34\" class=\"w-mediaupload-progress-loading f-abs-center\"></canvas>\r\n <i v-else-if=\"canPlay\" class=\"w-mediaupload-cover-play f-abs-center f-flex-center f-i f-i-play\"></i>\r\n <i v-if=\"upload.isNormal\" class=\"w-mediaupload-value-close f-flex-center f-i f-i-trash\" :title=\"title\" @click=\"remove\"></i>\r\n </template>\r\n </w-img>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['item'],\r\n inject: ['provideUpload'],\r\n data() {\r\n return {\r\n dataURL: null,\r\n }\r\n },\r\n methods: {\r\n click(e) {\r\n this.provideUpload.clickItem(e, this.item)\r\n },\r\n createImageThumbnail() {\r\n let r = new FileReader()\r\n r.onload = (e) => {\r\n if (this.item.loaded) return\r\n this.dataURL = e.target.result\r\n }\r\n r.readAsDataURL(this.item.file)\r\n },\r\n createVideoThumbnail() {\r\n let video = document.createElement('video')\r\n video.addEventListener('loadeddata', () => {\r\n setTimeout(() => {\r\n if (this.item.loaded) return\r\n let cvs = document.createElement('canvas')\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = video.videoWidth\r\n cvs.height = video.videoHeight\r\n ctx.drawImage(video, 0, 0)\r\n this.dataURL = cvs.toDataURL('image/png') \r\n video.pause()\r\n $.q(video).remove()\r\n }, 150)\r\n });\r\n video.src = URL.createObjectURL(this.item.file)\r\n video.muted = true\r\n video.play()\r\n },\r\n setProgress(a) {\r\n let cvs = this.$refs.loading\r\n if (!this.item.loading || !cvs) return\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = cvs.width\r\n ctx.beginPath()\r\n ctx.translate(17, 17)\r\n ctx.moveTo(0, 0)\r\n ctx.arc(0, 0, 15, -Math.PI * .5, Math.PI * ((2 * a / 100) - .5))\r\n ctx.closePath()\r\n ctx.fillStyle = 'rgba(255,255,255,.7)'\r\n ctx.fill()\r\n ctx.beginPath()\r\n ctx.arc(0, 0, 16, 0, Math.PI * 2)\r\n ctx.strokeStyle = '#fff'\r\n ctx.stroke()\r\n },\r\n remove(e) {\r\n this.upload.remove(this.item)\r\n e.stopPropagation()\r\n }, \r\n },\r\n computed: {\r\n upload() {\r\n return this.provideUpload\r\n },\r\n img() {\r\n return this.$refs.thumbnail.$refs.img\r\n },\r\n src() {\r\n return this.item.value ? $.urlServer(this.item.value.thumbnail || this.upload.x.thumbnailSrc, this.item.value,\r\n this.upload.x.data) : ''\r\n },\r\n name() {\r\n return this.item.value ? this.item.value.name : this.item.file.name\r\n },\r\n tip() {\r\n return this.item.error ? this.item.error.message : this.name\r\n },\r\n title() {\r\n return $.loc.remove\r\n },\r\n canPlay() {\r\n return this.item.value && (this.upload.isVideo(this.item) || this.upload.isAudio(this.item))\r\n }\r\n },\r\n mounted() {\r\n if (!this.item.loaded && this.item.file) {\r\n this.upload.isVideo(this.item) ? this.createVideoThumbnail() : this.upload.isImage(this.item) ? this.createImageThumbnail() : null\r\n this.$watch(() => this.item.progress, v => this.setProgress(v), {\r\n immediate: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload-value.z-loading .w-img-cover {\r\n background: rgba(0, 0, 0, .25);\r\n }\r\n\r\n .w-mediaupload-progress {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload-progress-img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: right top;\r\n }\r\n</style>\r\n","import { render } from \"./MediaUploadItem.vue?vue&type=template&id=07113717\"\nimport script from \"./MediaUploadItem.vue?vue&type=script&lang=js\"\nexport * from \"./MediaUploadItem.vue?vue&type=script&lang=js\"\n\nimport \"./MediaUploadItem.vue?vue&type=style&index=0&id=07113717&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FileUpload from './FileUpload.vue'\r\n import MediaUploadItem from './MediaUploadItem.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-mediaupload',\r\n mixins: [FileUpload],\r\n props: ['thumbnailWidth', 'thumbnailHeight', 'showFileName'],\r\n provide() {\r\n return {\r\n provideUpload: this\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'video',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n }\r\n },\r\n html_list() {\r\n return this.list.map(item => {\r\n return h(MediaUploadItem, {item})\r\n })\r\n },\r\n html_input_button() {\r\n return h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr',\r\n gap: 10,\r\n }, {\r\n default: () => [this.$slots.button ? this.$slots.button() : h(Button, {\r\n ref: 'uploadbutton',\r\n title: $.loc.form.choose_image,\r\n icon: '.f-i .f-i-plus',\r\n class: 'w-mediaupload-button',\r\n style: {\r\n width: $.unitSize(this.x.thumbnailWidth),\r\n height: $.unitSize(this.x.thumbnailHeight)\r\n },\r\n onclick: this.chooseFile\r\n })]\r\n })\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(h('div', {\r\n class: ['w-mediaupload-list f-flex', {'f-h-gap': $.br.compat.gap}]\r\n }, [this.html_list(), this.canUpload && this.html_input_button()]))\r\n },\r\n },\r\n computed: {\r\n html_style() {\r\n return {\r\n '--w-label-min-height': $.unitSize(this.x.thumbnailHeight),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload.z-h-valign-top,\r\n .w-mediaupload.z-h-valign-top>.w-input {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-mediaupload.z-h-valign-bottom,\r\n .w-mediaupload.z-h-valign-bottom>.w-input {\r\n align-items: flex-end;\r\n }\r\n\r\n .w-mediaupload.z-h-align-center>.w-input {\r\n justify-content: center;\r\n }\r\n\r\n .w-mediaupload.z-h-align-right>.w-input {\r\n justify-content: flex-end;\r\n }\r\n\r\n .w-mediaupload>.w-input {\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n\r\n .w-mediaupload-list {\r\n align-items: flex-start;\r\n flex-wrap: wrap;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-mediaupload-value,\r\n .w-mediaupload-button {\r\n position: relative;\r\n }\r\n\r\n .w-mediaupload-button {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-mediaupload-value.z-loading .w-mediaupload-progress:before,\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n background: rgba(0, 0, 0, .2);\r\n }\r\n\r\n .w-mediaupload-button .w-button-icon {\r\n font-size: 36px;\r\n color: #bbb;\r\n }\r\n\r\n .w-mediaupload-value:hover .w-mediaupload-value-close {\r\n visibility: visible;\r\n }\r\n\r\n .w-mediaupload-value-close {\r\n position: absolute;\r\n visibility: hidden;\r\n cursor: pointer;\r\n top: 1px;\r\n right: 1px;\r\n width: 24px;\r\n height: 24px;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .6);\r\n }\r\n\r\n .w-mediaupload-value-close:hover {\r\n color: #f33;\r\n }\r\n\r\n .w-mediaupload-value .w-img-gut {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value.z-err {\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress-loading {\r\n display: none;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '上传失败';\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .5);\r\n }\r\n\r\n .w-mediaupload-cover-play {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 30px;\r\n background: rgba(0, 0, 0, .5);\r\n color: #fff;\r\n }\r\n\r\n .w-mediaupload-cover-play:before {\r\n transform: translateX(2px);\r\n }\r\n\r\n .w-mediaupload.z-err .w-mediaupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\n","import script from \"./MediaUpload.vue?vue&type=script&lang=js\"\nexport * from \"./MediaUpload.vue?vue&type=script&lang=js\"\n\nimport \"./MediaUpload.vue?vue&type=style&index=0&id=5df6accd&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import MediaUpload from './MediaUpload.vue'\r\n\r\n export default {\r\n name: 'w-imageupload',\r\n mixins: [MediaUpload],\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'image',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-mediaupload'\r\n },\r\n },\r\n }\r\n</script>\n","import script from \"./ImageUpload.vue?vue&type=script&lang=js\"\nexport * from \"./ImageUpload.vue?vue&type=script&lang=js\"\n\nexport default script","<template>\r\n <button v-bind=\"html_attrs\" :class=\"['f-flex-align', provideOptionParent.$options.name + '-option', {'z-on': isFocus, 'z-ds': disabled, 'z-mul': isMul}]\"\r\n @click=\"click\" :disabled=\"disabled\" :title=\"text\">\r\n <div class=\"f-flex-1 f-line-1\">\r\n <slot>{{text}}</slot>\r\n </div>\r\n <div v-if=\"isMul\" :class=\"['w-option-checked', {'f-i f-i-check': isFocus}]\"></div>\r\n </button>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-option',\r\n mixins: [WidgetBase],\r\n props: ['value', 'text', 'disabled'],\r\n inject: ['provideOptionParent'],\r\n methods: {\r\n click(e) {\r\n if (this.provideOptionParent.clickOption)\r\n this.provideOptionParent.clickOption(this)\r\n }\r\n },\r\n\r\n computed: {\r\n isFocus() {\r\n let m = this.provideOptionParent.x.modelValue\r\n return Array.isArray(m) ? m.includes(this.value) : $.idsAny(m, this.value)\r\n },\r\n isMul() {\r\n return this.provideOptionParent.x.multiple\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-option {\r\n height: var(--w-option-height, 32px);\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n text-align: left;\r\n }\r\n\r\n .w-dropbox-option.z-ds,\r\n .w-dropbox-option.z-ds:hover {\r\n background-color: #f9f9f9;\r\n color: #999;\r\n }\r\n\r\n .w-dropbox-option:hover {\r\n background-color: #f5faff;\r\n }\r\n\r\n .w-dropbox-option.z-on:not(.z-mul) {\r\n background-color: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n\r\n .w-dropbox-option.z-on.z-mul {\r\n color: var(--w--focus-color);\r\n }\r\n\r\n .w-option-checked {\r\n width: 18px;\r\n height: 18px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .w-option.z-mul {\r\n padding-left: 13px;\r\n }\r\n\r\n .w-option-checked.f-i {\r\n border-color: var(--w--focus-color);\r\n }\r\n</style>\n","import { render } from \"./Option.vue?vue&type=template&id=9b750ac0\"\nimport script from \"./Option.vue?vue&type=script&lang=js\"\nexport * from \"./Option.vue?vue&type=script&lang=js\"\n\nimport \"./Option.vue?vue&type=style&index=0&id=9b750ac0&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n\r\n export default {\r\n name: 'w-spinner',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['decimal', 'format', 'showButton', 'buttonPosition', 'step', 'autoFix', 'compare', 'minValue', 'maxValue'],\r\n mounted() {\r\n this.x.format && this.doFormat()\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n step: 1,\r\n autoFix: true,\r\n showButton: true,\r\n buttonPosition: 'right',\r\n inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 140\r\n }\r\n },\r\n doFormat() {\r\n let v = '' + this.x.modelValue\r\n let s = this.x.format.separator || ','\r\n let r = RegExp(s.replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&'), 'g')\r\n let t = $.numFormat(v, this.x.format.length, s, this.x.format.rightward)\r\n if (v !== t) {\r\n let n = this.$refs.v.selectionStart\r\n let b = v.slice(0, n).replace(r, '')\r\n this.val(t)\r\n if (document.activeElement === this.$refs.v) {\r\n let a = t.slice(0, n).replace(r, '')\r\n this.$nextTick(() => $.rngCursor(this.$refs.v, n + (b.length - a.length)))\r\n }\r\n }\r\n },\r\n stepBy(a) {\r\n if (!this.isNormal) return\r\n let m = this.defaultRuleValue('maxValue')\r\n let n = this.defaultRuleValue('minValue')\r\n let u = this.val()\r\n let v = $.numAdd($.number(u), a * this.x.step)\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n let r = v\r\n m != null && (r = Math.min(m, r))\r\n n != null && (r = Math.max(n, r))\r\n if (p) {\r\n if (p[0] == this) {\r\n let endValue = p[1].val()\r\n if (endValue != null) r = Math.min(endValue, r)\r\n } else if (p[1] == this) {\r\n let beginValue = p[0].val()\r\n if (beginValue != null) r = Math.max(beginValue, r)\r\n }\r\n }\r\n this.warn(false)\r\n this.focus()\r\n this.val(r)\r\n if (r == v) {\r\n if (this.tip_uid) {\r\n $.close(this.tip_uid)\r\n this.tip_uid = null\r\n }\r\n }\r\n this.x.format && this.doFormat()\r\n },\r\n isUsableVal(v) {\r\n return !this.getValidError(null, v)\r\n },\r\n isFocusTarget(el) { // implement\r\n return this.$refs.btns && this.$refs.btns.contains(el)\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.isNumber(v) && $.isNumber(tv)) {\r\n let d = $.number(v)\r\n let td = $.number(tv)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n this.x.format && this.doFormat()\r\n },\r\n onfocus(e) {\r\n this.baseFocus(e)\r\n },\r\n onblur(e) {\r\n let v = this.x.modelValue\r\n if (v && !this.isUsableVal(v) && this.x.autoFix) {\r\n let nv = $.numDecimal(v, this.x.decimal)\r\n nv = $.numRange(nv, this.x.minValue, this.x.maxValue)\r\n this.val(nv)\r\n }\r\n this.baseBlur(e)\r\n },\r\n html_button() {\r\n if (this.x.showButton) {\r\n if (this.x.buttonPosition === 'right') {\r\n return h('div', {\r\n class: 'w-spinner-step w-input-bbr f-flex-column f-oh',\r\n ref: 'btns'\r\n }, [\r\n h('button', {\r\n class: 'w-spinner-step-up f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-up\"></i>'\r\n }),\r\n h('button', {\r\n class: 'w-spinner-step-down f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(-1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-down\"></i>'\r\n }),\r\n ])\r\n } else if (this.x.buttonPosition === 'between') {\r\n return [\r\n h('button', {\r\n class: 'w-spinner-step-minus f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-minus\"></i>'\r\n }),\r\n h('button', {\r\n class: 'w-spinner-step-plus f-rel',\r\n disabled: this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-plus\"></i>'\r\n })\r\n ]\r\n }\r\n }\r\n\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) < $.number(r)) : (v < r)))\r\n return this.formErr(q, [r])\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) > $.number(r)) : (v > r)))\r\n return this.formErr(q, [r])\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v) => {\r\n this.x.format && (v = v.replace(RegExp(this.x.format.separator || ',', 'g'), ''))\r\n if (v != null) {\r\n if (!$.isNumber(v))\r\n return this.formErr({\r\n type: 'number_invalid'\r\n })\r\n let d = this.x.decimal\r\n v = '' + v\r\n if (!d && v.includes('.'))\r\n return this.formErr({\r\n type: 'number_integer'\r\n })\r\n if (d && d > 0 && $.strFrom(v, '.').length > d)\r\n return this.formErr({\r\n type: 'number_decimal_digit'\r\n }, [d])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({\r\n type: 'compare'\r\n }, e)\r\n }\r\n }\r\n }\r\n },\r\n input_prop() {\r\n return {\r\n 'w-valuetype': 'number',\r\n oninput: this.oninput,\r\n onfocus: this.onfocus,\r\n onblur: this.onblur,\r\n }\r\n },\r\n html_class() {\r\n return 'z-buttonposition-' + this.x.buttonPosition\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-spinner-step-up,\r\n .w-spinner-step-down {\r\n height: 15px;\r\n overflow: hidden;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .f-i {\r\n font-size: 14px;\r\n color: #777;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-minus {\r\n order: 0;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-right: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .w-input-value {\r\n order: 1;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-plus {\r\n order: 2;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-left: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n</style>\n","import script from \"./Spinner.vue?vue&type=script&lang=js\"\nexport * from \"./Spinner.vue?vue&type=script&lang=js\"\n\nimport \"./Spinner.vue?vue&type=style&index=0&id=ed7d1a32&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n import Dialog from './Dialog.vue'\r\n import Calendar from './Calendar.vue'\r\n\r\n export default {\r\n name: 'w-datepicker',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['showButton', 'multiple', 'format', 'autoFix', 'compare', 'minValue', 'maxValue', 'dropClass', 'enableHour', 'enableMinute', 'enableSecond',\r\n 'defaultHour', 'defaultMinute', 'defaultSecond' ],\r\n data() {\r\n return {\r\n showDrop: false,\r\n currentDate: null,\r\n focusValue: null,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n format: 'yyyy-MM-dd',\r\n autoFix: true,\r\n showButton: true,\r\n inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 180\r\n }\r\n },\r\n isUsableVal(v) {\r\n if (!$.dateValid(v, this.x.format)) return false\r\n let eh = this.x.enableHour && $.arrayNumber(this.x.enableHour)\r\n let em = this.x.enableMinute && $.arrayNumber(this.x.enableMinute)\r\n let es = this.x.enableSecond && $.arrayNumber(this.x.enableSecond)\r\n if (eh || em || es) {\r\n let d = $.dateParse(v, this.x.format)\r\n if ((eh && !eh.includes(d.getHours())) || (em && !em.includes(d.getMinutes())) || (es && !es.includes(d.getSeconds()))) return false\r\n }\r\n return true\r\n },\r\n onfocus(e) {\r\n this.focusValue = this.x.modelValue\r\n this.baseFocus(e)\r\n },\r\n onkeyup() {\r\n this.showDrop = true\r\n },\r\n onclose() {\r\n this.showDrop = false\r\n this.currentDate = null\r\n this.doAutoFix()\r\n },\r\n doAutoFix() {\r\n let v = this.x.modelValue\r\n if (v) {\r\n if (!this.isUsableVal(v)) {\r\n this.x.autoFix && this.val(this.focusValue)\r\n } else {\r\n let re = /\\b(\\d)\\b/g\r\n if (re.test(v)) {\r\n this.val(v.replace(re, '0$1'))\r\n }\r\n }\r\n }\r\n },\r\n drop() {\r\n if ($.br.mobile) {\r\n $.dateSheet({\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n success: this.calendarCallback,\r\n })\r\n } else {\r\n this.showDrop = true\r\n }\r\n },\r\n calendarCallback(val) {\r\n this.val(val)\r\n this.showDrop = false\r\n this.currentDate = null\r\n if (!$.br.mobile)\r\n this.focus()\r\n },\r\n getPeriod() {\r\n let minValue = this.x.minValue\r\n let maxValue = this.x.maxValue\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n if (p) {\r\n if (p[0] == this) {\r\n let end = p[1].formVal()\r\n if (end != null && (maxValue == null || maxValue > end)) maxValue = end\r\n } else if (p[1] == this) {\r\n let begin = p[0].formVal()\r\n if (begin != null && (minValue == null || minValue < begin)) minValue = begin\r\n }\r\n }\r\n return {\r\n minValue,\r\n maxValue\r\n }\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let f = this.x.format\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.dateValid(v, f) && $.dateValid(tv, f)) {\r\n let d = $.dateParse(v, f)\r\n let td = $.dateParse(tv, f)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n html_button() {\r\n let r = []\r\n let f = this.x.format || ''\r\n let timeCols = 0\r\n if (f.includes('H')) timeCols ++\r\n if (f.includes('m')) timeCols ++\r\n if (f.includes('s')) timeCols ++\r\n let onlyTime = /[Hms]/.test(f) && !/[yMd]/.test(f)\r\n \r\n if (this.x.showButton) r.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-date',\r\n disabled: this.x.disabled,\r\n }))\r\n if (this.showDrop) {\r\n r.push(h(Dialog, {\r\n ownproperty: true,\r\n class: ['f-dfish-dialog w-calendar-dialog', this.dropClass, {'z-hastime': timeCols, 'z-onlytime': onlyTime}],\r\n style: {'--w-datepicker-time-cols': (timeCols || '')},\r\n context: this,\r\n autoHide: true,\r\n snap: {\r\n target: () => this.snapElem(),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: this.onclose\r\n }, {\r\n default: () => h(Calendar, {\r\n height: '*',\r\n pad: true,\r\n current: this.currentDate || this.x.modelValue || '',\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n enableHour: this.x.enableHour,\r\n enableMinute: this.x.enableMinute,\r\n enableSecond: this.x.enableSecond,\r\n defaultHour: this.x.defaultHour,\r\n defaultMinute: this.x.defaultMinute,\r\n defaultSecond: this.x.defaultSecond,\r\n success: this.calendarCallback,\r\n 'onClick:item': (e, item) => {this.currentDate = item.value},\r\n })\r\n }))\r\n }\r\n return r\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) < $.dateParse(r, this.x.format))\r\n return this.formErr(q)\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) > $.dateParse(r, this.x.format))\r\n return this.formErr(q)\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v, r, q) => {\r\n if (this.x.multiple)\r\n return;\r\n if (v) {\r\n let c = v\r\n let d = $.dateParse(c, this.x.format)\r\n let y = d.getFullYear()\r\n let m = 9999\r\n let n = 1000\r\n if (y > m || y < n)\r\n return this.formErr({type: 'time_exceed'}, [n, m])\r\n if (c != $.dateFormat(d, this.x.format)) {\r\n return this.formErr({type: 'time_format'}, [$.dateFormat(new Date, this.x.format)]);\r\n }\r\n }\r\n if (this.defaultRuleValue('beforeNow') && v && v > $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'beforeNow'}, [this.x.beforeNow])\r\n if (this.defaultRuleValue('afterNow') && v && v < $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'afterNow'}, [this.x.afterNow])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({type: 'compare'}, e)\r\n }\r\n }\r\n },\r\n input_prop() {\r\n return $.br.mobile ? {\r\n readonly: true,\r\n } : {\r\n onfocus: this.onfocus,\r\n onkeyup: this.onkeyup,\r\n }\r\n },\r\n main_prop() {\r\n return {\r\n onclick: this.isNormal && this.drop,\r\n }\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./DatePicker.vue?vue&type=script&lang=js\"\nexport * from \"./DatePicker.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n\r\n export default {\r\n name: 'w-dropbox',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['multiple', 'cancelable', 'dropWidth'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n dropper: null,\r\n showDrop: false,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n click() {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n }\r\n },\r\n clickOption(opt) {\r\n if (this.x.multiple) {\r\n let cv = $.array(this.val(), true)\r\n if (opt.isFocus) $.lodash.pull(cv, opt.value)\r\n else cv.push(opt.value)\r\n this.val(cv)\r\n } else {\r\n let cv = this.x.cancelable && opt.isFocus ? '' : opt.value\r\n this.val(cv)\r\n this.showDrop = false\r\n }\r\n },\r\n formText() {\r\n return this.input_text\r\n },\r\n html_input() {\r\n let t = this.input_text\r\n let p = this.input_placeholder\r\n let m = !!$.br.mobile\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-dropbox-text f-line-1',\r\n title: t || p,\r\n }, t || (p && h('div', {class: 'w-input-placeholder'}, p))),\r\n this.showDrop && h(Dialog, {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog w-dropbox-dialog' + (m ? ' z-mob' : ''),\r\n width: m ? '100%' : Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width),\r\n scrollY: true,\r\n scrollView: '.z-on',\r\n autoHide: true,\r\n cover: m,\r\n snap: m ? null : {\r\n target: () => this.el('main'),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: () => this.showDrop = false\r\n }, this.$slots)\r\n ]\r\n },\r\n html_button() {\r\n return h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: this.x.disabled,\r\n })\r\n }\r\n },\r\n computed: {\r\n input_text() {\r\n let r = []\r\n let s = this.slots_children()\r\n let m = $.array(this.x.modelValue)\r\n $.lodash.each(m, v => {\r\n let i = s.findIndex(n => n.props.value == v)\r\n if (i > -1) r.push(i)\r\n if (!this.x.multiple) return false\r\n })\r\n return r.sort().map(v => s[v].props.text).join(', ')\r\n },\r\n main_prop() {\r\n return {\r\n onclick: this.isNormal && this.click\r\n }\r\n }\r\n }\r\n }\r\n</script>\n","import script from \"./DropBox.vue?vue&type=script&lang=js\"\nexport * from \"./DropBox.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import DropBox from './DropBox.vue'\r\n\r\n export default {\r\n name: 'w-pickbox',\r\n mixins: [DropBox],\r\n props: ['picker'],\r\n methods: {\r\n click(e) {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n } else if (this.x.picker) {\r\n this.clickPicker(e)\r\n }\r\n },\r\n clickClear(e) {\r\n e.stopPropagation()\r\n this.val(null)\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n closeDrop() {\r\n this.showDrop = false\r\n return this\r\n },\r\n html_button() {\r\n return [\r\n this.isNormal && h('button', {\r\n class: 'w-input-bbr w-pickbox-clear f-i f-i-close',\r\n onclick: this.clickClear\r\n }),\r\n this.$slots.default && h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: this.x.disabled,\r\n }),\r\n this.x.picker && h('button', {\r\n class: 'w-input-bbr f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n })\r\n ]\r\n }\r\n },\r\n computed: {\r\n input_value() {\r\n let m = this.x.modelValue\r\n let f = v => v && typeof v === 'object' ? JSON.stringify(v) : v\r\n if (Array.isArray(m)) {\r\n return m.map(v => f(v && v.value)).join(',')\r\n } else {\r\n return f(m && m.value)\r\n }\r\n },\r\n input_text() {\r\n let m = this.x.modelValue\r\n if (Array.isArray(m)) {\r\n return m.map(v => v.text).join(', ')\r\n } else\r\n return m && m.text\r\n }\r\n }\r\n }\r\n</script>\n\r\n<style>\r\n .w-pickbox-clear {\r\n display: none;\r\n font-size: 16px;\r\n }\r\n .w-pickbox-clear:hover {\r\n color: #f00;\r\n }\r\n .w-input:hover > .w-pickbox-clear {\r\n display: flex;\r\n }\r\n</style>","import script from \"./PickBox.vue?vue&type=script&lang=js\"\nexport * from \"./PickBox.vue?vue&type=script&lang=js\"\n\nimport \"./PickBox.vue?vue&type=style&index=0&id=0c31d95e&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-password',\r\n mixins: [FormBase],\r\n props: ['compare'],\r\n data() {\r\n return {\r\n hasBorder: true\r\n }\r\n },\r\n methods: {\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '=='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && !$.eval('v' + m + 'tv', {v, tv})) {\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n }\r\n }\r\n },\r\n input_type() {\r\n return 'password'\r\n }\r\n }\r\n }\r\n</script>\r\n","import script from \"./Password.vue?vue&type=script&lang=js\"\nexport * from \"./Password.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-range',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideRangeParent: this\r\n }\r\n },\r\n props: ['compare'],\r\n methods: {\r\n getRangeError() {\r\n let f = this.forms()\r\n if (f && f.length) {\r\n return f[0].getCompareError(f[0].formVal(), {target: f[1], mode: this.x.mode})\r\n }\r\n },\r\n forms() {\r\n return this.ownerView.fAll(null, this.el('main'))\r\n },\r\n snapElem() {\r\n return this.forms()[0] || this.el('main')\r\n },\r\n html_form() {\r\n let c = this.slots_children()\r\n c.splice(1, 0, h('div', {class: 'w-range-to'}, $.loc.to))\r\n //c.push(h('input', {type: 'hidden', ref:'v', id: this.uid + 'hdn'}))\r\n return c\r\n },\r\n },\r\n computed: {\r\n html_on() {\r\n return {\r\n onclick: e => this.warnClass = ''\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-range.z-full > .w-input > .w-formbase:not(.z-fixed) {\r\n flex: 1;\r\n }\r\n .w-range > .w-input > .w-formbase {\r\n height: 100%;\r\n flex-basis: var(--w-input-width);\r\n }\r\n .w-range-to {\r\n width: 28px;\r\n min-width: 20px;\r\n text-align: center;\r\n }\r\n</style>\r\n","import script from \"./Range.vue?vue&type=script&lang=js\"\nexport * from \"./Range.vue?vue&type=script&lang=js\"\n\nimport \"./Range.vue?vue&type=style&index=0&id=8a31b61c&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-combobox',\r\n mixins: [FormBase],\r\n emits: ['input', 'click:item', 'blur', 'focus'],\r\n props: ['multiple', 'dropper', 'picker', 'dropWidth', 'br'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n showSuggest: false,\r\n sug_timer: null,\r\n sensor_text: '',\r\n sensor_width: null,\r\n }\r\n },\r\n methods: {\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n $.lodash.remove(mv, m => !m || !m.text)\r\n this.val(mv)\r\n },\r\n complete(v) {\r\n this.addVal(v)\r\n this.clear()\r\n this.$nextTick(this.focus)\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n clear() {\r\n this.$refs.input.value = this.sensor_text = ''\r\n },\r\n focus() {\r\n this.$refs.input.focus()\r\n this.warn(false)\r\n return this\r\n },\r\n oninput(e) {\r\n let v = e.target.value\r\n this.sensor_text = v\r\n clearTimeout(this.sug_timer)\r\n if (v == '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n e.value = v\r\n this.trigger(e, v)\r\n }, 500)\r\n }\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 8) { // 8:backspace\r\n if (e.target.selectionStart === 0 && e.target.selectionEnd === 0) {\r\n let mv = $.array(this.x.modelValue, true)\r\n if (mv.length) {\r\n mv.splice(mv.length - 1, 1)\r\n this.x.modelValue = mv\r\n }\r\n }\r\n }\r\n //38: up, 40:down\r\n //if (this.showSuggest && (k == 38 || k == 40)) e.preventDefault()\r\n },\r\n onblur(e) {\r\n this.isFocus = false\r\n this.trigger('blur')\r\n setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) this.valid('blur')\r\n }, 100)\r\n },\r\n onfocus(e) {\r\n this.isFocus = true\r\n e.target.value && e.target.dispatchEvent(new Event('input'))\r\n this.trigger('focus')\r\n },\r\n clickItem(e, item) {\r\n e.stopPropagation()\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n },\r\n clickClose(e, item) {\r\n e.stopPropagation()\r\n let mv = $.array(this.x.modelValue, true)\r\n let i = mv.findIndex(v => v.value == item.value)\r\n if (i > -1) {\r\n mv.splice(i, 1)\r\n this.val(mv)\r\n }\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n clickDropper(e) {\r\n e.stopPropagation()\r\n this.suggest(!this.showSuggest)\r\n let c = this.x.dropper\r\n if (typeof c === 'function') c(this)\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options() {\r\n let m = this.x.modelValue\r\n if (m && typeof m !== 'string') {\r\n return [].concat(m).map(v => h('div', {\r\n class: ['w-combobox-option f-flex-center', {\r\n 'z-forbid': v.forbid\r\n }],\r\n onclick: e => this.clickItem(e, v)\r\n }, [h('div', {\r\n class: 'w-combobox-option-text f-line-1',\r\n title: v.text\r\n }, v.text),\r\n this.isNormal && h('div', {\r\n class: 'w-combobox-option-close f-i f-i-close',\r\n onclick: e => this.clickClose(e, v)\r\n })\r\n ]))\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-combobox-input-wrap'\r\n }, [\r\n h('div', {\r\n class: 'w-combobox-sensor',\r\n ref: 'sensor',\r\n }, this.sensor_text || (this.input_value ? null : this.input_placeholder)),\r\n h('input', {\r\n class: 'w-combobox-input',\r\n style: {\r\n width: this.sensor_width,\r\n },\r\n ref: 'input',\r\n oninput: this.oninput,\r\n onkeydown: this.onkeydown,\r\n onblur: this.onblur,\r\n onfocus: this.onfocus,\r\n placeholder: this.input_value ? null : this.input_placeholder,\r\n })\r\n ])\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: ['w-combobox-list f-flex-1 f-flex f-oh f-height', {'f-h-gap': $.br.compat.gap}],\r\n },\r\n this.html_options(),\r\n this.isNormal && this.html_var(),\r\n this.showSuggest && h(Dialog, {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width),\r\n scrollY: true,\r\n autoHide: true,\r\n snap: {\r\n target: () => this.el('main'),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: () => this.showSuggest = false\r\n }, this.$slots)\r\n )\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: !this.isNormal,\r\n onclick: this.clickDropper\r\n }))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n validateDefault: (v) => {\r\n if (this.$refs.input.value)\r\n return this.formErr({type: 'invalid_option'})\r\n },\r\n ...this.pubValidHooks,\r\n }\r\n },\r\n input_value() {\r\n return typeof this.x.modelValue === 'string' ? this.x.modelValue : $.array(this.x.modelValue).map(v => v.value)\r\n .join(',')\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text).join(', ')\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br\r\n }\r\n },\r\n main_prop() {\r\n return this.isNormal && {\r\n onclick: this.focus\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.sensor) {\r\n new ResizeObserver(() => {\r\n if (this.$refs.sensor) {\r\n this.sensor_width = this.$refs.sensor.offsetWidth + 'px'\r\n }\r\n }).observe(this.$refs.sensor)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-combobox-list {\r\n padding: 2px 3px;\r\n box-sizing: border-box;\r\n align-items: center;\r\n --w-compat-gap: 3px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-combobox-list.f-h-gap {\r\n padding: 1px 3px;\r\n }\r\n \r\n .w-combobox-list.f-h-gap>* {\r\n margin-top: 1px;\r\n margin-bottom: 1px;\r\n }\r\n\r\n .w-combobox-list>.w-combobox-input-wrap:first-child {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-combobox-input-wrap {\r\n display: flex;\r\n }\r\n\r\n .w-combobox-sensor {\r\n position: absolute;\r\n visibility: hidden;\r\n z-index: -1;\r\n white-space: pre-wrap; \r\n }\r\n\r\n .w-combobox-input {\r\n min-width: 14px;\r\n width: 14px;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-combobox-option {\r\n position: relative;\r\n height: 26px;\r\n border: 1px solid #e6e6e6;\r\n background: #f8f8f8;\r\n padding: 0 5px;\r\n background: #f8f8f8;\r\n box-sizing: border-box;\r\n max-width: calc(100% - 21px);\r\n }\r\n\r\n .w-combobox-option.z-forbid .w-combobox-option-text {\r\n text-decoration: line-through;\r\n }\r\n\r\n .w-combobox-option-close {\r\n color: #aaa;\r\n font-size: 12px;\r\n line-height: 0;\r\n margin-left: 5px;\r\n transform: translateY(1px);\r\n cursor: pointer;\r\n }\r\n\r\n .w-combobox-option-close:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option {\r\n border-color: #d0d0d0;\r\n background: transparent;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option ._s {\r\n padding-right: 7px\r\n }\r\n\r\n .w-combobox.z-br .w-combobox-list {\r\n flex-wrap: wrap;\r\n }\r\n</style>\n","import script from \"./ComboBox.vue?vue&type=script&lang=js\"\nexport * from \"./ComboBox.vue?vue&type=script&lang=js\"\n\nimport \"./ComboBox.vue?vue&type=style&index=0&id=691a138e&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n\r\n\r\n export default {\r\n name: 'w-linkbox',\r\n mixins: [FormBase],\r\n emits: ['input', 'dblclick:item'],\r\n props: ['multiple', 'picker', 'dropWidth', 'separator', 'strict', 'br'],\r\n created() {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n if (!this.isFocus) {\r\n this.initOptions(v)\r\n }\r\n })\r\n },\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n sugger: null,\r\n showSuggest: false,\r\n sug_timer: null,\r\n _KC: null,\r\n imeMode: false,\r\n paste_rng: null,\r\n currOpt: null,\r\n store: [],\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n strict: true\r\n }\r\n },\r\n initOptions(v) {\r\n if (v == null) v = this.x.modelValue\r\n if (v && typeof v !== 'string') {\r\n v = $.array(v)\r\n this.addStore(v)\r\n this.inp().innerHTML = this.html_options(v)\r\n }\r\n },\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n this.val(mv)\r\n },\r\n complete(a) {\r\n this.addStore(a)\r\n this.focus()\r\n let u = this.currOpt || $.rngElement()\r\n let p = this.x.separator || ','\r\n if (u) {\r\n if (u.tagName === 'U') {\r\n this.rng_text(u, 0, a.text)\r\n } else {\r\n if (u.tagName === 'I') {\r\n if (u.nextSibling && u.nextSibling.tagName === 'U') {\r\n u = u.nextSibling\r\n } else {\r\n u = $.after(u, '<u></u>')\r\n this.x.multiple && $.after(u, '<i>' + p + '</i>')\r\n }\r\n } else\r\n u = (!this.x.multiple && this.inp().querySelector('u')) || $.append(this.inp(), '<u></u>')\r\n this.rng_text(u, 0, a.text)\r\n }\r\n $.classAdd(u, '_o')\r\n u.setAttribute('data-value', a.value)\r\n a.forbid && u.setAttribute('data-forbid', '')\r\n let n = u.nextSibling\r\n $.rngCursor(n && !n.nextSibling ? n : u)\r\n this.x.multiple && !n && $.rngCursor($.after(u, '<i>' + p + '</i>')) // 光标在末尾则自动添加逗号分隔符\r\n let m = $.q(`u[data-value=\"${a.value}\"]`, this.inp())\r\n if (m.length > 1) m.eq(0).next('i').addBack().remove()\r\n this.save()\r\n }\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n input(a) {\r\n this.currOpt = a\r\n let v = a.innerText.replace(/^[\\s,]+|[\\s,]+$/g, '')\r\n clearTimeout(this.sug_timer)\r\n if (v == '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n this.trigger(this.createEvent('input', v), v)\r\n }, 500)\r\n }\r\n },\r\n focus() {\r\n this.$refs.inp.focus()\r\n this.warn(false)\r\n return this\r\n },\r\n inp() {\r\n return this.$refs.inp\r\n },\r\n fixStyle() {\r\n let c = $.rngElement()\r\n let g = false\r\n let t\r\n let uid = this.uid\r\n let inp = this.inp()\r\n if (!inp.contains(c))\r\n c = inp\r\n t = c.innerText\r\n if (this.paste_rng)\r\n c = this.paste_rng.parentElement()\r\n if (c.id === uid)\r\n c = inp\r\n if (c.id === uid + 't') {\r\n if (t) {\r\n if (c.firstChild.nodeType === 3) {\r\n let r = $.rngCursor(c)\r\n let u = document.createElement('u')\r\n r.extractContents()\r\n u.appendChild(document.createTextNode(t))\r\n r.insertNode(u)\r\n $.rngCursor(u)\r\n c = u\r\n } else {\r\n $.q('br', inp).remove()\r\n if (c.firstChild)\r\n c = c.firstChild\r\n else\r\n $.rngCursor(c)\r\n }\r\n } else\r\n return this.closeDrop()\r\n }\r\n $.q('br', inp).remove()\r\n // 输入框内之只允许存在U和I两种标签。输入过程中浏览器可能会自动生成 <font> 标签,需要去除它\r\n if (c.tagName === 'FONT') {\r\n if (c.parentNode.tagName === 'U') {\r\n let d = c.previousSibling.nodeValue\r\n let c = c.parentNode\r\n let t = c.innerText\r\n this.rng_text(c, t.indexOf(d) + d.length + 1, t)\r\n } else if (c.parentNode.id === uid + 't') {\r\n t = c.parentNode.innerText\r\n c = $.replaceWith(c, '<u></u>')\r\n c.innerText = t\r\n }\r\n }\r\n\r\n // 如果U标签后面跟的标签不是 <i>,</i> 就要合并\r\n if (c !== inp && c.tagName !== 'I' && c.nextSibling && c.nextSibling.tagName !== 'I') {\r\n if (c.nextSibling.nodeType === 3) {\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n } else {\r\n t = c.innerText\r\n this.rng_text(c, t.length, t + c.nextSibling.innerText)\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n g = true // 有更新\r\n }\r\n }\r\n $.q('u:has(br)', inp).remove()\r\n t = c.innerText\r\n // match text\r\n let n = []\r\n let p = this.x.separator || ','\r\n\r\n // 文本中如果包含分隔符 , 则分成若干选项\r\n if (this.x.multiple && t.length > 1 && t.indexOf(p) > -1) {\r\n let d = [],\r\n f = t.length - $.rngCursorOffset(),\r\n h, m = []\r\n t.split(p).forEach(s => {\r\n if (h = $.strTrim(s)) {\r\n g = this.param(h)\r\n d.push('<u' + (g ? ' class=_o data-value=\"' + g.value + '\"' + (g.forbid ? ' data-forbid' : '') : '') +\r\n '>' + h + '</u>')\r\n g ? m.push('u[data-value=\"' + g.value + '\"]') : n.push(h)\r\n } else\r\n d.push('')\r\n })\r\n m.length && (m = $.q(m.join(','), inp).next('i').addBack()) // 收集重复数据,以备删除\r\n let o = $.replaceWith(c, d.join('<i>' + p + '</i>'))\r\n let k = 0\r\n if (!this.paste_rng || this._KC === 188) { // 保留原有光标位置\r\n do {\r\n if ((k += o.innerText.length) >= f) {\r\n this.rng_text(o, k - f)\r\n break\r\n }\r\n } while (o = o.previousSibling)\r\n }\r\n m.length && (m.remove(), $.q('i + i, i:first-child', inp).remove()) // 删除重复数据\r\n g = true\r\n if ((c = $.rngElement()) && c.tagName === 'U' && !c.getAttribute('data-value'))\r\n this.input(c)\r\n else\r\n this.closeDrop()\r\n } else {\r\n if (t) {\r\n if ($.classAny(c, '_o') && !this.param(t)) {\r\n $.classRemove(c, '_o')\r\n c.removeAttribute('data-value')\r\n g = true\r\n } else if (!this.x.strict)\r\n g = true\r\n this.input(c)\r\n } else {\r\n g = true\r\n this.closeDrop()\r\n }\r\n }\r\n if (g) {\r\n this.save()\r\n //this._online && n.length > 1 && this.match({text: n.join(p)})\r\n }\r\n this.paste_rng = null\r\n },\r\n // 选项上的光标移动到指定位置 /@a -> elem, b -> cursor point, c -> text?\r\n rng_text(a, b, c) {\r\n let n = $.rngSelection()\r\n c != null && (a.innerText = c)\r\n n.selectNodeContents(a)\r\n $.rngCursor(n, b)\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n clickDropper(e) {\r\n e.stopPropagation()\r\n this.suggest(true)\r\n let c = this.x.dropper\r\n if (typeof c === 'function') c(this)\r\n },\r\n addStore(m) {\r\n if (m && typeof m !== 'string') {\r\n let r = $.array(m).filter(v => !this.store.find(s => s.value == v.value))\r\n if (r.length) this.store = this.store.concat(r)\r\n }\r\n },\r\n param(t) {\r\n return this.store.find(v => v.text == t)\r\n },\r\n save() {\r\n let strict = this.x.strict\r\n let r = []\r\n let m = []\r\n $.q('> u', this.inp()).each((i, u) => {\r\n let value = u.getAttribute('data-value')\r\n let text = u.innerText\r\n if (value) {\r\n r.push(value)\r\n m.push({\r\n value,\r\n text\r\n })\r\n } else if (!strict) {\r\n r.push(text)\r\n m.push({\r\n value: text\r\n })\r\n }\r\n })\r\n //this.$refs.v.value = r.join(',')\r\n this.val(m)\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 13) {\r\n e.preventDefault()\r\n }\r\n },\r\n onkeyup(e) {\r\n if (!this.imeMode) {\r\n let k = this._KC = e.keyCode\r\n let m\r\n if (k === 13 || k === 38 || k === 40 || k === 17) { // 38:up, 40:down, 17:ctrl\r\n e.stopPropagation()\r\n } else {\r\n this.fixStyle()\r\n }\r\n this._KC = null\r\n }\r\n },\r\n onclick(e) {\r\n if (this.isNormal) {\r\n if (e.target && e.target.tagName === 'U' && !e.target.getAttribute('data-value')) {\r\n this.input(e.target)\r\n } else {\r\n let c = $.rngElement()\r\n c.tagName === 'U' ? this.input(c) : this.closeDrop()\r\n }\r\n }\r\n },\r\n ondblclick(e) {\r\n if (e.target.tagName === 'U' && e.target.getAttribute('data-value')) {\r\n let v = $.array(this.x.modelValue).find(o => o.value == e.target.getAttribute('data-value'))\r\n if (v) {\r\n e.runType = 'dblclick:item'\r\n e.value = v\r\n this.trigger(e, v)\r\n window.getSelection().removeAllRanges()\r\n }\r\n }\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options(v) {\r\n let p = this.x.separator || ','\r\n if (v == null) v = this.x.modelValue\r\n if (v !== 'string') {\r\n let b = $.array(v)\r\n let r = []\r\n $.lodash.each(b, (o, i) => {\r\n r.push('<u' + (o.value ? ' class=_o data-value=\"' + o.value + '\"' : '') + (o.forbid ? ' data-forbid' :\r\n '') + '>' + o.text + '</u>')\r\n if (!this.x.multiple) return false\r\n r.push('<i>' + p + '</i>')\r\n })\r\n return r.join('')\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-linkbox-input f-flex-1',\r\n ref: 'inp',\r\n id: this.uid + 't',\r\n contentEditable: this.isNormal,\r\n onkeyup: this.onkeyup,\r\n onkeydown: this.onkeydown,\r\n onclick: this.onclick,\r\n ondblclick: this.ondblclick,\r\n onfocus: e => {\r\n this.isFocus = true\r\n },\r\n onblur: e => {\r\n this.isFocus = false\r\n },\r\n })\r\n },\r\n html_input() {\r\n let p = this.input_placeholder\r\n return [\r\n this.html_input_hidden(),\r\n this.html_var(),\r\n h('div', {\r\n class: 'w-input-placeholder'\r\n }, this.input_value ? null : p),\r\n this.showSuggest && h(Dialog, {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width),\r\n scrollY: true,\r\n autoHide: true,\r\n snap: {\r\n target: () => this.el('main'),\r\n position: 'v',\r\n indent: 1\r\n },\r\n onClose: () => this.showSuggest = false\r\n }, this.$slots)\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-caret-down',\r\n disabled: !this.isNormal,\r\n onclick: this.clickDropper\r\n }))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-bbr f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (this.x.strict && $.q('u:not([data-value])').length > 0) {\r\n return this.formErr({\r\n type: 'invalid_option'\r\n })\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n return typeof this.x.modelValue === 'string' ? this.x.modelValue : $.array(this.x.modelValue).map(v => v.value)\r\n .join(',')\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text || v.value).join(\r\n ', ')\r\n },\r\n main_prop() {\r\n return {\r\n onclick: this.isNormal && this.focus\r\n }\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br,\r\n 'z-dc': this.getOn('dblclick:item')\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.initOptions()\r\n this.inp().addEventListener('compositionstart', () => {\r\n this.imeMode = true\r\n })\r\n this.inp().addEventListener('compositionend', () => {\r\n this.imeMode = false\r\n })\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-linkbox-input {\r\n height: 100%;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input {\r\n padding-left: 10px;\r\n min-height: 30px;\r\n line-height: 30px;\r\n font-family: verdana;\r\n font-style: normal;\r\n outline: none;\r\n overflow: hidden;\r\n word-break: keep-all;\r\n word-wrap: normal;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u {\r\n padding-right: 1px;\r\n color: #999;\r\n text-decoration: none\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o {\r\n color: #333\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o[data-forbid] {\r\n text-decoration: line-through !important;\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u {\r\n color: #333\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u._o {\r\n color: #275696;\r\n text-decoration: underline\r\n }\r\n\r\n .w-linkbox .w-linkbox-input i {\r\n font-style: normal;\r\n padding: 0 3px 0 1px;\r\n color: #999;\r\n }\r\n\r\n .w-linkbox ._v {\r\n display: inline-block;\r\n height: 22px;\r\n line-height: 22px;\r\n vertical-align: middle\r\n }\r\n\r\n .w-linkbox.z-loading {\r\n color: gray;\r\n }\r\n\r\n .w-linkbox.z-loading .w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox.z-br .w-linkbox-input {\r\n overflow: visible;\r\n word-break: break-all;\r\n word-wrap: break-word;\r\n }\r\n\r\n .w-linkbox .w-input {\r\n position: relative;\r\n }\r\n\r\n .w-linkbox-input:not(:empty)~.w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox .w-input-placeholder {\r\n position: absolute;\r\n left: 0;\r\n padding-left: 10px;\r\n pointer-events: none;\r\n }\r\n</style>\n","import script from \"./LinkBox.vue?vue&type=script&lang=js\"\nexport * from \"./LinkBox.vue?vue&type=script&lang=js\"\n\nimport \"./LinkBox.vue?vue&type=style&index=0&id=60e9da99&lang=css\"\n\nexport default script","<template>\r\n <w-dialog ref=\"dialog\" class=\"w-jigsaw-dialog\" :width=\"width\" :height=\"height\" :context=\"context\">\r\n <img class=\"w-jigsaw-big\" :src=\"bigSrc\">\r\n <img class=\"w-jigsaw-small\" :src=\"smallSrc\" :width=\"smallWidth\" :style=\"{left: smallLeft + 'px'}\" @dragstart.prevent=\"dragstart\" @mousedown=\"mousedown\">\r\n <span @click=\"refresh\" class=\"w-jigsaw-refresh\">刷新</span>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n\t\tprops: ['width', 'height', 'context'],\r\n data() {\r\n return {\r\n smallLeft: 0\r\n }\r\n },\r\n watch: {\r\n 'context.x.modelValue': {\r\n handler(v) {\r\n let m = this.context.max()\r\n let n = this.context.min()\r\n this.smallLeft = (this.width - this.smallWidth) * (v / (m - n))\r\n }\r\n }\r\n },\r\n\t\tmounted() {\r\n\t\t\tconsole.log(this.context.x.modelValue)\r\n\t\t},\r\n methods: {\r\n refresh(e) {\r\n this.context.refresh(e)\r\n },\r\n dragstart(e) {\r\n //\r\n },\r\n mousedown(e) {\r\n this.context.dragstart(e)\r\n }\r\n },\r\n computed: {\r\n bigSrc() {\r\n return this.context.x.big.src\r\n },\r\n smallSrc() {\r\n return this.context.x.small.src\r\n },\r\n smallWidth() {\r\n return this.height * (this.context.x.small.width / this.context.x.small.height)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw-big {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-jigsaw-small {\r\n position: absolute;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-jigsaw-refresh {\r\n position: absolute;\r\n top: 5px;\r\n right: 5px;\r\n color: #fff;\r\n cursor: pointer;\r\n text-shadow: 0 0 3px #000;\r\n }\r\n</style>\n","import { render } from \"./TemplateJigsaw.vue?vue&type=template&id=ff6d7394\"\nimport script from \"./TemplateJigsaw.vue?vue&type=script&lang=js\"\nexport * from \"./TemplateJigsaw.vue?vue&type=script&lang=js\"\n\nimport \"./TemplateJigsaw.vue?vue&type=style&index=0&id=ff6d7394&lang=css\"\nscript.render = render\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import TemplateJigsaw from '../template/TemplateJigsaw.vue'\r\n\r\n\r\n const init_text = $.loc.form.jigsaw_drag_right\r\n\r\n export default {\r\n name: 'w-jigsaw',\r\n mixins: [FormBase],\r\n emits: ['drop', 'click:refresh'],\r\n props: ['big', 'small', 'dropWidth'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: init_text,\r\n locked: false,\r\n isSuccess: false,\r\n isError: false,\r\n dropper: null,\r\n\t\t\t\tshowDrop: false,\r\n }\r\n },\r\n methods: {\r\n success(text) {\r\n this.text = text\r\n this.locked = true\r\n this.isSuccess = true\r\n this.setThumbLeft()\r\n },\r\n error(text, timeout, fn) {\r\n if (!text) text = ''\r\n this.isError = true\r\n this.warn(true)\r\n this.setThumbLeft(0)\r\n if (timeout) {\r\n this.locked = true\r\n this.text = text + `(${timeout/1000})`\r\n let timer = setInterval(() => {\r\n timeout -= 1000\r\n this.text = text + `(${timeout/1000})`\r\n if (timeout <= 0) {\r\n clearInterval(timer)\r\n this.reset()\r\n fn && fn()\r\n }\r\n }, 1000)\r\n } else {\r\n fn && fn()\r\n }\r\n },\r\n reset() {\r\n this.locked = false\r\n this.isError = false\r\n this.isSuccess = false\r\n this.text = init_text\r\n this.setThumbLeft(0)\r\n },\r\n refresh(e) {\r\n e.runType = 'click:refresh'\r\n this.trigger(e)\r\n },\r\n setThumbLeft(left) {\r\n if (left == null) {\r\n left = $.number(this.$refs.thumb.style.left)\r\n } else {\r\n this.$refs.thumb.style.left = left + 'px'\r\n }\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n let hf = (left + (g / 2)) > (w / 2)\r\n this.$refs.text.style.left = hf ? 0 : (left + g) + 'px'\r\n this.$refs.text.style.right = hf ? (w - left) + 'px' : 0\r\n this.el().classList.remove('z-drag')\r\n $.close(this.dropper)\r\n },\r\n dragstart(e) {\r\n if (!this.isNormal || this.locked) return\r\n this.warn(false)\r\n let a = this.$refs.thumb\r\n let x = $.eventX(e)\r\n let m = this.max()\r\n let n = this.min()\r\n let f = $.number(a.style.left)\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n $.moveup((e) => {\r\n let c = $.eventX(e)\r\n let l = $.numRange(f + c - x, 0, w - g)\r\n a.style.left = l + 'px'\r\n this.$refs.track.style.width = (l + g) + 'px'\r\n this.x.modelValue = Math.floor(Math.floor((m - n) * l / (w - g)))\r\n this.el().classList.add('z-drag')\r\n }, (e, moved) => {\r\n if (moved) a.dispatchEvent(new Event('drop'))\r\n }, e)\r\n },\r\n mouseenter(e) {\r\n if (this.dropper || !this.x.big || this.isSuccess || this.locked) return\r\n this.warn(false)\r\n\t\t\t\tthis.showDrop = true\r\n },\r\n drop(e) {\r\n this.trigger(e, this.x.modelValue)\r\n },\r\n max() {\r\n let v = this.x.maxValue\r\n return v == null ? 100 : v\r\n },\r\n min() {\r\n let v = this.x.minValue\r\n return v == null ? 0 : v\r\n },\r\n thumbWidth() {\r\n return $.bcr(this.$refs.thumb).width\r\n },\r\n mainWidth() {\r\n return $.bcr(this.$refs.main).width\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(), ,\r\n [\r\n h('div', {\r\n ref: 'track',\r\n class: 'w-jigsaw-track',\r\n }),\r\n h('div', {\r\n ref: 'text',\r\n class: 'w-jigsaw-text f-flex-center f-line-1',\r\n }, this.text),\r\n ]\r\n ]\r\n },\r\n html_button() {\r\n\t\t\t\tlet r = [\r\n\t\t\t\t\th('button', {\r\n\t\t\t\t\t ref: 'thumb',\r\n\t\t\t\t\t class: ['w-jigsaw-thumb w-input-bbr f-i', this.isSuccess ? 'f-i-check' :\r\n\t\t\t\t\t 'f-i-long-arrow-right'\r\n\t\t\t\t\t ],\r\n\t\t\t\t\t disabled: this.x.disabled,\r\n\t\t\t\t\t onmousedown: this.dragstart,\r\n\t\t\t\t\t ondrop: this.drop,\r\n\t\t\t\t\t})\r\n\t\t\t\t]\r\n\t\t\t\tif (!this.isSuccess && !this.isError && this.showDrop) {\r\n\t\t\t\t\tlet width = Math.max($.number(this.x.dropWidth), $.bcr(this.el('main')).width)\r\n\t\t\t\t\tlet height = Math.ceil(width * (this.x.big.height / this.x.big.width))\r\n\t\t\t\t\tr.push(h(TemplateJigsaw, {\r\n\t\t\t\t\t ownproperty: true,\r\n\t\t\t\t\t width,\r\n\t\t\t\t\t height,\r\n\t\t\t\t\t autoHide: true,\r\n\t\t\t\t\t hoverDrop: true,\r\n\t\t\t\t\t context: this,\r\n\t\t\t\t\t snap: {\r\n\t\t\t\t\t target: () => this.el('main'),\r\n\t\t\t\t\t position: 'v'\r\n\t\t\t\t\t },\r\n\t\t\t\t\t onClose: () => this.showDrop = null\r\n\t\t\t\t\t}))\r\n\t\t\t\t}\r\n return r\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (!this.isSuccess) {\r\n return this.formErr({type: 'jigsaw_required'})\r\n }\r\n }\r\n }\r\n },\r\n html_class() {\r\n return {\r\n 'z-success': this.isSuccess,\r\n }\r\n },\r\n main_prop() {\r\n return {\r\n onmouseenter: this.mouseenter\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw>.w-input {\r\n position: relative;\r\n background: #f8f8f8;\r\n overflow: visible;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-jigsaw-thumb {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n width: 30px;\r\n background: #fff;\r\n box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .w-jigsaw-thumb:hover,\r\n .w-jigsaw.z-drag .w-jigsaw-thumb {\r\n background: var(--w--focus-color);\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw-text {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 30px;\r\n right: 0;\r\n color: #a9a9a9;\r\n }\r\n\r\n .w-jigsaw-track {\r\n display: none;\r\n position: absolute;\r\n left: -1px;\r\n top: -1px;\r\n bottom: -1px;\r\n background: #e5f3ff;\r\n border: 1px solid transparent;\r\n }\r\n\r\n\r\n .w-jigsaw.z-drag .w-jigsaw-text {\r\n display: none;\r\n }\r\n\r\n .w-jigsaw.z-drag .w-jigsaw-track {\r\n display: block;\r\n border-color: var(--w--focus-color);\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-track {\r\n display: block;\r\n background: #eaffe5;\r\n border-color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-thumb {\r\n background: #24c301;\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-text {\r\n color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-err .w-jigsaw-text {\r\n color: #f00;\r\n }\r\n</style>\r\n","import script from \"./Jigsaw.vue?vue&type=script&lang=js\"\nexport * from \"./Jigsaw.vue?vue&type=script&lang=js\"\n\nimport \"./Jigsaw.vue?vue&type=style&index=0&id=c3b00b68&lang=css\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-form',\r\n mixins: [FormBase],\r\n props: ['vertical'],\r\n methods: {\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n this.$slots.default && this.$slots.default()\r\n ]\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n required: (v, r, q) => {\r\n if (r && (!v || v === '[]' || v === '{}')) {\r\n return this.formErr(q)\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n let mv = this.x.modelValue\r\n return mv == null ? '' : typeof mv === 'object' ? JSON.stringify(mv) : mv\r\n },\r\n html_class() {\r\n return [{\r\n 'z-vertical': this.x.vertical,\r\n }]\r\n },\r\n html_style() {\r\n return {\r\n '--w-form-gap': $.unitSize(this.x.gap)\r\n }\r\n },\r\n main_prop() {\r\n return this.name && {\r\n onclick: e => this.warn(false)\r\n }\r\n }\r\n },\r\n }\r\n</script>\n","import script from \"./Form.vue?vue&type=script&lang=js\"\nexport * from \"./Form.vue?vue&type=script&lang=js\"\n\nexport default script","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-rate',\r\n mixins: [FormBase],\r\n props: ['allowHalf', 'cancelable', 'sum', 'count', 'text'],\r\n data() {\r\n return {\r\n hoverWrap: false,\r\n hoverIndex: -1,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n sum: 5,\r\n count: 5,\r\n }\r\n },\r\n hoverItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.hoverIndex = i\r\n },\r\n clickItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.x.modelValue = this.x.cancelable && this.x.modelValue == i ? '' : i\r\n },\r\n html_star(i) {\r\n return h(Img, {\r\n class: ['w-rate-star-icon', {'z-hv': this.hoverWrap && i <= this.hoverIndex, 'z-on': !this.hoverWrap && i <= this.x.modelValue}],\r\n src: '.f-i .f-i-star-full', \r\n onMouseenter: e => this.hoverItem(e, i),\r\n onClick: e => this.clickItem(e, i),\r\n disabled: !this.isNormal\r\n })\r\n },\r\n html_input() {\r\n let half = this.x.allowHalf ? .5 : 1\r\n let sum = this.x.sum || 5\r\n let count = this.x.count || 5\r\n let step = sum * half / count \r\n let stars = []\r\n for (let i = step; i <= this.x.sum; i += step / half) {\r\n let icons = [this.html_star(i)]\r\n if (this.x.allowHalf) icons.push(this.html_star(i + step))\r\n stars.push(h('li', {class: 'w-rate-star'}, icons))\r\n }\r\n return [\r\n this.html_input_hidden(),\r\n h('ul', {\r\n class: 'w-rate-wrap',\r\n onMouseenter: e => this.isNormal && (this.hoverWrap = true),\r\n onMouseleave: e => this.isNormal && (this.hoverWrap = false),\r\n },\r\n stars\r\n ),\r\n this.x.text && this.x.modelValue && h('span', {class: 'w-rate-text'}, this.x.text[(this.x.modelValue - step) / half])\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {\r\n 'z-allow-half': this.x.allowHalf\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-rate-wrap {\r\n padding: 0 0 0 10px;\r\n margin: 0;\r\n display: flex;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star:last-child {\r\n margin-right: 0;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star-icon {\r\n position: relative;\r\n overflow: hidden;\r\n align-items: flex-start;\r\n color: #bbb;\r\n }\r\n .w-rate-star-icon:nth-child(2) {\r\n align-items: flex-end;\r\n margin-top: -100%;\r\n margin-left: 50%;\r\n }\r\n .w-rate-star-icon.z-hv,\r\n .w-rate-star-icon.z-on {\r\n color: gold;\r\n }\r\n \r\n .w-rate.z-allow-half .w-rate-star-icon {\r\n width: 50%;\r\n }\r\n \r\n .w-rate-text {\r\n margin-left: 10px;\r\n }\r\n\r\n</style>\r\n","import script from \"./Rate.vue?vue&type=script&lang=js\"\nexport * from \"./Rate.vue?vue&type=script&lang=js\"\n\nimport \"./Rate.vue?vue&type=style&index=0&id=54536848&lang=css\"\n\nexport default script","import $ from '../dfish.js'\r\nimport '../assets/dfish.css'\r\n\r\nimport directive from '../directive/index.js'\r\n\r\nimport DocView from './DocView.vue'\r\nimport View from './View.vue'\r\nimport Pop from './Pop.vue'\r\nimport Dialog from './Dialog.vue'\r\nimport DialogMove from './DialogMove.vue'\r\nimport Alert from './Alert.vue'\r\nimport Confirm from './Confirm.vue'\r\nimport Tip from './Tip.vue'\r\nimport Menu from './Menu.vue'\r\nimport Loading from './Loading.vue'\r\n\r\nimport Vertical from './Vertical.vue'\r\nimport Horizontal from './Horizontal.vue'\r\nimport Table from './Table.vue'\r\nimport TableColumns from './TableColumns.vue'\r\nimport TableColumn from './TableColumn.vue'\r\nimport TableTBody from './TableTBody.vue'\r\nimport TableTHead from './TableTHead.vue'\r\nimport TableTR from './TableTR.vue'\r\nimport TableTD from './TableTD.vue'\r\nimport TableTH from './TableTH.vue'\r\nimport Grid from './Grid.vue'\r\nimport Swiper from './Swiper.vue'\r\nimport SwiperItem from './SwiperItem.vue'\r\nimport Tabs from './Tabs.vue'\r\nimport Tab from './Tab.vue'\r\n\r\nimport Album from './Album.vue'\r\nimport Img from './Img.vue'\r\nimport ButtonBar from './ButtonBar.vue'\r\nimport Button from './Button.vue'\r\nimport SubmitButton from './SubmitButton.vue'\r\nimport MenuButton from './MenuButton.vue'\r\nimport Html from './Html.vue'\r\nimport Tree from './Tree.vue'\r\nimport Leaf from './Leaf.vue'\r\nimport PageBar from './PageBar.vue'\r\nimport Split from './Split.vue'\r\nimport Toggle from './Toggle.vue'\r\nimport Video from './Video.vue'\r\nimport Progress from './Progress.vue'\r\nimport Calendar from './Calendar.vue'\r\nimport Timeline from './Timeline.vue'\r\nimport TimelineItem from './TimelineItem.vue'\r\nimport SlidePicker from './SlidePicker.vue'\r\n\r\nimport Label from './Label.vue'\r\nimport Hidden from './Hidden.vue'\r\nimport Text from './Text.vue'\r\nimport Textarea from './Textarea.vue'\r\nimport CheckBoxGroup from './CheckBoxGroup.vue'\r\nimport CheckBox from './CheckBox.vue'\r\nimport RadioGroup from './RadioGroup.vue'\r\nimport Radio from './Radio.vue'\r\nimport TripleBox from './TripleBox.vue'\r\nimport Switch from './Switch.vue'\r\nimport FileUpload from './FileUpload.vue'\r\nimport MediaUpload from './MediaUpload.vue'\r\nimport ImageUpload from './ImageUpload.vue'\r\nimport Option from './Option.vue'\r\nimport Spinner from './Spinner.vue'\r\nimport DatePicker from './DatePicker.vue'\r\nimport DropBox from './DropBox.vue'\r\nimport PickBox from './PickBox.vue'\r\nimport Password from './Password.vue'\r\nimport Range from './Range.vue'\r\nimport ComboBox from './ComboBox.vue'\r\nimport LinkBox from './LinkBox.vue'\r\nimport Jigsaw from './Jigsaw.vue'\r\nimport Form from './Form.vue'\r\nimport Rate from './Rate.vue'\r\n\r\n\r\nconst WIDGET = {\r\n DocView, View, Pop, Dialog, DialogMove, Alert, Confirm, Tip, Menu, Loading,\r\n Grid, Vertical, Horizontal, Table, TableColumns, TableColumn, TableTBody, TableTHead, TableTR, TableTD, TableTH, Swiper, SwiperItem, Tabs, Tab,\r\n Album, Img, ButtonBar, Button, SubmitButton, MenuButton, Html, Tree, Leaf, PageBar, Split, Toggle, Video, Progress, Calendar, Timeline, TimelineItem, SlidePicker,\r\n Label, Hidden, Text, Textarea, CheckBoxGroup, CheckBox, RadioGroup, Radio, TripleBox, Switch, FileUpload, MediaUpload, ImageUpload, Option,\r\n Spinner, DatePicker, DropBox, PickBox, Password, Range, ComboBox, LinkBox, Jigsaw, Form, Rate\r\n}\r\n\r\n//每个组件从这里曝露,以便在某些极端情境下,业务可以修改源码\r\n$.WIDGET = WIDGET\r\n\r\n//按Vue要求提供install接口\r\n$.install = (Vue) => {\r\n //注册组件\r\n Object.keys(WIDGET).forEach(k => Vue.component(WIDGET[k].name, WIDGET[k]))\r\n //注册指令\r\n Vue.use(directive)\r\n}\r\n\r\nexport default $\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MediaUpload.vue?vue&type=style&index=0&id=5df6accd&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ComboBox.vue?vue&type=style&index=0&id=691a138e&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Dialog.vue?vue&type=style&index=0&id=58f631d8&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FileUpload.vue?vue&type=style&index=0&id=3ae0ecf4&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PageBar.vue?vue&type=style&index=0&id=a0cae56c&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Switch.vue?vue&type=style&index=0&id=6e279520&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Table.vue?vue&type=style&index=0&id=0024ac8a&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Spinner.vue?vue&type=style&index=0&id=ed7d1a32&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Tree.vue?vue&type=style&index=0&id=53bcfba2&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Menu.vue?vue&type=style&index=0&id=0cc8b3b0&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Html.vue?vue&type=style&index=0&id=612320da&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ViewAbs.vue?vue&type=style&index=0&id=1a500338&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Tabs.vue?vue&type=style&index=0&id=554c0a38&lang=css\""],"sourceRoot":""}
|