main.js 968 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. var $0=`div`,$6=`YYYY/MM/DD HH:mm:ss`,$7=`button`,$8=`span`,$9=`JOURNAL`,$q=`string`,$z=`function`,$00=`DAILY`,$01=`thino-hidden`,$02=`YYYY-MM-DD`,$04=`day`,$05=`click`,$06=`TASK-TODO`,$07=`ARCHIVED`,$08=`YYYYMMDDHHmmss`,$09=`input`,$0b=`NORMAL`,$0c=`thino`,$0d=`application/json`,$0e=`number`,$0f=`obsidian-memos`,$0g=`MULTI`,$0h=`Thino`,$0i=`FILE`,$0j=`object`,$0k=`obsidian`,$0l=`text`,$0m=`periodic-notes`,$0n=`thino_view`,$0o=`textarea`,$0p=`TASK-DONE`,$0q=`true`,$0r=`CANVAS`,$0s=`month`,$0t=`pkmer`,$0u=`^\\s*(\\-|\\*|(\\d{1,}\\.))\\s(\\[(.{1})\\]\\s?)?(\\<time\\>)?(\\d{1,2})\\:(\\d{2})(.*)`,$0v=`active`,$0w=`div[data-type='thino_view'] .view-content .memo-show-editor-button:not(.thino-hidden)`,$0x=`CONTAIN`,$0y=`list`,$0z=`chevron-right`,$10=`DELETED`,$11=`archive`,$12=`error`,$13=`https://raw.githubusercontent.com/Quorafind/Obsidian-Thino/main/CHANGELOG.md`,$14=`image/png`,$15=`more-horizontal`,$16=`tip-text`,$17=`HH:mm`,$18=`ProcessEntriesBelow`,$19=`YYYY/MM/DD HH:mm:SS`,$1a=`focus`,$1b=`PUBLIC`,$1c=`calendar`,$1d=`https://github.com/quorafind/obsidian-thino/`,$1f=`center`,$1g=`inline`,$1h=`focus-on-textarea`,$1i=`none`,$1j=`Copy failed, please long-press the field above to copy manually`,$1k=`normal-text`,$1l=`_blank`,$1m=`bottom`,$1n=`btns-container`,$1o=`YYYY-MM-DD HH:mm:ss`,$1p=`button-group`,$1q=`heatmap`,$1r=`https://github.com/Quorafind/Obsidian-Thino/issues/new/choose`,$1s=`keydown`,$1t=`task-list-item-checkbox`,$1u=`assistant`,$1w=`PINNED`,$1x=`filter-item-container `,$1y=`left`,$1z=`modal-button-container`,$20=`openai`,$21=`tip-text-container`,$22=`week`,$23=`super`,$24=`Generate and manage API tokens for external applications`,$25=`POST`,$26=`clickable-icon selection-toolbar-btn`,$27=`copy`,$28=`Enter`,$29=`http://www.w3.org/2000/svg`,$2a=`[archived::true]`,$2b=`days`,$2c=`mod-cta`,$2d=`thino-share-page`,$2e=`Memos`,$2f=`alphabeticalReverse`,$2g=`clickable-icon super-toolbar-icon`,$2h=`https://thino.pkmer.net/en/#price`,$2i=`right`,$2j=`/daily`,$2k=`custom`,$2l=`daily-notes`,$2m=`thino-bulk-action-dialog`,$2n=`100%`,$2o=`^\\s*(\\-|\\*|(\\d{1,}\\.))\\s(\\[(.{1})\\]\\s?)?`,$2p=`/recycle`,$2q=`https://newapi.pkmer.cn`,$2r=`/review`,$2s=`boolean`,$2t=`https://pkmer.cn/products/thino`,$2u=`icon-text`,$2v=`chevron-left`,$2w=`codex`,$2x=`table`,$2y=`(\\<time\\>)?(\\d{1,2})\\:(\\d{2})(\\:\\d{2})?`,$2z=`chat`,$30=`clickable-icon`,$31=`modal-desc`,$32=`markdown-rendered`,$33=`image-error-placeholder image-error-clickable`,$34=`Xenova/paraphrase-multilingual-MiniLM-L12-v2`,$35=`Error fetching linked memos:`,$36=`common-editor-inputer common-editor-mod-cm6`,$37=`download`,$38=`http://localhost`,$39=`http://www.w3.org/1999/xhtml`,$3a=`success`,$3b=`year`,$3c=`Bottom`,$3d=`editor`,$3e=`is-active`,$3f=`modern`,$3h=`thino-secret-password-input`,$3i=`GET`,$3j=`link`,$3l=`super-chat-message-content`,$3m=`trash`,$3n=`user`,$3o=`value`,$3p=`clickable-icon super-image-lightbox-btn`,$3q=`default`,$3r=`prepend`,$3s=`.thino`,$3t=`03-agent`,$3u=`Filter [Temp] `,$3v=`Method not allowed`,$3w=`[pinned::true]`,$3x=`card-title-section`,$3y=`clickable-icon super-attachment-remove`,$3z=`gradient`,$40=`memo-link-text`,$41=`password`,$42=`settings`,$43=`useTab`,$44=`file`,$45=`memo-save-location-modal`,$46=`path`,$47=`20px 20px`,$48=`anthropic`,$49=`codex.exe`,$4a=`color`,$4b=`mousedown`,$4c=`--permission-mode`,$4d=`memo-content-text`,$4f=`top`,$4g=`weekDaysShort`,$4h=`DefaultLightBackgroundImageForClean`,$4i=`#ffffff`,$4j=`DefaultDarkBackgroundImageForClean`,$4k=`PRIVATE`,$4l=`auto`,$4m=`base64`,$4n=`blur`,$4o=`canvas`,$4p=`card-description`,$4q=`dialog`,$4r=`edit-thino`,$4s=`general`,$4t=`http`,$4u=`memo-store-cache`,$4v=`moments`,$4w=`thino-description-link`,$4x=`1.4.4`,$4y=`bottom-start`,$4z=`chevron-down`,$50=`daily`,$51=`dayMarkRange`,$52=`http://localhost/_capacitor_file_`,$53=`image`,$54=`markdown`,$55=`modal`,$56=`pin`,$57=`selected`,$58=`sparkles`,$59=`var(--background-modifier-border)`,$5a=`common-editor-inputer`,$5b=`thino-focus-immersive`,$5c=`Syncing Thino Web migration data`,$5d=`templater:all-templates-executed`,$5e=`thino-focus-sidebar-footer-label`,$5h=`.search-bar-inputer .text-input`,$5i=`LIST`,$5j=`Login failed. Please try again.`,$5k=`createdAt`,$5l=`header-right-section`,$5m=`thino-focus-sidebar-footer-icon`,$5n=`thino-hidden-entries`,$5o=`FirstLoaded`,$5p=`NOT_CONTAIN`,$5q=`end`,$5r=`share-image`,$5s=`showDayMark`,$5t=`basic.thino.md`,$5u=`claude`,$5v=`delete`,$5w=`hidden`,$5x=`message-circle`,$5y=`scroll`,$5z=`smooth`,$60=`thino-focus-sidebar-footer-btn`,$61=`thino-setting-search-highlight`,$62=`wechat`,$63=`Daily`,$64=`block`,$65=`content`,$67=`memos`,$68=`running`,$69=`Click to open source location`,$6a=`Output format (default: text)`,$6b=`Thino Web migration completed`,$6c=`btn action-btn clickable-icon`,$6d=`btn action-btn quick-date-btn`,$6e=`thino-secret-masking-password`,$6f=`...`,$6g=`/archive`,$6h=`/daily-review`,$6i=`Agent not started.`,$6j=`AppendOrPrependTextViaServer`,$6k=`CaptureKey.OpenThinoGlobally`,$6l=`Filter [Temp]`,$6m=`METADATA`,$6n=`NOT_TAGGED`,$6o=`TAG`,$6p=`TIME_RANGE`,$6q=`YYYY/MM/DD`,$6r=`arrow-left`,$6s=`both`,$6t=`btn close-btn`,$6u=`deleteForever`,$6v=`flow-item-editor-placeholder`,$6w=`focus-on-searchBar`,$6x=`h3`,$6y=`img`,$6z=`sourceType`,$70=`tag`,$71=`templater-obsidian`,$72=`thino-collapse-shadowOverlay`,$73=`userinfo-container`,$74=`username-container`,$75=`/thinos/get-infinite-thinos`,$76=`2px solid var(--text-muted)`,$77=`CaptureKey.EnableCaptureKey`,$78=`DefaultLightBackgroundImage`,$79=`ShareToThinoWithTextNewline`,$7a=`ShareToThinoWithTextPrepend`,$7b=`https://thino.pkmer.net/en/`,$7c=`thino-canvas-organizer-view`,$7d=`thino-focus-mobile-meta-row`,$7e=`.memolist-wrapper`,$7f=`DefaultTimePrefix`,$7g=`claude-sonnet-4-6`,$7h=`mod-editor-bottom`,$7i=`thino-type-status`,$7j=`var(--text-muted)`,$7k=`- [ ] `,$7l=`DefaultDarkBackgroundImage`,$7m=`Escape`,$7n=`Fetching Thino Web updates`,$7o=`INPUT`,$7p=`ShareToThinoWithTextAppend`,$7q=`YYYYMMDDHHmm`,$7r=`alphabetical`,$7s=`basic`,$7t=`btn btn-text`,$7u=`card-content`,$7v=`check-square`,$7w=`resize`,$7x=`strong`,$7y=`thino-focus-heat-meta-item`,$7z=`useMobileViewDefaultHeader`,$80=`127.0.0.1`,$81=`AND`,$82=`completed`,$83=`interface`,$84=`No active agent.`,$85=`SharePrependType`,$86=`ViewArchiveInRandomReview`,$87=`claude-agent-acp`,$88=`enableReferenceLinksGroup`,$89=`icon`,$8a=`pin-off`,$8b=`preview`,$8c=`search-bar-filter-section`,$8d=`share-2`,$8e=`tag-operation-content-tag`,$8f=`userinfo-header-container`,$8g=`var(--interactive-accent)`,$8h=`view`,$8i=`CaptureKey.ShowNearMouse`,$8j=`InsertAfter`,$8k=`Please input token first`,$8l=`SetCustomBackgroundImage`,$8m=`Thino Super`,$8n=`amount-text`,$8o=`card-header`,$8p=`dialog-content-container`,$8q=`downloading`,$8r=`mobile-view`,$8s=`mod-warning`,$8t=`more-action-btns-wrapper`,$8u=`startup:getMemos:JOURNAL`,$8v=`thino-image-suggest-item`,$8w=`tool_result`,$8x=`Generated image`,$8y=`INVALID_API_KEY`,$8z=`MARK: [@THINO](`,$90=`ShareAppendType`,$91=`archive-restore`,$92=`gallery-wrapper`,$93=`thino-user-info`,$94=`PKMer AI`,$95=`THINO 😉`,$96=`daily|file|multi|canvas`,$97=`dangerouslySetInnerHTML`,$98=`features`,$99=`pro`,$9a=`src`,$9b=`startup:getMemos:CANVAS`,$9c=`super-input-attachments`,$9d=`thinoEditorContentCache`,$9e=`Close`,$9f=`Super`,$9g=`THINO`,$9h=`fixed`,$9i=`model`,$9j=`whole`,$9k=`.vertical-tab-nav-item`,$9m=`AppendDateWhenTaskDone`,$9n=`Failed to get response`,$9o=`Nov.`,$9p=`SupportSelectOtherView`,$9q=`Sync completed`,$9r=`TODO`,$9s=`arrow-down-narrow-wide`,$9t=`banner`,$9u=`block-link`,$9v=`card-title`,$9w=`desc`,$9x=`filter-section-options`,$9y=`gallery-header`,$9z=`gemini`,$a0=`generate_image`,$a1=`height`,$a2=`hover-link`,$a3=`https://api.openai.com`,$a4=`https://thino.pkmer.cn`,$a5=`option`,$a6=`preset`,$a7=`rbc-header`,$a8=`startup:api.getMyMemos`,$a9=`startup:getMemos:DAILY`,$aa=`startup:getMemos:MULTI`,$ab=`super-attachment-label`,$ac=`thino-button-container`,$ad=`thino-query-sort-order`,$ae=`title-text`,$ag=`.suggestion-container`,$ah=`Configuration failed:`,$ai=`DefaultEditorLocation`,$aj=`Internal server error`,$ak=`ShowScrollToTopButton`,$al=`Thino Web sync failed`,$am=`UseButtonToShowEditor`,$an=`empty-gallery-message`,$ao=`obsidian-hover-editor`,$ap=`startup:fetchAllMemos`,$aq=`startup:getMemos:FILE`,$ar=`status-text-container`,$as=`super-attachment-icon`,$at=`thino-collapse-button`,$au=`thino-focus-hero-wrap`,$av=`thino-query-form-host`,$aw=`.thino.canvas`,$ax=`DESKTOP`,$ay=`DefaultPrefix`,$az=`JournalFolder`,$b0=`YYYY-MM`,$b1=`blur-on-memos`,$b2=`child_process`,$b3=`cli`,$b4=`daymark`,$b5=`image-changed`,$b6=`journal`,$b7=`minimal`,$b8=`modal-setting`,$b9=`pattern`,$ba=`send-to-thino`,$bb=`tabSize`,$bc=`thinoListView`,$bd=`token-display`,$be=`token-section`,$bf=`unknown`,$bh=`
  2. `,$bi=`.memo-editor-wrapper`,$bj=`.thino.md`,$bk=`API Token Management`,$bl=`AddBlankLineWhenDate`,$bm=`AlwaysShowStatusText`,$bn=`Anthropic`,$bo=`Applying synced data`,$bp=`Beginning`,$bq=`CONNECTED`,$br=`CREDENTIALS_REQUIRED`,$bs=`DefaultThemeForThino`,$bt=`Invalid request data`,$bu=`September`,$bv=`ShareToThinoWithText`,$bw=`ShowClipboardOnFocus`,$bx=`ThinoCollapsedHeight`,$by=`WithNewLineViaServer`,$bz=`ZoomImageWhenViewing`,$c0=`book-open`,$c1=`calendar-date-picker`,$c2=`filter-section-label`,$c3=`fsrsRequestRetention`,$c4=`gradient-picker-grid`,$c5=`quick-date-btn-group`,$c6=`refresh-review-memos`,$c7=`rowStatus`,$c8=`stat-card`,$c9=`text/html`,$ca=`thino-cb-col-content`,$cb=`thino-list-container`,$cc=`thino-settings-modal`,$cd=`thino-tag-sort-order`,$ce=`thino-verify-content`,$cf=`thinoType`,$cg=`time-text`,$ch=`tinyUndoActionsCache`,$ci=`type-text`,$cj=`uploading`,$ck=`wechat-commands-help`,$cl=`<YYYY/MM/DD>`,$cm=`Delete conversation`,$cn=`DeleteThinoDirectly`,$co=`Jan.`,$cp=`Mar.`,$cq=`MomentsQuote`,$cr=`OpenAI / Compatible`,$cs=`SaveMemoButtonLabel`,$ct=`SetCustomMemoFooter`,$cu=`TYPE`,$cv=`Tasks`,$cw=`UseMemoFixedStrings`,$cx=`UseVaultTags`,$cy=`addTagAutomatically`,$cz=`alert-circle`,$d0=`btn more-action-btn`,$d1=`code`,$d2=`count`,$d3=`defaultValue`,$d4=`edit`,$d5=`fsrsEnableShortTerm`,$d6=`fsrsMaximumInterval`,$d7=`go-to-source`,$d8=`gpt-5.4-mini`,$d9=`gray`,$da=`info`,$db=`loading-text`,$dc=`localStorage`,$dd=`local`,$de=`refreshToken`,$df=`secret-masked-block`,$dg=`share`,$dh=`text-changed`,$di=`thino-calendar-view`,$dj=`thino-hover-popover`,$dk=`win32`,$dl=`- [x] `,$dm=`Dataview`,$dn=`HH:mm:ss`,$do=`HeatmapColorScheme`,$dp=`IS_NOT`,$dq=`LINKED`,$dr=`MOBILE`,$ds=`November`,$dt=`Periodic`,$du=`SOURCE`,$dv=`TEXTAREA`,$dw=`Top`,$dx=`absolute`,$dy=`applying`,$dz=`archived`,$e0=`basic.thino.canvas`,$e1=`bookmark`,$e2=`change`,$e3=`filter`,$e4=`floating`,$e5=`focus-on-searchbar`,$e6=`gallery-stats-text`,$e7=`gallery-thumbnails`,$e8=`mobile`,$e9=`mod-sidebar-layout`,$ea=`pencil`,$eb=`pinned`,$ec=`restoreFromArchive`,$ed=`review`,$ee=`secret-masked-blur`,$ef=`select`,$eg=`super-message-text`,$eh=`system`,$ei=`thino-cb-pager-btn`,$ej=`thino-editor-modal`,$ek=`thino-float-window`,$el=`tinyUndoIndexCache`,$eo=`MomentsIcon`,$ep=`accessToken`,$eq=`arrow-right`,$er=`file-output`,$es=`layout-grid`,$et=`tag-actions`,$eu=` [archived::true]`,$ev=`.rbc-agenda-table`,$ew=`AutoDownloadImage`,$ex=`INCOMPLETE_FILTER`,$ey=`MinHeightForShare`,$ez=`No results found.`,$f0=`ShowUpdateMessage`,$f1=`addTagWithNewline`,$f2=`flow-item-content`,$f3=`get_related_memos`,$f4=`li.task-list-item`,$f5=`loading-indicator`,$f6=`memo-context-menu`,$f7=`panel-right-close`,$f8=`restoreFromDelete`,$f9=`super-tool-inline`,$fa=`super-tool-result`,$fb=`thino-cb-col-date`,$fc=`thino-pinned-tags`,$fd=`thino-pro-setting`,$fe=`thino-show-status`,$ff=`$1`,$fg=`.suggestion-item`,$fh=`API Key`,$fi=`DATE`,$fj=`EXCLUDE`,$fk=`Feb.`,$fl=`FilterByMetadata`,$fm=`INCLUDE`,$fn=`IS`,$fo=`InsertDateFormat`,$fp=`Loading model...`,$fq=`Loading...`,$fr=`MemoSaveLocation`,$fs=`PrependViaServer`,$ft=`ShareFooterStart`,$fu=`TASK`,$fv=`Uploading thinos`,$fw=`[deleted::`,$fx=`appearance`,$fy=`body`,$fz=`cm-content`,$g0=`data`,$g1=`date`,$g2=`do-nothing`,$g3=`flow-item-header`,$g4=`from`,$g5=`gggg-[W]ww`,$g6=`href`,$g7=`is-indeterminate`,$g8=`is-mobile-hidden`,$g9=`layout-dashboard`,$ga=`memo-top-wrapper`,$gb=`more`,$gc=`nldates-obsidian`,$gd=`open-thino`,$ge=`pipe`,$gf=`super-tool-label`,$gg=`tab-btn`,$gh=`thino-super-view`,$gi=`thino-tag-custom`,$gj=`thino-user-quote`,$gk=`tool_start`,$gl=`trash-2`,$gm=`type`,$gn=`.md`,$go=`200px`,$gp=`Mod`,$gq=`abort`,$gr=`chart`,$gs=`cloud`,$gt=`group`,$gu=`width`,$gv=`
  3. ...(truncated)`,$gw=` [pinned::true]`,$gx=`--approval-mode`,$gy=`.rbc-month-view`,$gz=`.thino-cb-query`,$h0=`API_KEY_MISSING`,$h1=`AppendViaServer`,$h2=`Hide thino list`,$h3=`Loading more...`,$h4=`Login cancelled`,$h5=`MemoFixedPrefix`,$h6=`MemoFixedSuffix`,$h7=`QR code expired`,$h8=`Reference thino`,$h9=`SESSION_MISSING`,$ha=`ShowLeftSideBar`,$hb=`clippingParents`,$hc=`completionModel`,$hd=`content-wrapper`,$he=`enableWordCount`,$hf=`focus-hero-wrap`,$hg=`hidePinnedGroup`,$hh=`path-entry-icon`,$hi=`path-entry-text`,$hj=`rbc-agenda-view`,$hk=`splitByHeading1`,$hl=`splitByHeading2`,$hm=`splitByHeading3`,$hn=`suggestion-name`,$ho=`super-tool-icon`,$hp=`thino-list-item`,$hq=`thino-temp-tags`,$hr=`thino-user-icon`,$hs=` selected`,$ht=`ArrowDown`,$hu=`chart-bar`,$hv=`codex.cmd`,$hw=`data-href`,$hx=`file-text`,$hy=`image.png`,$hz=`lastMonth`,$i0=`localhost`,$i1=`resources`,$i2=`thisMonth`,$i3=`updatedAt`,$i4=`.internal-link`,$i5=`August`,$i6=`BEFORE`,$i7=`Download image`,$i8=`Generate Token`,$i9=`IMAGED`,$ia=`Reference file`,$ib=`ShowSourcePath`,$ic=`ThinoMaxHeight`,$id=`addTagPosition`,$ie=`append`,$if=`calendar-check`,$ig=`content-length`,$ih=`crypto`,$ii=`flow-item-time`,$ij=`fsrsDailyLimit`,$ik=`fsrsEnableFuzz`,$il=`memo-container`,$im=`memoSortConfig`,$in=`save-requested`,$io=`screen`,$ip=`simple`,$iq=`source`,$ir=`status`,$is=`summarize_text`,$it=`var(--chart-2)`,$iu=`windows-x86_64`,$iv=`05-webSummary`,$iw=`1px`,$ix=`Apr.`,$iy=`Aug.`,$iz=`DONE`,$j0=`December`,$j1=`EMPTY_FILTERS`,$j2=`End`,$j3=`FocusOnEditor`,$j4=`HttpApiIpType`,$j5=`July`,$j6=`June`,$j7=`ShowTaskLabel`,$j8=`UserName`,$j9=`YYYY`,$ja=`all`,$jb=`asc`,$jc=`bilibili`,$jd=`byTimeReverse`,$je=`chatViewStyle`,$jf=`checkbox`,$jg=`children`,$jh=`comment:`,$ji=`delegate_fast`,$jj=`electron`,$jk=`external-link`,$jl=`flow`,$jm=`home`,$jn=`html`,$jo=`internal-link`,$jp=`is-unresolved`,$jq=`lastWeek`,$jr=`lastYear`,$js=`memo-skeleton`,$jt=`memo`,$ju=`mode`,$jv=`pending-`,$jw=`png`,$jx=`rbc-btn-group`,$jy=`rotate-hidden`,$jz=`saveThinoType`,$k0=`skeleton-line`,$k1=`strikethrough`,$k2=`summarize_url`,$k3=`task`,$k4=`text/uri-list`,$k5=`thisWeek`,$k6=`thisYear`,$k7=`username-text`,$k8=`value-inputer`,$k9=`windows-arm64`,$kb=`.temp-editor`,$kc=`.thino-table`,$kd=`/stat`,$ke=`0.001`,$kf=`06-image-gen`,$kh=`April`,$ki=`Content-Type`,$kj=`Create Thino`,$kk=`Created Time`,$kl=`NavbarButton`,$km=`OTHER`,$kn=`Sept.`,$ko=`SyncManually`,$kp=`Thino Canvas`,$kq=`UNAUTHORIZED`,$kr=`borderRadius`,$ks=`btn save-btn`,$kt=`calendarType`,$ku=`check-circle`,$kv=`code-example`,$kw=`color-option`,$kx=`columnheader`,$ky=`currentColor`,$kz=`emoji`,$l0=`filter_memos`,$l1=`label`,$l2=`left-sidebar`,$l4=`link-content`,$l5=`memo-wrapper`,$l6=`mod-settings`,$l7=`node_modules`,$l8=`outerBgValue`,$l9=`round`,$la=`search_memos`,$lb=`select-label`,$lc=`start`,$ld=`table-header`,$le=`task|journal`,$lg=`thino-plugin`,$lh=`thino.canvas`,$lj=`--model`,$lk=`.canvas`,$ll=`@openai`,$lm=`AES-GCM`,$ln=`Aborted`,$lo=`ArrowUp`,$lp=`Desktop`,$lq=`Domingo`,$lr=`MEMO 😉`,$ls=`base64,`,$lt=`checked`,$lu=`classic`,$lv=`cm-line`,$lw=`deleted`,$lx=`diamond`,$ly=`loading`,$lz=`netease`,$m0=`palette`,$m1=`quarter`,$m2=`scanned`,$m3=`spotify`,$m4=`youtube`,$m6=`HttpApiPort`,$m7=`Thino share`,$m8=`[archived::`,$m9=`aes-128-ecb`,$ma=`card-footer`,$mb=`config-tabs`,$mc=`data-tab-id`,$md=`handwritten`,$me=`highlighter`,$mf=`is-dragging`,$mg=`is-selected`,$mh=`lucide-link`,$mi=`modal-title`,$mj=`play-circle`,$mk=`raw-content`,$ml=`ALL`,$mm=`May`,$mo=`hex`,$mp=`svg`,$mr=`02-summary`,$ms=`1.11.4`,$mt=`180d`,$mu=`20px 0`,$mv=`20px`,$mw=`30days`,$mx=`365d`,$my=`<text>`,$mz=`> [!note]+`,$n0=`> [!note]-`,$n1=`> [!thino]`,$n2=`> [!tips]+`,$n3=`> [!tips]-`,$n4=`Agosto`,$n5=`Cancel`,$n6=`Dec.`,$n7=`EditorType`,$n8=`Jul.`,$n9=`Jun.`,$na=`List`,$nb=`Maio`,$nc=`Mobile`,$ne=`Oct.`,$nf=`OpenAI`,$ng=`PATH`,$nh=`Rename tag`,$ni=`Review`,$nj=`Sunday`,$nk=`Sábado`,$nl=`Terminated`,$nm=`Text`,$nn=`WITHIN`,$no=`agenda`,$np=`apiKey`,$nq=`base`,$nr=`byTime`,$ns=`core`,$nt=`create`,$nu=`data:image`,$nv=`dddd`,$nx=`embeddings`,$ny=`extensions`,$nz=`file-clock`,$o0=`fluent`,$o1=`footerMode`,$o2=`hash`,$o3=`header`,$o4=`image/jpeg`,$o5=`lazy`,$o6=`links-list`,$o7=`lock`,$o8=`memos-text`,$o9=`name`,$oa=`node-added`,$ob=`popup-open`,$oc=`purple`,$od=`refresh-cw`,$oe=`search`,$of=`selectTags`,$og=`showAuthor`,$oh=`showAvatar`,$oj=`text/plain`,$ok=`tool`,$ol=`yellow`,$om=`# Heading`,$on=`Fevereiro`,$oo=`Wednesday`,$op=`YYYY-[Q]Q`,$oq=`anonymous`,$or=`btn-group`,$os=`className`,$ot=`close-btn`,$ou=`codex.bat`,$ov=`confirmed`,$ow=`customTag`,$ox=`fontColor`,$oy=`index.cjs`,$p0=`is-shrunk`,$p1=`link-date`,$p2=`link-icon`,$p3=`link-item`,$p4=`memo-data`,$p5=`mouseover`,$p6=`paragraph`,$p7=`readwrite`,$p8=`secondary`,$p9=`selection`,$pa=`textAlign`,$pb=`text|json`,$pc=`thino-url`,$pd=`untracked`,$ph=`Abril`,$pi=`ISNOT`,$pk=`arm64`,$pl=`class`,$pn=`false`,$pp=`query`,$pq=`shift`,$pr=`style`,$pt=`title`;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==$0j||typeof i==$z)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,$3q,{value:n,enumerable:!0}):a,n));let d=require(`obsidian`),f=require(`@codemirror/language`),p=require(`@codemirror/state`),m=require(`@codemirror/view`);var h=typeof window<`u`?window:null,g=(e,t)=>({didTimeout:typeof t==$0e?Date.now()-e>=t:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-e))}),_=(e,t)=>{let n=Date.now();return window.setTimeout(()=>{e(g(n,t?.timeout))},1)},v=e=>{window.clearTimeout(e)};(()=>{if(!String.prototype.replaceAll){let e=function(e,t){return Object.prototype.toString.call(e).toLowerCase()===`[object regexp]`?this.replace(e,t):this.replace(new RegExp(e,`g`),t)};String.prototype.replaceAll=e}h&&typeof h.requestIdleCallback!=$z&&(h.requestIdleCallback=_),h&&typeof h.cancelIdleCallback!=$z&&(h.cancelIdleCallback=v)})();var y=(e,t)=>h&&typeof h.requestIdleCallback==$z?h.requestIdleCallback(e,t):_(e,t),b=e=>{if(h&&typeof h.cancelIdleCallback==$z){h.cancelIdleCallback(e);return}v(e)};function x(e,t){for(var n in t)e[n]=t[n];return e}function S(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function C(e,t,n){var r,i,a,o={};for(a in t)a==`key`?r=t[a]:a==`ref`?i=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?Ee.call(arguments,2):n),typeof e==$z&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return w(e,o,r,i,null)}function w(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Oe,__i:-1,__u:0};return i==null&&De.vnode!=null&&De.vnode(a),a}function T(){return{current:null}}function E(e){return e.children}function ee(e,t){this.props=e,this.context=t}function te(e,t){if(t==null)return e.__?te(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==$z?te(e):null}function ne(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],i=[],a=x({},t);a.__v=t.__v+1,De.vnode&&De.vnode(a),me(e.__P,a,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,n??te(t),!!(32&t.__u),i),a.__v=t.__v,a.__.__k[a.__i]=a,ge(r,a,i),t.__e=t.__=null,a.__e!=n&&re(a)}}function re(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),re(e)}function ie(e){(!e.__d&&(e.__d=!0)&&ke.push(e)&&!ae.__r++||Ae!=De.debounceRendering)&&((Ae=De.debounceRendering)||je)(ae)}function ae(){try{for(var e,t=1;ke.length;)ke.length>t&&ke.sort(Me),e=ke.shift(),t=ke.length,ne(e)}finally{ke.length=ae.__r=0}}function oe(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h,g,_=r&&r.__k||He,v=t.length;for(c=se(n,t,_,c,v),d=0;d<v;d++)(p=n.__k[d])!=null&&(f=p.__i!=-1&&_[p.__i]||Ve,p.__i=d,g=me(e,p,f,i,a,o,s,c,l,u),m=p.__e,p.ref&&f.ref!=p.ref&&(f.ref&&ye(f.ref,null,p),u.push(p.ref,p.__c||m,p)),h==null&&m!=null&&(h=m),4&p.__u?(c=ce(p,c,e),f.__e&&=null):typeof p.type==$z&&g!==void 0?c=g:m&&(c=m.nextSibling),p.__u&=-7);return n.__e=h,c}function se(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=$2s&&typeof o!=$z?(typeof o==$q||typeof o==$0e||typeof o==`bigint`||o.constructor==String?o=e.__k[a]=w(null,o,null,null,null):We(o)?o=e.__k[a]=w(E,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=w(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,c=a+f,o.__=e,o.__b=e.__b+1,s=null,(l=o.__i=ue(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=$z&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=te(s)),be(s,s));return r}function ce(e,t,n){var r,i;if(typeof e.type==$z){for(r=e.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=e,t=ce(r[i],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=te(e)),t=n.insertBefore(e.__e,t||null));do t&&=t.nextSibling;while(t!=null&&t.nodeType==8);return t}function le(e,t){return t||=[],e==null||typeof e==$2s||(We(e)?e.some(function(e){le(e,t)}):t.push(e)),t}function ue(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&s==null||u&&s==l.key&&c==l.type)return n;if(r>(u?1:0)){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function de(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n==null?``:typeof n!=$0e||Ue.test(t)?n:n+`px`}function fe(e,t,n,r,i){var a,o;n:if(t==$pr)if(typeof n==$q)e.style.cssText=n;else{if(typeof r==$q&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||de(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||de(e.style,t,n[t])}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(Ie,$ff)),o=t.toLowerCase(),t=o in e||t==`onFocusOut`||t==`onFocusIn`?o.slice(2):t.slice(2),e.l||={},e.l[t+a]=n,n?r?n[Fe]=r[Fe]:(n[Fe]=Le,e.addEventListener(t,a?ze:Re,a)):e.removeEventListener(t,a?ze:Re,a);else{if(i==$29)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=$gu&&t!=$a1&&t!=$g6&&t!=$0y&&t!=`form`&&t!=`tabIndex`&&t!=$37&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==$z||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function pe(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[Pe]==null)t[Pe]=Le++;else if(t[Pe]<n[Fe])return;return n(De.event?De.event(t):t)}}}function me(e,t,n,r,i,a,o,s,c,l){var u,d,f,p,m,h,g,_,v,y,b,C,w,T,ne,re,ie=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(c=!!(32&n.__u),a=[s=t.__e=n.__e]),(u=De.__b)&&u(t);n:if(typeof ie==$z){d=o.length;try{if(v=t.props,y=ie.prototype&&ie.prototype.render,b=(u=ie.contextType)&&r[u.__c],C=u?b?b.props.value:u.__:r,n.__c?_=(f=t.__c=n.__c).__=f.__E:(y?t.__c=f=new ie(v,C):(t.__c=f=new ee(v,C),f.constructor=ie,f.render=xe),b&&b.sub(f),f.state||={},f.__n=r,p=f.__d=!0,f.__h=[],f._sb=[]),y&&f.__s==null&&(f.__s=f.state),y&&ie.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=x({},f.__s)),x(f.__s,ie.getDerivedStateFromProps(v,f.__s))),m=f.props,h=f.state,f.__v=t,p)y&&ie.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),y&&f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(y&&ie.getDerivedStateFromProps==null&&v!==m&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(v,C),t.__v==n.__v||!f.__e&&f.shouldComponentUpdate!=null&&!1===f.shouldComponentUpdate(v,f.__s,C)){t.__v!=n.__v&&(f.props=v,f.state=f.__s,f.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),He.push.apply(f.__h,f._sb),f._sb=[],f.__h.length&&o.push(f),s=te(n);break n}f.componentWillUpdate!=null&&f.componentWillUpdate(v,f.__s,C),y&&f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(m,h,g)})}if(f.context=C,f.props=v,f.__P=e,f.__e=!1,w=De.__r,T=0,y)f.state=f.__s,f.__d=!1,w&&w(t),u=f.render(f.props,f.state,f.context),He.push.apply(f.__h,f._sb),f._sb=[];else do f.__d=!1,w&&w(t),u=f.render(f.props,f.state,f.context),f.state=f.__s;while(f.__d&&++T<25);f.state=f.__s,f.getChildContext!=null&&(r=x(x({},r),f.getChildContext())),y&&!p&&f.getSnapshotBeforeUpdate!=null&&(g=f.getSnapshotBeforeUpdate(m,h)),ne=u!=null&&u.type===E&&u.key==null?_e(u.props.children):u,s=oe(e,We(ne)?ne:[ne],t,n,r,i,a,o,s,c,l),f.base=t.__e,t.__u&=-161,f.__h.length&&o.push(f),_&&(f.__E=f.__=null)}catch(e){if(o.length=d,t.__v=null,c||a!=null){if(e.then){for(t.__u|=c?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;a!=null&&(a[a.indexOf(s)]=null),t.__e=s}else if(a!=null)for(re=a.length;re--;)S(a[re])}else t.__e=n.__e;t.__k??=n.__k||[],e.then||he(t),De.__e(e,t,n)}}else a==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):s=t.__e=ve(n.__e,t,n,r,i,a,o,c,l);return(u=De.diffed)&&u(t),128&t.__u?void 0:s}function he(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(he))}function ge(e,t,n){for(var r=0;r<n.length;r++)ye(n[r],n[++r],n[++r]);De.__c&&De.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){De.__e(e,t.__v)}})}function _e(e){return typeof e!=$0j||!e||e.__b>0?e:We(e)?e.map(_e):e.constructor===void 0?x({},e):null}function ve(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h,g=n.props||Ve,_=t.props,v=t.type;if(v==$mp?i=$29:v==`math`?i=`http://www.w3.org/1998/Math/MathML`:i||=$39,a!=null){for(l=0;l<a.length;l++)if((p=a[l])&&`setAttribute`in p==!!v&&(v?p.localName==v:p.nodeType==3)){e=p,a[l]=null;break}}if(e==null){if(v==null)return document.createTextNode(_);e=document.createElementNS(i,v,_.is&&_),s&&=(De.__m&&De.__m(t,a),!1),a=null}if(v==null)g===_||s&&e.data==_||(e.data=_);else{if(a=v==$0o&&_.defaultValue!=null?null:a&&Ee.call(e.childNodes),!s&&a!=null)for(g={},l=0;l<e.attributes.length;l++)g[(p=e.attributes[l]).name]=p.value;for(l in g)p=g[l],l==$97?d=p:l==$jg||l in _||l==$3o&&$d3 in _||l==$lt&&`defaultChecked`in _||fe(e,l,null,p,i);for(l in _)p=_[l],l==$jg?f=p:l==$97?u=p:l==$3o?m=p:l==$lt?h=p:s&&typeof p!=$z||g[l]===p||fe(e,l,p,g[l],i);if(u)s||d&&(u.__html==d.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=``),oe(t.type==`template`?e.content:e,We(f)?f:[f],t,n,r,v==`foreignObject`?$39:i,a,o,a?a[0]:n.__k&&te(n,0),s,c),a!=null)for(l=a.length;l--;)S(a[l]);s&&v!=$0o||(l=$3o,v==`progress`&&m==null?e.removeAttribute($3o):m!=null&&(m!==e[l]||v==`progress`&&!m||v==$a5&&m!=g[l])&&fe(e,l,m,g[l],i),l=$lt,h!=null&&h!=e[l]&&fe(e,l,h,g[l],i))}return e}function ye(e,t,n){try{if(typeof e==$z){var r=typeof e.__u==$z;r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(e){De.__e(e,n)}}function be(e,t,n){var r,i;if(De.unmount&&De.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||ye(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){De.__e(e,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&be(r[i],t,n||typeof e.type!=$z);n||S(e.__e),e.__c=e.__=e.__e=void 0}function xe(e,t,n){return this.constructor(e,n)}function Se(e,t,n){var r,i,a,o;t==document&&(t=document.documentElement),De.__&&De.__(e,t),i=(r=typeof n==$z)?null:n&&n.__k||t.__k,a=[],o=[],me(t,e=(!r&&n||t).__k=C(E,null,[e]),i||Ve,Ve,t.namespaceURI,!r&&n?[n]:i?null:t.firstChild?Ee.call(t.childNodes):null,a,!r&&n?n:i?i.__e:t.firstChild,r,o),ge(a,e,o),e.props.children=null}function Ce(e,t){Se(e,t,Ce)}function we(e,t,n){var r,i,a,o,s=x({},e.props);for(a in e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)a==`key`?r=t[a]:a==`ref`?i=t[a]:s[a]=t[a]===void 0&&o!=null?o[a]:t[a];return arguments.length>2&&(s.children=arguments.length>3?Ee.call(arguments,2):n),w(e.type,s,r||e.key,i||e.ref,null)}function Te(e){function t(e){var n,r;return this.getChildContext||(n=new Set,(r={})[t.__c]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!=e.value&&n.forEach(function(e){e.__e=!0,ie(e)})},this.sub=function(e){n.add(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.delete(e),t&&t.call(e)}}),e.children}return t.__c=`__cC`+ Be++,t.__=e,t.Provider=t.__l=(t.Consumer=function(e,t){return e.children(t)}).contextType=t,t}var Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge=o((()=>{Ve={},He=[],Ue=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,We=Array.isArray,Ee=He.slice,De={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},Oe=0,ee.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=x({},this.state);typeof e==$z&&(e=e(x({},n),this.props)),e&&x(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),ie(this))},ee.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ie(this))},ee.prototype.render=E,ke=[],je=typeof Promise==$z?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Me=function(e,t){return e.__v.__b-t.__v.__b},ae.__r=0,Ne=Math.random().toString(8),Pe=`__d`+Ne,Fe=`__a`+Ne,Ie=/(PointerCapture)$|Capture$/i,Le=0,Re=pe(!1),ze=pe(!0),Be=0}));function Ke(e,t){dt.__h&&dt.__h(ot,e,lt||t),lt=0;var n=ot.__H||={__:[],__h:[]};return e>=n.__.length&&n.__.push({}),n.__[e]}function D(e){return lt=1,qe(it,e)}function qe(e,t,n){var r=Ke(at++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):it(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=ot,!ot.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=!1,o=r.__c.props!==e;if(r.__c.__H.__.some(function(e){if(e.__N){i=!0;var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),a){var s=a.call(this,e,t,n);return i?s||o:s}return!i||o};ot.__f=!0;var a=ot.shouldComponentUpdate,o=ot.componentWillUpdate;ot.componentWillUpdate=function(e,t,n){if(this.__e){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},ot.shouldComponentUpdate=i}return r.__N||r.__}function O(e,t){var n=Ke(at++,3);!dt.__s&&rt(n.__H,t)&&(n.__=e,n.u=t,ot.__H.__h.push(n))}function Je(e,t){var n=Ke(at++,4);!dt.__s&&rt(n.__H,t)&&(n.__=e,n.u=t,ot.__h.push(n))}function k(e){return lt=5,A(function(){return{current:e}},[])}function Ye(e,t,n){lt=6,Je(function(){if(typeof e==$z){var n=e(t());return function(){e(null),n&&typeof n==$z&&n()}}if(e)return e.current=t(),function(){return e.current=null}},n==null?n:n.concat(e))}function A(e,t){var n=Ke(at++,7);return rt(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function j(e,t){return lt=8,A(function(){return e},t)}function Xe(e){var t=ot.context[e.__c],n=Ke(at++,9);return n.c=e,t?(n.__??(n.__=!0,t.sub(ot)),t.props.value):e.__}function Ze(e,t){dt.useDebugValue&&dt.useDebugValue(t?t(e):e)}function Qe(){var e=Ke(at++,11);if(!e.__){for(var t=ot.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var n=t.__m||=[0,0];e.__=`P`+n[0]+`-`+ n[1]++}return e.__}function $e(){for(var e;e=ut.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(tt),t.__h.some(nt),t.__h=[]}catch(n){t.__h=[],dt.__e(n,e.__v)}}}function et(e){var t,n=function(){clearTimeout(r),vt&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);vt&&(t=requestAnimationFrame(n))}function tt(e){var t=ot,n=e.__c;typeof n==$z&&(e.__c=void 0,n()),ot=t}function nt(e){var t=ot;e.__c=e.__(),ot=t}function rt(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function it(e,t){return typeof t==$z?t(e):t}var at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt=o((()=>{Ge(),lt=0,ut=[],dt=De,ft=dt.__b,pt=dt.__r,mt=dt.diffed,ht=dt.__c,gt=dt.unmount,_t=dt.__,dt.__b=function(e){ot=null,ft&&ft(e)},dt.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),_t&&_t(e,t)},dt.__r=function(e){pt&&pt(e),at=0;var t=(ot=e.__c).__H;t&&(st===ot?(t.__h=[],ot.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.some(tt),t.__h.some(nt),t.__h=[],at=0)),st=ot},dt.diffed=function(e){mt&&mt(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(ut.push(t)!==1&&ct===dt.requestAnimationFrame||((ct=dt.requestAnimationFrame)||et)($e)),t.__H.__.some(function(e){e.u&&=(e.__H=e.u,void 0)})),st=ot=null},dt.__c=function(e,t){t.some(function(e){try{e.__h.some(tt),e.__h=e.__h.filter(function(e){return!e.__||nt(e)})}catch(n){t.some(function(e){e.__h&&=[]}),t=[],dt.__e(n,e.__v)}}),ht&&ht(e,t)},dt.unmount=function(e){gt&&gt(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{tt(e)}catch(e){t=e}}),n.__H=void 0,t&&dt.__e(t,n.__v))},vt=typeof requestAnimationFrame==$z}));function bt(e,t){for(var n in t)e[n]=t[n];return e}function xt(e,t){for(var n in e)if(n!==`__source`&&!(n in t))return!0;for(var r in t)if(r!==`__source`&&e[r]!==t[r])return!0;return!1}function St(e,t){var n=t(),r=D({t:{__:n,u:t}}),i=r[0].t,a=r[1];return Je(function(){i.__=n,i.u=t,Ct(i)&&a({t:i})},[e,n,t]),O(function(){return Ct(i)&&a({t:i}),e(function(){Ct(i)&&a({t:i})})},[e]),n}function Ct(e){try{return!((t=e.__)===(n=e.u())&&(t!==0||1/t==1/n)||t!=t&&n!=n)}catch{return!0}var t,n}function wt(e){e()}function Tt(e){return e}function Et(){return[!1,wt]}function Dt(e,t){this.props=e,this.context=t}function Ot(e,t){function n(e){var n=this.props.ref;return n!=e.ref&&n&&(typeof n==$z?n(null):n.current=null),t?!t(this.props,e)||n!=e.ref:xt(this.props,e)}function r(t){return this.shouldComponentUpdate=n,C(e,t)}return r.displayName=`Memo(`+(e.displayName||e.name)+`)`,r.__f=r.prototype.isReactComponent=!0,r.type=e,r}function kt(e){function t(t){var n=bt({},t);return delete n.ref,e(n,t.ref||null)}return t.$$typeof=Xt,t.render=e,t.prototype.isReactComponent=t.__f=!0,t.displayName=`ForwardRef(`+(e.displayName||e.name)+`)`,t}function At(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(e){typeof e.__c==$z&&e.__c()}),e.__c.__H=null),(e=bt({},e)).__c!=null&&(e.__c.__P===n&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(e){return At(e,t,n)})),e}function jt(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(e){return jt(e,t,n)}),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function Mt(){this.__u=0,this.o=null,this.__b=null}function Nt(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function Pt(e){var t,n,r,i=null;function a(a){if(t||(t=e()).then(function(e){e&&(i=e.default||e),r=!0},function(e){n=e,r=!0}),n)throw n;if(!r)throw t;return i?C(i,a):null}return a.displayName=`Lazy`,a.__f=!0,a}function Ft(){this.i=null,this.l=null}function It(e){return this.getChildContext=function(){return e.context},e.children}function Lt(e){var t=this,n=e.h;if(t.componentWillUnmount=function(){Se(null,t.v),t.v=null,t.h=null},t.h&&t.h!==n&&t.componentWillUnmount(),!t.v){for(var r=t.__v;r!==null&&!r.__m&&r.__!==null;)r=r.__;t.h=n,t.v={nodeType:1,parentNode:n,childNodes:[],__k:{__m:r.__m},contains:function(){return!0},namespaceURI:n.namespaceURI,insertBefore:function(e,n){this.childNodes.push(e),t.h.insertBefore(e,n)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.h.removeChild(e)}}}Se(C(It,{context:t.context},e.__v),t.v)}function Rt(e,t){var n=C(Lt,{__v:e,h:t});return n.containerInfo=t,n}function zt(e,t,n){return t.__k??(t.textContent=``),Se(e,t),typeof n==$z&&n(),e?e.__c:null}function Bt(e,t,n){return Ce(e,t),typeof n==$z&&n(),e?e.__c:null}function Vt(e){return C.bind(null,e)}function Ht(e){return!!e&&e.$$typeof===nn}function Ut(e){return Ht(e)&&e.type===E}function Wt(e){return!!e&&typeof e.displayName==$q&&e.displayName.indexOf(`Memo(`)==0}function Gt(e){return Ht(e)?we.apply(null,arguments):e}function Kt(e){return!!e.__k&&(Se(null,e),!0)}function qt(e){return e&&(e.base||e.nodeType===1&&e)||null}var Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,M,N=o((()=>{Ge(),yt(),yt(),Jt=Je,(Dt.prototype=new ee).isPureReactComponent=!0,Dt.prototype.shouldComponentUpdate=function(e,t){return xt(this.props,e)||xt(this.state,t)},Yt=De.__b,De.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Yt&&Yt(e)},Xt=typeof Symbol<`u`&&Symbol.for&&Symbol.for(`react.forward_ref`)||3911,Zt=function(e,t){return e==null?null:le(le(e).map(t))},Qt={map:Zt,forEach:Zt,count:function(e){return e?le(e).length:0},only:function(e){var t=le(e);if(t.length!==1)throw`Children.only`;return t[0]},toArray:le},$t=De.__e,De.__e=function(e,t,n,r){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e??(t.__e=n.__e,t.__k=n.__k||[]),i.__c(e,t)}$t(e,t,n,r)},en=De.unmount,De.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),en&&en(e)},(Mt.prototype=new ee).__c=function(e,t){var n=t.__c,r=this;r.o??=[],r.o.push(n);var i=Nt(r.__v),a=!1,o=function(){a||r.__z||(a=!0,n.__R=null,i?i(c):c())};n.__R=o;var s=n.__P;n.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=jt(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=s,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(o,o)},Mt.prototype.componentWillUnmount=function(){this.o=[]},Mt.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement($0),r=this.__v.__k[0].__c;this.__v.__k[0]=At(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&C(E,null,e.fallback);return i&&(i.__u&=-33),[C(E,null,t.__a?null:e.children),i]},tn=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!==`t`||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}},(Ft.prototype=new ee).__a=function(e){var t=this,n=Nt(t.__v),r=t.l.get(e);return r[0]++,function(i){var a=function(){t.props.revealOrder?(r.push(i),tn(t,e,r)):i()};n?n(a):a()}},Ft.prototype.render=function(e){this.i=null,this.l=new Map;var t=le(e.children);e.revealOrder&&e.revealOrder[0]===`b`&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},Ft.prototype.componentDidUpdate=Ft.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,n){tn(e,n,t)})},nn=typeof Symbol<`u`&&Symbol.for&&Symbol.for(`react.element`)||60103,rn=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,an=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,on=/[A-Z0-9]/g,sn=typeof document<`u`,cn=function(e){return(typeof Symbol<`u`&&typeof Symbol()==`symbol`?/fil|che|rad/:/fil|che|ra/).test(e)},ee.prototype.isReactComponent=!0,[`componentWillMount`,`componentWillReceiveProps`,`componentWillUpdate`].forEach(function(e){Object.defineProperty(ee.prototype,e,{configurable:!0,get:function(){return this[`UNSAFE_`+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}),ln=De.event,De.event=function(e){return ln&&(e=ln(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e},dn={configurable:!0,get:function(){return this.class}},fn=De.vnode,De.vnode=function(e){typeof e.type==$q&&function(e){var t=e.props,n=e.type,r={},i=n.indexOf(`-`)==-1;for(var a in t){var o=t[a];if(!(a===$3o&&$d3 in t&&o==null||sn&&a===$jg&&n===`noscript`||a===$pl||a===$os)){var s=a.toLowerCase();a===$d3&&$3o in t&&t.value==null?a=$3o:a===$37&&!0===o?o=``:s===`translate`&&o===`no`?o=!1:s[0]===`o`&&s[1]===`n`?s===`ondoubleclick`?a=`ondblclick`:s!==`onchange`||n!==$09&&n!==$0o||cn(t.type)?s===`onfocus`?a=`onfocusin`:s===`onblur`?a=`onfocusout`:an.test(a)&&(a=s):s=a=`oninput`:i&&rn.test(a)?a=a.replace(on,`-$&`).toLowerCase():o===null&&(o=void 0),s===`oninput`&&r[a=s]&&(a=`oninputCapture`),r[a]=o}}n==$ef&&(r.multiple&&Array.isArray(r.value)&&(r.value=le(t.children).forEach(function(e){e.props.selected=r.value.indexOf(e.props.value)!=-1})),r.defaultValue!=null&&(r.value=le(t.children).forEach(function(e){e.props.selected=r.multiple?r.defaultValue.indexOf(e.props.value)!=-1:r.defaultValue==e.props.value}))),t.class&&!t.className?(r.class=t.class,Object.defineProperty(r,$os,dn)):t.className&&(r.class=r.className=t.className),e.props=r}(e),e.$$typeof=nn,fn&&fn(e)},pn=De.__r,De.__r=function(e){pn&&pn(e),un=e.__c},mn=De.diffed,De.diffed=function(e){mn&&mn(e);var t=e.props,n=e.__e;n!=null&&e.type===$0o&&$3o in t&&t.value!==n.value&&(n.value=t.value==null?``:t.value),un=null},hn={ReactCurrentDispatcher:{current:{readContext:function(e){return un.__n[e.__c].props.value},useCallback:j,useContext:Xe,useDebugValue:Ze,useDeferredValue:Tt,useEffect:O,useId:Qe,useImperativeHandle:Ye,useInsertionEffect:Jt,useLayoutEffect:Je,useMemo:A,useReducer:qe,useRef:k,useState:D,useSyncExternalStore:St,useTransition:Et}}},gn=function(e,t){return e(t)},_n=function(e,t){var n,r=De.debounceRendering;De.debounceRendering=function(e){n=e};try{var i=e(t);return n&&n(),i}finally{De.debounceRendering=r}},vn=Ht,M={useState:D,useId:Qe,useReducer:qe,useEffect:O,useLayoutEffect:Je,useInsertionEffect:Jt,useTransition:Et,useDeferredValue:Tt,useSyncExternalStore:St,startTransition:wt,useRef:k,useImperativeHandle:Ye,useMemo:A,useCallback:j,useContext:Xe,useDebugValue:Ze,version:`18.3.1`,Children:Qt,render:zt,hydrate:Bt,unmountComponentAtNode:Kt,createPortal:Rt,createElement:C,createContext:Te,createFactory:Vt,cloneElement:Gt,createRef:T,Fragment:E,isValidElement:Ht,isElement:vn,isFragment:Ut,isMemo:Wt,findDOMNode:qt,Component:ee,PureComponent:Dt,memo:Ot,forwardRef:kt,flushSync:_n,unstable_batchedUpdates:gn,StrictMode:E,Suspense:Mt,SuspenseList:Ft,lazy:Pt,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn}}));function yn(e){Cn=e}function bn(){Cn=null}function xn(){if(!Cn)throw Error(`Thino: getApp() called before the plugin registered its App instance`);return Cn}function Sn(){return Cn}var Cn,wn=o((()=>{Cn=null}));function P(...e){En()&&console.debug(...e)}function Tn(...e){console.error(...e)}var En,Dn=o((()=>{En=()=>typeof window<`u`&&window.thinoDebug===!0}));function On(e,t){nr[e]=t}function kn(e){return!!(Sn()?.plugins?.getPlugin($0m))?.settings?.[e]?.enabled}function An(){return jn($04)}function jn(e){let t=nr[e];if(t)return{format:t.format||er[e],folder:t.folder?.trim()||``,template:t.template?.trim()||``};try{let t=xn(),n={day:$50,week:`weekly`,month:`monthly`,quarter:`quarterly`,year:`yearly`};if(kn(n[e])){let r=t.plugins.getPlugin($0m),i=r?.calendarSetManager?.getActiveConfig(e);if(i)return{format:i.format||er[e],folder:i.folder?.trim()||``,template:i.template?.trim()||``};let a=r?.settings?.[n[e]];if(a)return{format:a.format||er[e],folder:a.folder?.trim()||``,template:a.template?.trim()||``}}if(e===$04){let e=t.internalPlugins?.getPluginById($2l)?.instance?.options;if(e)return{format:e.format||$02,folder:e.folder?.trim()||``,template:e.template?.trim()||``}}}catch(e){P(`No custom periodic note settings found!`,e)}return{format:er[e],folder:``,template:``}}function Mn(){let e=xn(),t=e.internalPlugins?.plugins?.[$2l];if(t&&t.enabled)return!0;let n=e.plugins?.getPlugin($0m);return!!(n&&n.settings?.daily?.enabled)}function Nn(e,t=$04){return`${t}-${e.clone().startOf(t).format()}`}function Pn(e){return e.replace(/\[[^\]]*\]/g,``)}function Fn(e,t){if(t===$22){let t=Pn(e);return/w{1,2}/i.test(t)&&(/M{1,4}/.test(t)||/D{1,4}/.test(t))}return!1}function In(){let e=d.moment.locale(),t=[e,`zh-cn`,`zh-tw`,`en`];return typeof e==$q&&e.includes(`-`)&&t.push(e.split(`-`)[0]),Array.from(new Set(t.filter(Boolean)))}function Ln(e,t){let n=d.moment.locale();for(let r of In())try{d.moment.locale(r);let n=(0,d.moment)(e,t,!0);if(n.isValid())return n.clone()}finally{d.moment.locale(n)}return null}function Rn(e,t){let n=(jn(t).format||er[t]).split(`/`).pop(),r=Ln(e,n);if(!r)return null;if(Fn(n,t)&&t===$22){let t=Pn(n);if(/w{1,2}/i.test(t))return Ln(e,n.replace(/M{1,4}/g,``).replace(/D{1,4}/g,``))}return r}function zn(e,t){return Rn(e.basename,t)}async function Bn(e){let t=xn();if(!e?.trim())return[``,null];try{let n=(0,d.normalizePath)(e),r=t.metadataCache.getFirstLinkpathDest(n,``);return r||=t.vault.getAbstractFileByPath(n.endsWith($gn)?n:`${n}.md`),r?[await t.vault.cachedRead(r),t.foldManager?.load(r)??null]:(new d.Notice(`Failed to find template file: "${e}"`),[``,null])}catch(t){return console.error(`Failed to read template: "${e}"`,t),new d.Notice(`Failed to read template: "${e}"`),[``,null]}}function Vn(e,t,n){let r=(0,d.moment)(),i=t.format(n);return e.replace(/{{\s*date\s*}}/gi,i).replace(/{{\s*time\s*}}/gi,r.format($17)).replace(/{{\s*title\s*}}/gi,i).replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(e,i,a,o,s,c)=>{let l=t.clone().set({hour:r.get(`hour`),minute:r.get(`minute`),second:r.get(`second`)});return a&&l.add(parseInt(o,10),s),c?l.format(c.substring(1).trim()):l.format(n)}).replace(/{{\s*yesterday\s*}}/gi,t.clone().subtract(1,$04).format(n)).replace(/{{\s*tomorrow\s*}}/gi,t.clone().add(1,$04).format(n))}async function Hn(e,t){let{vault:n}=xn(),r=(0,d.normalizePath)(e?`${e}/${t}`:t),i=r.substring(0,r.lastIndexOf(`/`));return i&&!(n.getAbstractFileByPath(i)instanceof d.TFolder)&&await n.createFolder(i),`${r}.md`}function Un(){return Wn($04)}function Wn(e){let{vault:t}=xn(),{folder:n}=jn(e),r=t.getAbstractFileByPath((0,d.normalizePath)(n||`/`));if(!r)throw new tr(`Failed to find ${e} notes folder: "${n}"`);let i={},a=t=>{if(t instanceof d.TFile&&t.extension===`md`){let n=zn(t,e);if(n){let r=Nn(n,e);i[r]=t}}else if(t instanceof d.TFolder)for(let e of t.children)a(e)};return a(r),i}function Gn(e,t){return t[Nn(e,$04)]??null}function Kn(e,t,n){return t[Nn(e,n)]??null}async function qn(e){return Jn(e,$04)}async function Jn(e,t){let n=xn(),{vault:r}=n,{template:i,format:a,folder:o}=jn(t),[s,c]=await Bn(i),l=await Hn(o,e.format(a));try{let t=Vn(s,e,a),i=await r.create(l,t);return c&&n.foldManager?.save(i,c),i}catch(e){throw console.error(`Failed to create file: '${l}'`,e),new d.Notice(`Unable to create new file.`),e}}var Yn,Xn,Zn,Qn,$n,er,tr,nr,rr=o((()=>{wn(),Dn(),Yn=$02,Xn=$g5,Zn=$b0,Qn=$op,$n=$j9,er={day:Yn,week:Xn,month:Zn,quarter:Qn,year:$n},tr=class extends Error{},nr={}})),ir,ar,or=o((()=>{ir=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==$z?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=$0j||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},ar=(e=>e?ir(e):ir)}));function sr(e,t=cr){let n=M.useSyncExternalStore(e.subscribe,M.useCallback(()=>t(e.getState()),[e,t]),M.useCallback(()=>t(e.getInitialState()),[e,t]));return M.useDebugValue(n),n}var cr,lr,ur,dr=o((()=>{N(),or(),cr=e=>e,lr=e=>{let t=ar(e),n=e=>sr(t,e);return Object.assign(n,t),n},ur=(e=>e?lr(e):lr)})),fr=o((()=>{or(),dr()}));function pr(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var mr,hr,gr,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr=o((()=>{mr=new Map,hr=e=>{let t=mr.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([e,t])=>[e,t.getState()])):{}},gr=(e,t,n)=>{if(e===void 0)return{type:$pd,connection:t.connect(n)};let r=mr.get(n.name);if(r)return{type:`tracked`,store:e,...r};let i={connection:t.connect(n),stores:{}};return mr.set(n.name,i),{type:`tracked`,store:e,...i}},_r=(e,t)=>{if(t===void 0)return;let n=mr.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&mr.delete(e))},vr=e=>{if(!e)return;let t=e.split(`
  4. `),n=t.findIndex(e=>e.includes(`api.setState`));if(n<0)return;let r=t[n+1]?.trim()||``;return/.+ (.+) .+/.exec(r)?.[1]},yr=(e,t={})=>(n,r,i)=>{let{enabled:a,anonymousActionType:o,store:s,...c}=t,l;try{l=(a??!1)&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!l)return e(n,r,i);let{connection:u,...d}=gr(s,l,c),f=!0;i.setState=((e,t,a)=>{let l=n(e,t);if(!f)return l;let d=a===void 0?{type:o||vr(Error().stack)||$oq}:typeof a==$q?{type:a}:a;return s===void 0?(u?.send(d,r()),l):(u?.send({...d,type:`${s}/${d.type}`},{...hr(c.name),[s]:i.getState()}),l)}),i.devtools={cleanup:()=>{u&&typeof u.unsubscribe==$z&&u.unsubscribe(),_r(c.name,s)}};let p=(...e)=>{let t=f;f=!1,n(...e),f=t},m=e(i.setState,r,i);if(d.type===$pd?u?.init(m):(d.stores[d.store]=i,u?.init(Object.fromEntries(Object.entries(d.stores).map(([e,t])=>[e,e===d.store?m:t.getState()])))),i.dispatchFromDevtools&&typeof i.dispatch==$z){let e=i.dispatch;i.dispatch=(...t)=>{e(...t)}}return u.subscribe(e=>{switch(e.type){case`ACTION`:if(typeof e.payload!=$q){console.error(`[zustand devtools middleware] Unsupported action format`);return}return xr(e.payload,e=>{if(e.type===`__setState`){if(s===void 0){p(e.state);return}Object.keys(e.state).length!==1&&console.error(`
  5. [zustand devtools middleware] Unsupported __setState action format.
  6. When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
  7. and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
  8. `);let t=e.state[s];if(t==null)return;JSON.stringify(i.getState())!==JSON.stringify(t)&&p(t);return}i.dispatchFromDevtools&&typeof i.dispatch==$z&&i.dispatch(e)});case`DISPATCH`:switch(e.payload.type){case`RESET`:return p(m),s===void 0?u?.init(i.getState()):u?.init(hr(c.name));case`COMMIT`:if(s===void 0){u?.init(i.getState());return}return u?.init(hr(c.name));case`ROLLBACK`:return xr(e.state,e=>{if(s===void 0){p(e),u?.init(i.getState());return}p(e[s]),u?.init(hr(c.name))});case`JUMP_TO_STATE`:case`JUMP_TO_ACTION`:return xr(e.state,e=>{if(s===void 0){p(e);return}JSON.stringify(i.getState())!==JSON.stringify(e[s])&&p(e[s])});case`IMPORT_STATE`:{let{nextLiftedState:t}=e.payload,n=t.computedStates.slice(-1)[0]?.state;if(!n)return;p(s===void 0?n:n[s]),u?.send(null,t);return}case`PAUSE_RECORDING`:return f=!f}return}}),m},br=yr,xr=(e,t)=>{let n;try{n=JSON.parse(e)}catch(e){console.error(`[zustand devtools middleware] Could not parse the received json`,e)}n!==void 0&&t(n)},Sr=e=>(t,n,r)=>{let i=r.subscribe;return r.subscribe=((e,t,n)=>{let a=e;if(t){let i=n?.equalityFn||Object.is,o=e(r.getState());a=n=>{let r=e(n);if(!i(o,r)){let e=o;t(o=r,e)}},n?.fireImmediately&&t(o,o)}return i(a)}),e(t,n,r)},Cr=Sr,wr=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return wr(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return wr(t)(e)}}}},Tr=(e,t)=>(n,r,i)=>{let a={storage:pr(()=>localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=new Set,c=new Set,l=a.storage;if(!l)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let u=()=>{let e=a.partialize({...r()});return l.setItem(a.name,{state:e,version:a.version})},d=i.setState;i.setState=(e,t)=>(d(e,t),u());let f=e((...e)=>(n(...e),u()),r,i);i.getInitialState=()=>f;let p,m=()=>{if(!l)return;o=!1,s.forEach(e=>e(r()??f));let e=a.onRehydrateStorage?.call(a,r()??f)||void 0;return wr(l.getItem.bind(l))(a.name).then(e=>{if(e)if(typeof e.version==$0e&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(e=>{let[t,i]=e;if(p=a.merge(i,r()??f),n(p,!0),t)return u()}).then(()=>{e?.(p,void 0),p=r(),o=!0,c.forEach(e=>e(p))}).catch(t=>{e?.(void 0,t)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(l=e.storage)},clearStorage:()=>{l?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>m(),hasHydrated:()=>o,onHydrate:e=>(s.add(e),()=>{s.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},a.skipHydration||m(),p||f},Er=Tr}));function Or(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function kr(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=Or(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}function Ar(){return Pr||=kr(`keyval-store`,`keyval`),Pr}function jr(e,t=Ar()){return t(`readonly`,t=>Or(t.get(e)))}function Mr(e,t,n=Ar()){return n($p7,n=>(n.put(t,e),Or(n.transaction)))}function Nr(e,t=Ar()){return t($p7,t=>(t.delete(e),Or(t.transaction)))}var Pr,Fr=o((()=>{}));function Ir(e){if(typeof window>`u`)return null;let t=Br(e),n=window.localStorage.getItem(t);if(n!==null)return n;if(t===e)return null;let r=window.localStorage.getItem(e);return r!==null&&(window.localStorage.setItem(t,r),window.localStorage.removeItem(e)),r}function Lr(e,t){typeof window>`u`||window.localStorage.setItem(Br(e),t)}function Rr(e){typeof window>`u`||(window.localStorage.removeItem(Br(e)),window.localStorage.removeItem(e))}var zr,Br,Vr=o((()=>{zr=()=>{if(typeof window>`u`)return null;let e=window.appId;return typeof e==$q&&e.length>0?e:null},Br=e=>{let t=zr();return t?`${t}-${e}`:e}}));function Hr(e){let{name:t,storageType:n,version:r=1,migrate:i}=e;switch(n){case $dc:return Ur(t,r,i);case`sessionStorage`:return Wr(t,r,i);case`indexedDB`:return Gr(t,r,i);default:throw Error(`Unsupported storage type: ${n}`)}}function Ur(e,t,n){return{getItem:async e=>{try{let r=Ir(e);if(r===null)return null;let i=JSON.parse(r),a=i.version||1;if(n&&a!==t){let r=n(i.state,a);return Lr(e,JSON.stringify({state:r,version:t})),r}return i.state||i}catch(t){return console.error(`Failed to get item from localStorage [${e}]:`,t),null}},setItem:async(e,n)=>{try{let r;if(typeof n==$q)try{r=JSON.parse(n)}catch{r=n}else r=n;Lr(e,JSON.stringify({state:r,version:t,updatedAt:Date.now()}))}catch(t){console.error(`Failed to set item in localStorage [${e}]:`,t)}},removeItem:async e=>{try{Rr(e)}catch(t){console.error(`Failed to remove item from localStorage [${e}]:`,t)}}}}function Wr(e,t,n){return{getItem:async e=>{try{let r=sessionStorage.getItem(e);if(r===null)return null;let i=JSON.parse(r),a=i.version||1;if(n&&a!==t){let r=n(i.state,a),o={state:r,version:t};return sessionStorage.setItem(e,JSON.stringify(o)),r}return i.state||i}catch(t){return console.error(`Failed to get item from sessionStorage [${e}]:`,t),null}},setItem:async(e,n)=>{try{let r;if(typeof n==$q)try{r=JSON.parse(n)}catch{r=n}else r=n;let i={state:r,version:t,updatedAt:Date.now()};sessionStorage.setItem(e,JSON.stringify(i))}catch(t){console.error(`Failed to set item in sessionStorage [${e}]:`,t)}},removeItem:async e=>{try{sessionStorage.removeItem(e)}catch(t){console.error(`Failed to remove item from sessionStorage [${e}]:`,t)}}}}function Gr(e,t,n){let r=e.includes($jt)?Kr:qr;return{getItem:async e=>{try{let i=await jr(e,r);if(i===void 0)return null;let a=i.version||1;if(n&&a!==t){let o=n(i.state,a);return await Mr(e,{state:o,version:t,updatedAt:Date.now()},r),o}return i.state||i}catch(t){return console.error(`Failed to get item from IndexedDB [${e}]:`,t),null}},setItem:async(e,n)=>{try{let i;if(typeof n==$q)try{i=JSON.parse(n)}catch{i=n}else i=n;await Mr(e,{state:i,version:t,updatedAt:Date.now()},r)}catch(r){if(console.error(`Failed to set item in IndexedDB [${e}]:`,r),(typeof n==$q?n:JSON.stringify(n)).length<5e4)try{let r;if(typeof n==$q)try{r=JSON.parse(n)}catch{r=n}else r=n;Lr(e,JSON.stringify({state:r,version:t,fallback:!0}))}catch(t){console.error(`Fallback to localStorage also failed [${e}]:`,t)}}},removeItem:async e=>{try{await Nr(e,r),Rr(e)}catch(t){console.error(`Failed to remove item from IndexedDB [${e}]:`,t)}}}}var Kr,qr,Jr,Yr=o((()=>{Fr(),Vr(),Kr=kr(`thino-memo-db`,$p4),qr=kr(`thino-height-db`,`height-cache`),Jr={ui:Hr({name:`ui-state`,storageType:$dc,version:1}),memos:Hr({name:$p4,storageType:`indexedDB`,version:1,migrate:(e,t)=>{let n=e;if(t<1&&n?.memos){let e=Array.isArray(n.memos)?n.memos:[];return{...n,memos:e.filter(e=>e&&e.id)}}return e}}),queries:Hr({name:`query-data`,storageType:$dc,version:1})}})),Xr,Zr=o((()=>{fr(),Dr(),Yr(),Xr=ur()(br(Er(e=>({user:null,signIn:t=>e(e=>e.user===t?e:{user:t})}),{name:`user-store-cache`,storage:Jr.ui,partialize:e=>({user:e.user?{id:e.user.id,nickname:e.user.nickname,email:e.user.email,role:e.user.role}:null}),version:1}),{name:`user-store`}))})),Qr,$r,ei,ti,ni,ri,ii=o((()=>{Qr=`ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ΀΁΂΃΄΅Ά·ΈΉΊ΋Ό΍ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁ҂҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևֈ։֊֋֌֍֎֏`,$r=`hino~ Thin~ thin~ino ~ de~tandard~er ~en ~ for ~de ~设置~efault~stablece~ para ~ndstil~文件~設定~ som standar~使用~Standar~defaul~默认~ festlegen~Establec~tablecer~andardmäßig ~ co~ar ~te ~ing~ the ~ to ~ in~每日筆記~預設~ not~inos~ción ~ent~ für ~e thi~r thi~ etiqueta~tion~ter~ditor~es ~nte~ere~age~et ~til ~e Thi~lugin~r Thi~Indsti~n Thi~同步~ Standa~uccessfully~no Web~ktivier~ver~onfigura~ da~ino-~no 的~bsidian~标签~ación~顯示~ di~ en~in ~ste~ fil~der~le ~標籤~do ~。默~defecto~ edito~ plugi~cont~os ~se ~ by d~ostrar~成功~note~opier~r d~ {{TIME|YYYYMMDD~E|YYYYMMDDHHmmss~IME|YYYYMMDDHHmm~āo~TĀ~Ăo~Ā ~Ą ~poŜefecto~tĀ~. FalŖbyĄfault~.ĺrdmäßig~ poŜefect~ FalŖbyĄfault.~oŜefecto.~ĺrdmäßigĄaĽt~predeĬmina~Ěįn~Ő认为~oĄ~。Ģ為~Ěnfigur~ whć~mı~olŌ~日期~日记~Ňari~inŊllung~保存~ĝ ~Daily/one.png~or favor~可以~ėĆ~ich~asswor~aŏ~rdmäßigĄaĽt.~所有~ŗċ~aĄ~en.ĺrdmäßi~gregě~mĦ~内容~o 的~SIJ~启用~圖片~編輯器~複製~sta~"Daily/one.pn~aily/one.png"~tiqueta~forma~settĝs~venligst~复制~显示~的ā~資料~Ās~ktiľ~leaŖ~啟用~插入~開啟~Por favo~anzeigen~ormat~rchiv~Ġdstil~Ħe~ķl ~ň ~ilyģ~位置~添加~{UsedDay}~编辑器~EinŊllun~nabō~儲存~檔案~ın~and~anŏ~內容~文字~enutzerdefinier~ Web ~ settĝ~. Padrão: ~Benutzer~nĝ~nŊllungć~redeĬminad~Š ~š ~Ţ ~ 的~äglƀe Notiz~täglƀe Noti~Ű ~ľs~ŝHHmmss}}~功能~图片~正在~ĈŦ~ ľ~eriodic~ ikke ~ iŴ~abilit~fİn~ilføj~iŊ~{šNum}~ƀt~ al~Du kan~eƀ~ult~voĸno~分享~密码~插件~ědéfaut~ed ~ HTTP 服务器~ [[2022-01-01]]~Hiįrgrundbild~Ěm~Failedğ~未找到~自定义~ser~tĜ~ď夹~Ĭ ~Ŋ ~š-~exitosaƉe~代理~的Ţ~类型~ģasŸas~al ~gen~ automati~在这里~sch~st ~. DeaƝIJsom są~as ~aī~or ~view~中的~失敗~微信~打开~文本~标题~模式~Ăŕ~ħš~tag~activ~aggrundsbille~beim ~llĆ~ne ~piě~port~riodic NotĮ~sIJ~ŴnŤfonŏ~Ąfaul~ ƴ~pědéfau~ynchronisi~失败~時間~背景~链接~類型~高度~ćŦ~Ĉš~Šƹ~ pr~ǀ的~mǠsucces~resǚ~sǚa~KunȌikke~pǙer~ersonalizad~Tı~fŵ~text~ messı~WeChat~dć~end~glig~iĎlĝ~完成~查看~格式~標題~输入~选择~ĄaĽt~ća~Ġ ~Ō ~ƌthe~Ƒtus~...~el ~ion~ you~Show~aĜ~elec~link~Datei~Ŋll~ lin~ oŃ-hoľ-eĭ~Tags~ackground~aƪĮʼnboth pǎ-Śsȓŀ~clipboard~global~ntraseña~osiī~rfolgrǙ~不同~创建~外掛~数据~更新~輸入~Ěn~ŀg~ƪĮʼnboth pǎ-Śsȓŀi~Ǘsĺrd~ feature~ foundĈthe givȜ ~ wi~ ȇ~OŃ ~Pǎ NotĮ~Seitenleǔ~You can ~at ~ave ~foundĈthe givȜ p~ndĈthe givȜ path~nǨt~oundĈthe givȜ pa~personaliza~undĈthe givȜ pat~utton~œn~ƕt~ƚo~Ƽdefinier~is ~ mobil~ re~. DeshǑƂť~PKMĆ~carpet~daƪĮʼnboth pǎ-Śsȓ~h pǎ-Śsȓŀily-Śsœ~nŌ~type~unkī~如果~密碼~时间~每日~置顶~連結~cȾ~ƈȩoǗȟincipio~ ȊKśćȹErgebnisŖƣ~ěŦ~ŏĉ~nǖ ~åŜ~IŴ~Pro~eƑ~iȌ~lick~lō~ownload~ÜberǷrift~Ġd~įr~ŀt~Ňe~Œr~ErrǼdz~est~orskellig~专业版~剪貼簿~剪贴板~ů关闭~Inhal~MŘ~arra laĬ~aƥ~dgangsko~füǴ~incroniz~iō~kś~local~para~中ȼ~你ž~删除~本地~消息~登录~自动~视图~路径~Ĉɢ~đd~Ĩno~ŀĜ~ũo~Ɖe~ǁ- ~Ǥple~,请~HTTP~ist~uƴ lĮréȣts sontĚ~ƴ lĮréȣts sontĚp~'Ǖǀƭ ~dhold~pƁd~ĩno~Ƒrt~ȟefix~ɖtraseña~ wenn ~, wenn~PuedĮeČr ~allout~creɁ~hć~ily-Śsɫs.~lĮréȣts sontĚpié~sĆ~ustom ~uƵ~visƽ~ão ~信息~取消~展示~时,~点击~聚焦~连接~ćf~ĠǨ~Įréȣts sontĚpiés~ŋe~Ƙ检索结果时附带~ƛ夾~Ƴt~Ǩľ~ɗlig~ 'NOTEIT'~ CTRL + SHIFT + ~ ij~. Trueƅ~CTRL + SHIFT + T~Daily~Eĭ~abe~aquí~eight~側邊欄~Ĵno~ǜ到ǀ~ȧsnotiz~ɜll~ 伺服器~Memŕ~Text~appe~aǸ~ema~emorƴ~etadat~fİį~iƑ~nombre~nĉ~und~ynkroni~主題~主题~任务~列表~創建~名稱~在此~开启~最大~筛选~行動裝置~資訊~Ąn~Ţ.~Ůt~͸-Serľ~ automáticaʹ~Biǩ~Coȍ~Ctrl/Cmd + Eʐ~Start~Ňre~ɜth~Pĵ~ange~den~http~ikke~name~side~sȾ~ung~ēd~ĝs~ƅ.~ein~re ~ ɯ~. Fals~Ansǖ~Aufgab~FILT~Ver~adĝ~aƪe~aȮeģ~berprüf~eĄ~fin~guard~hİ~ile~ilĬ~mǚi~nformŅ~tǠ~öffne~任務~快速~您ž~批量~按鈕~按钮~的Ģ~目标~篩選~視圖~cΧzƂ~tδ~選擇~Ąr~šs~šƹ~ŷǞ~LJkrift~ɂʀ~ʕleǴ~ʕá~'ǁ😏'~um ~usuario~查是否~請檢查~ auf~ ti~ Ŗ~Kś~Pƞ~dŕ~gć~heme~ier~ific~lĮ~pć~que~sɂ~Ƣr~ɀ ~ día~hinzu~la ~ŋtr~ɜrd~ ƒg"~ Ǽ~Dċ~FehlĆȊ~OrdnĆfü~cordedŢϋή be~dĮ~faϰd~lƀ~pȭ~tiempo~切换~刪除~前缀~前置~回顧~回顾~固定~在ǀ~在ǂ~建立~归档~没有~清除~激活~生成~留空~的Ș~获取~路徑~重新~需要~點擊~ĄģǺperiódic~ġɒ~ŋĬ~Ő认~Ŧs~Ɔ ~Ǎifi~ȟo~ʞo~ϧifi~ado~it ~ '43999'~ c΍~ la~ ʣ~AgĦ~Copy~Debug-Inƕīć~Déϭi~D͹ribu~Eư~PƁ~TǓ~erϜ~eě~eĜ~eǩ~eǽ~eȋ~eϰn~fǫ~hɯ~ilpasȐ~iǸ~lacĮĉreǒcia~nʆĆ~ount~sě~Ąs~Ķno~Ňs~Š-~ŤfondƩthème ~ű關閉。~ȇs~ȓ ~ʜ ~Ͱ.~ͳ.~ate~he ~ som~ ȩ~Aƈ~WΈ~aĽ~aǚ~brug~emo~eƔ~ifǒt~lć~tć~你的~侧边栏~切換~前往~多ď~存在~專業版~帳號~指定~新增Ŏ~无法~服务~末尾~样式~模型~状态~用户~登入~目標~移动端~编辑~自訂~記錄ǰ ƶ將~账号~開始~附加~ď名~Ē者~ěe~ĥĉ~ű否。~ŲŅ~ƺs~Ǒě~ǘƦō~ȭe~ʒ ~ når~bille~edğ~etz~eĝe~l'éditeur ~når ~ora~our~parti~sión~udklipshŵ~ʅgefλen~ ZwiǷenablı~ on~ vil~FSRS~cess~eĉ~eʼn~iİ~ѦisģɆĮcѫ, itϢhΩȸ~TѦisģɆĮcѫ, itϢhΩ~isģɆĮcѫ, itϢhΩȸp~sģɆĮcѫ, itϢhΩȸpx~ģɆĮcѫ, itϢhΩȸpx.~ (TѦisģɆĮcѫ, itϢ~(TѦisģɆĮcѫ, itϢh~0ϟ (TѦisģɆĮcѫ, i~lace~lĝ~mβ~pĵ~sync~Ɛ結果時ņ~ǏfλIJfoŜȷngivnͱ-s~Ǘ ~Ȓt~Ɇk~ɆĮcѫ, itϢhΩȸpx.)~ϊ ~ϟ (TѦisģɆĮcѫ, it~ϳĄĄpurŅ~Cʋğ~Indtγ~are~højĉ~rea~título~Ůiŏ~ǁHttp~Ǵnemg~Ѹgori~ 'ʤhost'~ zЌ~ ɸ~ Ϡ~,ųȐ0,ǂwouldģĚlla~-inͽ~;΃ҾTitȽϕgebćwird~Coį~Iɦ~SidǬ~SupĆ~SҮe~Tag~actual~assen~aƩblanco~bɪ~cha~ejlϭdϞinfo~fλIJfoŜȷngivnͱ-st~laps~línea~lIJ~lŕ~nhänǴ~ont~opeƽǂɌly~ort~są~ten~visibili~werϖ~Öffnć~上传~上傳~下载~不是~例如~匹配~复习~开始~您的~搜尋~搜索~摺疊~狀態~直接~自動~複習~請先~记录~連接~選項~配置~重置~ĄŠ~ĄŢ~čš~Ěde~ĠĬ~ģaŸa~ģe~ŀy~Ţ-~feӱ~ŧ.~ŭŏ~ŲaʀĮ~ơŢ~ǀWeb~LJȾ~Ǵer~ȧsmarkИϜ~ɐ的~ɭ ~ϗ/ϗs~Ϛpan~ϦER~ϧϛ~ϭa~А Mobilgerä~є ~ӹroȋ~ ge~ord~ du~Brug~Mҁ~Stat~Sȥ~UŖ~Zeit~ave~ble~bō~cӚtŻa new~ect~from~füg~fƀ~ive~iĆ~iŴ~oȹ~per~rɅ~sŤ~sɣ~tĮ~will oЛwΈɞopensŧ~Ąl~Ěp~ģ ~ķl~ŀs~Ǥo~ȿ ~ʛt~ω ~Иt~ be~DaȮ~Wenn ~all~ammenfold~antal~earch~for~noňŔr~onnec~res~rück~samme~til~Últimŕ~二维码~字符串~😟 ~ŤNotǺ~Ɛ到ʘ~Ƙ到ʙ~džpalabr~ǨvidǼ~ɔ日志~Χçalho~ϒct~ч程式~,Ģ為~ if aБtōisэvided~ ma~ of~ op~ págin~ Į~ Ϧ~, pƞ~. Leɣempty~; if aБtōisэvide~ARCHIV~AƝ~Աpágin~ԴĚunt~LҮĜ~OЛ~Sync~Toggō~accѫ~ada~ač~bjetiv~bri~corrՀ~eatmap~eĭ~eʊ~fǼ`,ei=`ribbonIconTitle~to~UǨ ϙ~SIJyҳ uǨ ϙ hİ. 'Mҁs 😏' ByĄfaǚ~ɡsIJtargIJheadĝ like "# Headĝ"ğŔrolŀta locaī~InǨt afĬ headĝ~If left blank,ĞrecԴǠtĀĚįntɜll՘ĠǨtǠɢtѹȭնĞdiary; if aБtōɯprovided,ǗlɱcԴǠtĀĚįntɜll՘ uni՟mly cѸgorizǠλĆthɢtitle.~ʈҼ Mҁs՘low~If left blank,ĞTĀĠĬfaceɜllŇsplayǗlĂoɱcԴĚįnts; if aБtōɯprovided,ĞTĀĠĬfaceɜllҹlyŇsplayĞŔĦs λĆthɢtitle, ƴĚįnts writӽ elsewhİɜllģ՘ shown.~SɣMҁ bɪєbel~Tѹȩ shownҹĞsɣMҁ bɪĠĞUI.Πŗċ.~OpćMҁs whćoŃշens~WhćenaԽ this, MҁsɜllշćwhćOŃշensϣeŗċ.~Dċȟefix whćsɣtĀ~SIJtѹĔtȟefix whćcӚĜmҁ, 'L͹'ŗċ.~DċĠǨtŀĜƕt~SIJtѹĔtŀĜƕt whćinǨtŀĜby @, 'Tasks'ŗċ.~DċŒr posiīҹɰe~SIJtѹĔtŒr posiīҹ Mobϰ, 'Top'ŗċ.~UŖbɪğshowŒrҹɰe~SIJa floɢbɪğc՛Œrҹɰe. Only whćeĭ locѸd ɢtѹbottom works.~ɀ Time Whćї Resǚs~ɀБme whćyouĚpyɱsǚs, like 12:00. їБmeŗċ.~ɀ DѸ Whćї Resǚs~ɀŀĜwhćyouĚpyɱsǚs, likeǢ. їŀĜbyĄfaǚ.~Add Blank LiȌBetwećDiffİnt DѸ~Add blankɆe whćcopyɱsǚɜthŀte. No blankɆeŗċ.~ShӘ Mҁs Imı FooĬ ϑ~SIJanythĝȿ want hİ, uŖ{TĀNum}ğdisplay NumbĆofĂo, ƭĈdays. '{TĀNum}āo ƭ Days' ByĄfaǚ~UŖɈ In Vaǚ~UŖȇsĠ vaǚ rathĆthanҹlyĠ Mҁsϣeŗċ.~L͹~Task~Top~Bottom~TAG~DAY~QUERY~EDIT~PIN~UNPIN~DELETE~CONFIRM!~CREATE ϦER~Settĝs~Recycōbin~Fetchĝŀtaȼ~Hİ ɯNo Mҁs.~FreМntly UsǠɈ~WhɢŏyouĂk nowȼ~READ~MARK~SHARE~SOURCE~RESTORE~վE~Υ Reǽ~DELETE AT~Noooop!~All Data ɯLoadǠ🎉~TYPE~LINKED~NO TAGS~HAS LINKS~HAS IMAGES~INCLUDE~EXCLUDE~TEXT~IS~AND~OR~LIST~ISNOT~PATH~METADATA~SELECT~ADD ϦER TERMS~ϦER~FilĬ~TITLE~CREATE QUERY~EDIT QUERY~MATCH~TIMES~ShӘ Mҁ Imı~OuĬ Frame~EnaԽ Frame~Frame Paddĝ~Frame Color~Imı ɯǴeratĝȼ~Imı ɯloadĝȼ~Loadĝȼ~թCannot load imı, imıɆkյybe broken~Υ Mҁs~CANCEL EDIT~LINK TO THE~Bɉ ImıĠ Dark TЗ~Bɉ ImıĠ Light TЗ~SIJbɉ imıĠŀrk tЗ. SIJsomethĝ like ƒg"~SIJbɉ imıĠ light tЗ. SIJsomethĝ like ƒg"~ɀ Tasks LΧl~ɀ tasksєbȽneětѹtime ȩϣeŗċ~PleaŖOpćMҁs First~DATE~BEFORE~AFTER~ImȎ~TITLE CANNOT BE NULL!~ϦER CANNOT BE NULL!~OpćMҁs SĻ~CopiǠto ɋ SĻ~Check ifȿշenǠΥ NotĮPĵ Or Pǎ NotĮPĵ~PleaŖϭishĞlaǸfilĬ settĝ first~CloŖMҁs SĻ~InǨt ǺMҁ~InǨtŋe ǺmҁĚįnt~CӹĦ cannot՘ empty~UnaԽğcӚĜnewŋe.~RESTORE SUCCEED~DELETE SUCCEED~YouŇdn't sIJfolŌĈdailyģĮʼnboth Ոiodic-Śs ƴŀily-Śsœns.~PleaŖcheckȿŜailyģeœn OR ՈiodicģĮpĵ settĝs~UŖwhƀœn'sĄfaǚĚnfiguraī~Mҁs uŖtѹpĵ'sĄfaǚĚnfiguraīğfetch mҁs Ձŀily, 'Υ'ŗċ.~ΥģĮpĵ~Always ɀ Leaf Sideběon PC~ɀ left Ϛběon PC/TaԽt evćwhćtѹleafɜdth ɯless than 875pxϣeŗċ.~YouŇdn't sIJƕtĈdailyģĮʼnboth Ոiodic-Śs ƴŀily-Śsœns.~S՞Ǘl settĝs~No settĝsյtch s՞~Core~Appearance~Featuբ~Reǽ~SuՈ~ȫ~Info~General~ShӘ~Advanced~TĀ~Rƴom Reǽ~վED AT~FaϰdğdeleĜmҁ~ϑǠՁ~CΌBɉ Imı~SIJcΌbɉ imı.~CΌMҁ FooĬ~SIJcΌmҁ fooĬ.~H֌ ColǼScЗ~SIJdiffİntĚlǼǷemeĈh֌.~EnaԽ LocdzHttp Serľ~Mҁs Http Serľ Pӻ~SIJmҁs ϗ Ǩľ Ȏğl͹en.ђŗċ~Dċ Eĭ Mode~LՄ-Preǽ MoĉOR Sҳce Mode.~SɣɸĈTĀ~DAILY~MULTI~CANVAS~ALL~FILE~TODO~DONE~JOURNAL~OTHER~JҳndzmoĉsԼs mҁsĠto ՈiodicģeŋĮ(daily/weekly/mӹhly/yearly)~Jҳndzgranularity~ChooŖtѹՈiod ɸĈjҳndzfϰs~Υ~Weekly~Mӹhly~Yearly~UŖindepȭĦ settĝs~WhćenaԽd, uŖcΌfolŌ/ƕt/templѸĠŊadնĠheritĝ ՁŀilyģĮpĵ~HeadĝŀĜƕt~FƤĈdѸ headĝsĠ jҳndzfϰs~Custom~CΌheadĝ ƕt~FolŌ~FolŌ path ՟~Śs~e.g.~DѸ ƕt~MomĦ.js ƕtĈfϰ ϙs~Ĕt~TemplѸ~TemplѸŋe pathĈnewģes~FaϰdğcӚĜdailyģe, check if ёex͹s.~FaϰdğcӚĜdailyģe. PleaŖcheck ifȿ cӚtǠa folŌĈdailyģes.~AfĬȿ ľifyȿr accѫ, pleaŖrefբh thɯpı.~ϧify~Ifȿ hɣany Мsīs, pleaŖŔact us.~DeleĜTĀ DirՀly~WhćdeleĜtĀŇrՀly, ёwillģ՘ movǠto trashϣeŗċ.~EnaԽշenĝĂo Ɍly~EnaԽշenĝĂo Ɍlyϣeŗċ.~KeyĈopenĝĂo Ɍly~SIJkeyĈopenĝĂo Ɍly.ΡTŗċ.~GIJȈaīĚde~Input ȈaīĚĉhİ~їāo id~ActivѸ ʈ ϧsȾ~PleaŖcopyāo id first~ɡsIJfolŌ ϙɜthŋe ϙ like "folŌ/fϰ"~ɡsIJfolŌ ϙ like "folŌ1/folŌ2/folŌ3"ğcӚĜsub-folŌ~Dċ sɣɸ~SIJtѹĔt sɣɸĈtĀ. "DAILY"ŗċ~UnɃ~Link~Rҁve sĻ~DeȈѸ~Rҁve~Confirm?~ք Ըus~EnaԽǵcāoƹӌ Ǽrun ёimmediѸly~քȟogբs~View currĦāoƹӌȟogբs~Readyğӌ~Dʍĝ~Applyĝ~Uploadĝ~Migraī pȭĝ~LaǸӌed~Neľ~ք now~UploadĝĂos~Repair ӌ~Re-ľifyǗl ӌǠtĀs ƴɱ-uploadĞonĮmissĝҹāoƹ(uŖthɯafĬ switchĝ backȭ Ǽif editsɱȎ "Not Foλ")~Repair~Repairĝ~Stop ӌ sĻ~ϑ ӌ sĻ~TѹAPI key ɯinvalid ǼTĀƹɯunavailaԽ~TĀƹcաī~PKMĆaccѫ~EįrĞδil addբs ǼphoȌnumbĆusǠbyȿr PKMĆaccѫ~Email ǼphoȌnumber~Yҳ accѫ ƴ pƁd ӘňcryptǠƴ storǠʼnOŃ SecretStҲge.~UŖsԼd pƁd~SignĠ ʤly ƴĚnnՀğTĀƹwithoutĄsktop ľЙaī.~SignĠ ƴĚnnՀ~Accѫ ƴ pƁd Әɱquired~SignĝĠ~SignǠʼntoāo Web~SignĠ faϰd~CաtǠsecurely~CաtǠsecurely as~PƁd logʼnɯnotňaԽdҹāoƹyet~IncorrՀ accѫ ǼpƁd~Couldģ ʕablish a secuϡTĀƹsessȾ~CաtǠtoāoƹsĻ~FaϰdğcաtğTĀ Web~TĀƹӌ faϰd~քĝāoƹmigraīŀta~FetchĝāoƹupdѸs~Applyĝ migrѸdŀta~Applyĝ ӌǠdata~Uploadĝ unӌǠʤŀta~Uploadĝ ʤŀta~TĀƹmigraīĚmpleted~քĚmpleted~Locdzdata uploaded~UploadğTĀƹfaϰd~քĝ~քed~ք faϰd~Stop~ϑ~ɀĂo neěmouse~Queryģ foλ~Sȭğɋ sĻ~TĀ - FaϰdğƑrt ͸ Ǩľ, pleaŖcheckĞȎ ɯavailaԽ.~TĀ - ϑǠ͸ Ǩľҹ Ȏ~TĀ - TerminѸd ͸ Ǩľ~Fϰģ ex͹~TĀģ foλ~Fϰģ foλĈtѹgՄnĂo path, ɯcӚtĝ a newŋe~FaϰdğϭdŀilyģĮfolŌ~PleaŖinƑll oŃ-hoľ-eĭœn first~CopiǠapp id sĻ~PleaŖinput tokćfirst~PleaŖenaԽ ӌ first~ϧify sĻ~Faϰdğľify~Logʼnwith PKMer~Logout~ʈ ȈѸd~TĀ Copilot quota~Cӹact supȎ~CʋğmanıĠ SuՈ settĝs~Logʼnwith PKMĆaccѫğȈѸ ʈɚs~Legacy Ȉaī (deprecѸd)~FolŌģ foλĈtѹgՄnĂo path, ɯcӚtĝ a new folŌ~Fϰģ foλĈtѹgՄnĂo path~FaϰdğӚd currĦŀilyģe, check if ёex͹s.~FaϰdğsԼ~COPY FAILED~COPY SUCCEED~ї sɂtǠȩ~їĂo~COPY~Thɯɯaȟoɚ, pleaŖupgraĉtoȟo ľsȾğuŖit.~ɡgIJpro ľsȾ Ձ: ~SԼ~Cancel~TĀ Υ Target~Input~#Ӭ~to cӚĜȇ~ʈɚs~TargIJTĀ Cѫ~Switch ǽ~SIJdaily target~TĀ SɣTo: ~Eįr fullscrećmode~Exёfullscrećmode~wԴs~wԴ~Return To Home Pı~TĀsğreǽ~ϑ Reǽ~Hard~Good~Easy~Again~Cleě՛ɱǽŀta~Υ ʈgբs~ɀ Ƒts~HiĉƑts~TotdzReǽs~Today,ȿ hɣreǽǠ՛ȿĩnos!~OpćtĀĠ cĦĆwindow~OpćtĀĠ floɢwindow~OpćtĀĠ right Ϛbar~OpćtĀĠ left Ϛbar~ɀĂoŒr~Toggōminimdzmode~FocusҹĂoŒr~Reք webĂŕto ʤ~ք ʤĂŕto web~ɀŀilyĂo~Focusҹ s՞ bar~ɀ-tĀĠ popoľ(HoľŒr)~CĦĆwindow~Floɢwindow~Right Ϛbar~Left Ϛbar~SɣtĀ ɸ whćӌ ʤ~SIJtѹĔt sɣtĀ ɸ whćӌ ʤ, FILEŗċ.~ք Ǩvice~ʈ ľЙaī Ƒtus~LՄ-preǽ~Sҳce~Globdzcopy~SIJtѹfolŌ ϙ~SIJtѹfϰϙ~SIJtѹfϰϙĈcurrĦ locaīŋe~Switch calȭěɸ~alphΧtical~alphΧticalReľse~byCѫ~byCѫReľse~Type hİ~Today~Yʕerday~LaǸ7ŀys~LaǸ30ŀys~LaǸ90ŀys~LaǸ180ŀys~LaǸ365ŀys~їŋĬǠtĀs~BulkĄlete~Bulk aƥe~Bulk ȇշeraī~Bulkɱstore~Sȭğfϰ~HiĉĦry~ɀňtry~More~Pʼnȇ~Unpʼnȇ~Reϙ ȇ~ReϙǗl~New ȇ ϙ~Reϙd~SIJҁji~SIJҁjiĈȇ~CΌҁji~SIJcolor~SIJcolǼ՟ ȇ~Clear~Sɂt targIJfϰ~CӹĦ ƕt~L͹ item~CΆ~Plaʼnȩ~Aƥe originals~DeleĜoriginals~AfĬ sȭĝ~Target~ʈҼĝȼ~ORGANIZE SUCCEED~Organize faϰd~Ifȿ ӘŇsablĝĞdailyģeœn, ёwould՘ possiԽ thɢtѹtĀɜllģ՘ĄletǠǼpatchǠproՈly. PleaŖenaԽĞpĵ ƴ try again.~Preǽ~SIJƴ sԼ~ɀŀyյrkĠĂo l͹~ɀŀyյrkҹĞtopնŀily rϕĂoϣeŗċ.~Cʋğexpƴ Ǽfold, Cmd+CʋğshowǗlĂŕofĞday~ɡbuy a licenŖՁ~NoĂŕʼnrϕ~Mӹh~Week~Day~AǴda~Tomorrow~Previous~Next~S՞ǗlĚlumnsȼ~Basic Info~AddiīdzInfo~CӚtǠAt~CӹĦ~TĀ Type~Sҳce Type~Row Ƒtus~Path~PinnǠԸus~TaԽ~Chat~MomĦs~WѸrf՛~Calȭar~Goğpı~Pı~ɀ~rows~Temp FilĬ~OpćɃŇrՀlyĠāo ǽ~Dayյrk rϕ~SIJtѹrϕնŀyյrk. Dayŗċ.~TĀ ɯlocked~PleaŖunlockāo byĠput pƁd~Auto Dʍ Imı~Auto dʍ imı whćsɣtoĂo. 'false'ŗċ~TĀ Http IP Type~SIJTĀ ϗ Ǩľ ipğl͹en. 'ʤhost'ŗċ~PƁdğlockāo~Unlock~Locked~PƁd ɯincorrՀ~Lock~NeǠpƁdğunlockāo~You hɣnot sIJa pƁd ǼenaԽ thɯfeatuϡyet~PƁd~PƁdĈTĀ~PleaŖinputȿr pƁdğӱnge pƁd settĝs~PleaŖinputȿr pƁd~LockĂo~dѸ~time~evĦ~Add ȇ posiī~SIJtѹposiīնĞȇ whćaddĝ ȇǵc՛y~Add ȇǵc՛y~Add ȇğtѹȭ ǼbeginnĝնĞtĀĚįnt whćcӚtĝ aĂo ƴŋĬĝ ȇs~Add ȇɜth newɆe~Add ȇɜth newɆe whćaddĝ ȇǵc՛y~Ӭ Bulk Edit~Ӭ Bulk Sɂt~Ex͹ Ɉ~SɂtǠɈ~Cʋğrҁve ex͹ ȇ~Cʋğrҁve sɂtǠȇ~Inputğsɂt ex͹ ȇ~Beginnĝ~End~# Headĝ~Chɢǽ style~SIJtѹstyōof ӱt ǽ~Bɉ imıĈmomĦs ǽ~SIJtѹbɉ imıĈmomĦs ǽ~TЗĈTĀ~SIJtѹtЗĈTĀ~Iįrface Details~Task amѫ~TĀ Ƒtus~UsǠȇs~UsǠdays~MoǸȈeŀy~MoǸȈe hҳ~TĀ amѫ~NoĚįntğǴerѸ.~ImıԳnerѸd sĻ.~FaϰdğǴerѸ imı.~ShӘŋĬǠtĀs Ǻimı~LѸǸľsȾ~Previous ľsȾ~TĀ updѸĠfo~DebugĠfoĚpiǠto ɋ~їĄbugĠfo~Faϰdğload ӱngelog~Viewҹline~ChϕLog~PleaŖopćtĀ first~InǨtŒr~G՛ery~PleaŖsIJdiffİnt sɣlocaīsĈmǚi-fϰ settĝsĠāo. Tѹdiary folŌ oľӴɜthĞmǚi-fϰ sɣlocaī, Ǽthİ ɯa riskն ёbϠgɱadɱpeѸdly.~DċБmeȟefixĈtĀĠŀilyģes~SIJĔtБmeȟefixĈtĀĠŀilyģes.~Sɣimı sĻ~UǨ quote~SIJuǨ quoĜ՟Ăo~UǨ icon~SIJuǨ iconĈtĀ. ɡinput ϗ/ϗsɆk Ǽfϰ pathĠ vaǚ.~UǨĠfo~їŋĬǠբǚs~ShӘ imı~Dċ~Gray~Grass~Flame~OlՄ~Ice~Mınta~Υģes~Eĭ~Appȭ/prepȭ ȩ whćshӘğTĀ~Appȭ ȩ whćshӘğTĀ~Prepȭ ȩ whćshӘğTĀ~Add newliȌwhćβnd/prepȭ ȩ~Input anythĝ hİ~Prepȭ~Appȭ~Both~None~HiĉpinnǠgroup~HiĉpinnǠgroupĠĂo l͹ϣeŗċ.~SIJtѹheadĝĈtѹtask ɸնĂo,ŗċĞrecԴǠtĀĚįntɜll՘ĠǨtǠɢtѹȭնĞdiary; if aБtōɯprovided,ǗlɱcԴǠtĀĚįntɜll՘ uni՟mly cѸgorizǠλĆthɢtitle.~DiffİntĠǨt targIJ՟Ňffİnt ɸ~Toggōthɯto sIJdiffİntĠǨt targIJ՟Ňffİnt ɸնĂo, like task Ǽl͹ ɸնĂo~ɡsIJwhoōdiary Ǽonly partն it~SIJproҼ target~Whoōdiary~SIJtĀĠǨt pӈ~SIJwhİğinǨtĂoĚįnt~EndնĞdiary~CΌlocaī~Settĝ guide~Details settĝs~ϑāo~Aboutāo ʈ~EnaԽd~EnaԽ~ΥģĮfolŌ~SIJdailyģĮfolŌ~Υģe ϙ ƕt~SIJdailyģe ϙ ƕt~Υģeœn~EnaԽŀilyģeœn~Sɂted~Sɂt~A classic tЗĈTĀɜth a two-columnєyout~Classic~A moŌn tЗĈTĀɜth a three-columnєyout ƴѺe uniМɚs.~MoŌn~Focus~A focus-firǸtЗɜth a Ǩif heroĚmpoǨ ƴŇary-styōstӚm.~ColӴe ȇs~thoughts~ȇs~days~ImmersՄ moĉ(F)~ExёimmersՄ moĉ(Esc)~Go ƴňjoyāo~Congrats! All settĝs done~AdjuǸsettĝs thɢinfluenceȿr uǨ exՈienceɜthāo.~SIJprefİncĮ՟ usĝāo~Ifȿ Ә usĝĞTĀ basic ľsȾ,ňablĝĞdailyģeœn ɯrequired. Configuϡits settĝsğwork effՀՄlyɜth it.~Goɜthŀilyģeœn~ChooŖa tЗĈTĀ.~SIJtЗĈTĀ~SIJupȿr uǨĠfoĈTĀ.~GIJƑrtǠwithāo~Skip ƴ Ƒrtāo~Next Ŋp~Backğprevious Ŋp~CʋğenaԽ =>~ThɯɯTĀ's Ϛbar. NavigѸğdiffİnt path Ǽsɂt МryŋĬ.~Cʋ hİ ƴ goğsettĝs pı.~Cʋ hİ ƴ goğdiffİnt path.~Sɂt ǼcӚĜМryŋĬ hİ.~SeeĞƑtusնāŕhİ.~S՞ȿĩno quickly hİ.~EdёǼcӚĜyҳĂo hİ.~Seeȿĩnŕhİ.~SeeȿrБme ƑtusնĂŕhİ.~Seeȿr ȇs hİ. Ɉɜll՘ shown whćtĀĚntains ȇs.~Done~TĀ ɯӚdyğuse. ~ɡƑrt usĝāo now. Ifȿ wantğknow moϡaboutāo ʈ, cʋĞbɪ՘low.~DċБmeȟefix~Appȭ α Acī~Prepȭ α Acī~Pբet~Sɂt Ɉ~It ɯnot availaԽҹ sm՛ ǽ~Appȭ ȩ~Prepȭ ȩ~Yҳŀilyģe folŌ ɯnot sIJcorrՀly, pleaŖcheckȿr settĝs~Bɉ~Imıɱad faϰd, pleaŖtry again~Imıŋe cannot exceǠ5MB~Clean~Minimal~GradiĦ~TĀ shӘ~їğɋ faϰd~Auto-copy wǺblocked. Long-pբsĞbox՘lowğsɂt ƴĚpyȿĶno idյnu՛y.~їğɋ sĻ~YҳĚįnt hǺbećcopiǠto ɋ, ƴĠǨtǠintoĞeĭ. PleaŖtry ёagain~ShӘĂo~SIJfϰ ϙ afĬ cӚĜtĀ~ɡsIJfϰ ϙ afĬ cӚĜtĀ. AĠput boxɜll show whćyou cӚĜtĀ.~SPLIT~Splёby Headĝ 1~Splёby Headĝ 2~Splёby Headĝ 3~InǨt task~All settĝs hɣbećբIJtoĄfaǚ.~ResIJ՛āo settĝs~ResIJsettĝs~ResIJTĀ settĝsğĔt settĝs.~Task ManımĦ~AppȭĚmpletǠdѸ whćtask doȌʼntĀ~AppȭĚmpletǠdѸ whćtask doȌʼntĀϣeŗċ~Whćyou sIJa ȇ hİ,āoɜllĠdex thɯfϰĚntains thɯȇ ƴ show ёʼntѹl͹. Don't neǠto add \`#\`.~SIJȇĈfϰ ɸŋe~SIJȇĈmǚi ɸŋe~IgnoϡfolŌsĈmǚi ɸ~SIJfolŌsğignoϡwhćusĝ mǚi ɸ. SeʥĜmǚipōfolŌsɜthĚmma (,).~folŌ1,folŌ2/subfolŌ~Iįrface~PleaŖinputĞȇ~MergĨnŕʼntoĂo shӘ imı~CΌhΩĈTĀĚįnt~SIJcΌhΩĈTĀĚįnt. Like 200px Ǽ20rem~Input hΩ~Submёissue~CurrĦ ľsȾ~BugɱȎ~CʋĞbɪğcopyĄbugĠfo ƴշćtѹissue pı~ї ƴ go~DebugĠfoĚpied~FeatuϡreМst~SubmёyҳɚɱМǸtoĞissue pı~Go~ToggōМry l͹ Ӿty~Toggōȇs Ӿty~ToggōϚběӾty~ColӴe~Expƴ~Max hΩĈcolӴe~Tѹmax hΩĈtĀĚlӴe, whćsIJ0,Ăo wouldģĚlӴe. 0ŗċ. (ThɯɯnotɆĮcѫ, ёɯhΩĠ px.)~RȭĆŔĦ~OptimizeĈCΆ~Won'tɱnŌĚįntĚntains moϡthan 3 cΆsǵc՛y. Trueŗċ~Tѹvalue should՘ gӚĬ than~Appȭ α~Prepȭ α~TĀ hΩ whćcolӴed~TѹhΩĈtĀ whćёɯcolӴed, whćsIJ0,Ăo wouldģĚlӴe. 100ŗċ. (ThɯɯnotɆĮcѫ, ёɯhΩĠ px.)~ThɯopīɜllǗlowȿ uŖothĆǽs whćleafɜdth ɯnotňoughϣeŗċ.~Can sɂt othĆǽs whćleafɜdth ɯnotňough~TRASH BOX~GIJtĀ captuϡexӽsȾ~ɡcaptuϡidea/ȩ Ձ chrome now.~OpćFϰ~ExȎǠCSVŋe~UpdѸd At~ExȎğCSV~Quick add bɪҹɰe navbar~Always show Ƒtus ȩ~SupȎŋĬ by mζa Ձŋe~WhćenaԽ this,ȿ canŋĬ via mζa Ձŋe, like ȇsĠŋe. ButĂŕՁ canvǺɯnot supȎedϣeŗċ.~ɀ sҳce neětimʕampĠĂo~WhćenaԽ this,ȿ can seeĞsҳce neětimʕampĠĂo. ɡsIJtitōʼnmζağoľwriĜthisϣeŗċ.~քյnu՛y~TIME RANGE~WITHIN~7ŀys~14ŀys~30ŀys~3 mӹhs~6 mӹhs~1 year~Thɯweek~LaǸweek~Thɯmӹh~LaǸmӹh~Thɯyear~LaǸyear~No h͹ory~Today Rδinĝ~Today Total~byTime~byTimeReľse~Ը~Ը͹ics~Total~tĀs~PopulěɈ~Top 10 moǸusǠȇs~TĀ Cѫ~HҳlyŇstribuī~CurrĦ mӹh~MӹhlyŇstribuī~30 Days~Year~Time D͹ribuī~Whćŏyou wriĜtĀs~CӹĦ Length~D͹ribuīնĂo lengths~ɀ Time D͹ribuī~HiĉdѸ picker~ɀŀĜpicker~CleěfilĬ~їɆk~ї embǠɃ~Ctrl/Cmd + EįrğsɣtĀ~FixǠstrĝsĈtĀs~UŖfixǠstrĝsĈtĀs~EnaԽğadd fixǠstrĝs ɢtѹbeginnĝ ǼȭնĂos.~FixǠprefixĈtĀs~Add thɯstrĝ ɢtѹbeginnĝն eachĂo. SupȎs pӈholŌs likeŝHHmmss}}.~FixǠsuffixĈtĀs~Add thɯstrĝ ɢtѹȭն eachĂo. SupȎs pӈholŌs likeŝHHmmss}}.~WԴĚunt exceeded~WԴĚuntɚ~EnaԽɱal-time wԴĚuntŇsplayĠĞeĭ~MaximЌwԴĚunt~SIJaյximЌwԴĚuntĈtĀ. EĭɜllŇsplay a warnĝ whćexceeded. SIJto 0Ĉunlimited.~RefİnceɆks group~EnaԽɱfİnceɆks groupĠĂo.~NoɱfİnceɆks foλ~ErrǼfetchĝɱfİnceɆks~DouԽ cʋ՘havior~SIJtѹbehaviǼwhćdouԽ cʋҹ aĂo.~OpćtĀ~EdёtĀ~Goğsҳce~Doģhĝ~UŖĔt heaŌĠɰe ǽ~UŖĔt heaŌĠɰe ǽնĂo rathĆthan cΌheaŌ.~MatchǠvia ȇĠĚįnt~MatchǠvia ȇĠŋe~FocusҹŒr whćopen~FocusҹŒr whćopen. Trueŗċ.~ɀ scrollğtop bɪ~ɀ scrollğtop bɪ. Trueŗċ~Zoom imıŗċ~Zoom imıŗċ whćǽĝ imı.~View aƥeĠ rƴomɱǽ~View aƥǠtĀsĠ rƴomɱǽ. Trueŗċ~LinkǠby~Linked~DUPLICATE~Draggĝ՘havior~CӹrolĞbehaviǼwhćdraggĝ aĂo. Youɜll paŊĞblockɆkŗċ. Block-Ƀշīҹly worksɜth sҳce ɸ ɯΥ Note.~BlockɆk~Quick captuϡtool thɢ՛owsȿğcӚĜƴյnıȿr ideas, tasks, ƴ more.~About~α~OpćDocumĦaī~DocumĦaī~ϧsȾ~ViewĞdocumĦaīĈthɯpĵ~ʈ~Tasks~ɀɱleaŖŚs~ɀɱleaŖŚs whćTĀ ɯupdѸd. Trueŗċ~Općӱnge log~Chϕ log~ViewĞӱnge logĈthɯpĵ~items~Deletĝȼ~Aƥĝȼ~Pinnĝȼ~Unpinnĝȼ~Pin/Unpin~Confirm~SĻĄleted~SĻ aƥed~SĻ pinned~SĻ unpinned~SĻĚpied~faϰd~TĀs~ʈҼed~SecrIJCӹĦ Maskĝ~EnaԽ secrIJmaskĝ~Mask mҁĚįntյtchĝ aɱgex patĬn~SecrIJŔĦɱgex~Regex patĬnğmatchĚįnt thɢshould՘յsked~Maskĝ style~ChooŖbetwećblur effՀ Ǽblock ӱracĬɱpӈmĦ~SIJsecrIJpƁd~SIJǼupdѸĞpƁd usǠtoɱvedzmaskǠŔĦ~Eįr pƁdğreveal~Eįr pƁd~Confirm pƁd~PƁds ŏnotյtch~IncorrՀ pƁd~PƁd sIJsĻ~CʋğrevedzsecrIJŔĦ~Requiբ OŃ API 1.11.4+~ȫ Iįgraī~ReceՄ ȫ messıs ƴ sɣthem ǺTĀ mҁs. Desktopҹly. Requiբ ʈ.~EnaԽ ȫ~EnaԽ ȫ messıɱceՄr~Auto Ƒrt~Automatic՛y Ƒrt ȫɱceՄr whćOŃշens~Dċɱply~Auto-reply ȩ whća messı ɯsԼd. LeɣemptyğdisaԽ.~Voice sɣmode~Howğsɣvoice messıs: transcripī ȩ, audioŋe, Ǽboth~α + Audio~αҹly~Audioҹly~Cաī~ȫ ɯrunnĝ~ȫ ɯstopped~Creϖtials foλ. Cʋ ϑğcաt.~No creϖtials. Will show QRĚĉon Ƒrt.~CleěstorǠcreϖtials ƴŇscաt~Voice Codec~SILK DecoŌ~InƑlled. Voice messısɜll՘ĚnľtǠto playaԽ WAVŋes.~NotĠƑlled. DʍğenaԽ voice messı playbackĠ OŃ.~Dʍ~Dʍĝȼ~VoiceĚdecɱmoved~VoiceĚdec dʍed~Dʍ faϰd~Commƴs~Sȭ messısğtѹȫ botɜth theŖcommƴȟefixes:~or~Sɣtoŀilyģe~SɣǺtask~SɣǺmǚi-fϰģe~Noȟefix~SɣusĝĄfaǚ sɣɸ~ȫĠtegraī ɯonly availaԽҹĄsktop~ȫ ɯalӚdy runnĝ~ȫĚnnՀed~ȫŇscաted~ȫ loggǠout~Scanned! PleaŖconfirmҹȿr phone.~LogʼnsucҼful!~QRĚĉexpired. PleaŖբtart.~SԼd~Empty messı,ģ sԼd~AǴt Routĝ~RouĜincomĝ ȫ messısğAI ınts (ACP/CLI/͸). WhćenaԽd, messısɜth @ınt Ǽ/ıntȟefix Ә ՟wardǠtoĞspecifiǠınt.~EnaԽ AǴt Routĝ~Forward messısğAI ıntsĠŊadն savĝ Ǻmҁs~Dċ AǴt~AǴt usǠwhćmessı hǺno @ıntȟefix~NoȌ(sɣǺmҁ)~AǴts~ConfiguϡAI ınts~Add AǴt~Delete~Endpoint~OpenAI-compatiԽ APIňdpoint URL~API Key~Commƴ~Pathğınt binary~Args~ExtraĚmmƴ-liȌargumĦs (space-seʥted)~Model~SyŊm ʈmpt~OpīdzsyŊmȟomptĈtѹınt~AǴt Commƴs~SȭğspecЙ ınt~BroadcaǸto mǚipōınts~no messı~SwitchĄfaǚ ınt~ResIJınt sessȾ~ɀ currĦ ıntĠfo~Built-ʼnaliases~Workĝ DirՀory~Dċ workĝŇrՀoryĈ՛ ınts. LeɣemptyğuŖvaǚ root.~Vaǚ root~PermissȾ Mode~ApprovdzpolicyĈınt tool c՛s~Accept Edits~Plan Mode~Don't Ask~Bypass PermissȾs~OľriĉɌ workĝŇrՀoryĈthɯınt~UŖɌ~Type~Reasonĝ Ef՟t~Thinkĝ budgIJlevȽ(codex/ACP ınts)~Low~Medium~High~Extra High~Usı: /tĀ <ŔĦ>~Allow All Fϰ Paths~Skip pathɱstricī whćsȭĝŋes. EnaԽ if ınts neǠto sȭŋĮՁ anyŇrՀory.~DѸ~բǚs~Previous pı~Next pı~Load more~No keywԴs foλ~Noŀtağӱrt~(empty)~AI-powİdɚs~AI-powİd sδntic s՞ ƴ ӱtĈyҳĂos~Activity H֌~Add sm՛ rƴom variaīğreǽĠĬvalsğprevĦ cluŊrĝ.~Aƥe~Aƥe sɂted~Aϡyou suϡyou wantğdeleĜthɯtĀ?~Back~Bɉ Color~BԴer~BԴĆRadius~CĦer~ChɢCompleī~ChɢcompleīȟoviŌ~Cleěs՞~Cleěsɂī~Cʋ anywhİğclose~Colorful~Compleī model~Configuϡ՛āo settĝsĠ aĄdicѸdɜndow~Copied~ї~їğɋ~CurrĦ~CΌһ-6 modȽwΩs (21 numbers,Ěmma-seʥted). LeɣemptyğuŖĔts.~Υɱǽ limit~Dark~DecҲī~Dċ һ-6 wΩs~DeleĜsɂted~Eĭ՘haviǼsettĝs~Embeddĝ~EmbeddĝȟoviŌ~EnaԽ SuՈ~EnaԽ fuzz~EnaԽ shӻ-Ĭm Ƿedulĝ~Eįr fooĬ ȩȼ~һ Algorithm~һ wΩs (w)~Faϰd~FaϰdğǴerѸ QRĚde~Fetchĝ QRĚdeȼ~Fine-tunĝ~Flow~Fӹ Size~FooĬ~FooĬ Style~FooĬ α~Full~GenerѸ Preǽ~Hƴwritӽ~HeaŌ~INS Style~Imı~Left~Logʼnwith PKMĆaccѫğȈѸ PKMĆAIɚs~Magazine~MaximЌiįrvdz(days)~MaximЌnumbĆof cardsğreǽ Ոŀy. Dċ: 100.~Mҁ sɣlocaīs ƴ ƕt~ModȽWΩs~Nihon~NԴic~Normal~OK~Old~OpćSettĝs~PINNED~PaŊ~PaŊ ɋĚįnt ƴ sɣǺnewĂo~Pathğınt binary. Leɣempty ǼuŖcodexğauto-detՀĚdex.exeҹ Windows.~PatĬn~Pin/Unpʼnsɂted~ʈɚ, pleaŖȈѸ ʈ~ʈɚs ƴ Ȉaī~Quick Links~Quick TЗ~Quota~ReМǸreӽī~Reset~ResIJ՛ һ ʥmeĬsğtheiŜċ values~ResIJtoĄfaǚs~Reǽ Limits~Roλ~SɣImı~Sɣimı faϰd~ScanĞQRĚĉwith ȫğcաt~S՞~Shѐw~Sharp~ɀ Author~ɀ Avatar~ɀ Logo~ɀ ɋ paŊ bɪҹ focus~Simple~Simpōα~Solid~Strong~SuՈ s՞ Ȉe~SupȎ~TargIJprobǑyնɱc՛ (0.7-0.99). HighĆ= moϡreǽs,՘tĬɱӽī.~α Color~TѹmaximЌnumbĆofŀys՘twećreǽs. Dċ: 36500 (100 years).~TЗ Style~TЗ ƴŇsplayշīs~TĀ cӚtǠՁ SuՈ messıs~ToggōfilĬs~Typography~Upload Imı~UŖ(re)learnĝ ŊpsĈshӻ-ĬmɱǽĠĬvals.~UǨĠfo ƴ ӌ~View Preǽ~WaitĝĈbrowǨ loginȼ~WaitĝĈscanȼ~ȫ Login~WΩs muǸbe exactly 21Ěmma-seʥtǠnumbers~WhćfocusĝҹĞeĭ,ĄtՀ ɋĚįnt ƴ show a "PaŊ ǺTĀ" bɪ. Trueŗċ.~modȽloadĝȼ~now`,ti=`0~TĀ~3~SIJyҳ uǨ ϙ hİ. 'TĀ 😏' ByĄfaǚ~6~You should sIJtѹsame headĝ՘low ifȿ wantğinǨt ƴȟoҼĂo՘lowĞsame headĝ.~7~ʈҼĂo՘low~9~SɣtĀ bɪєbel~a~Tѹȩ shownҹĞsɣTĀ bɪĠĞUI.Πŗċ.~b~OpćTĀ whćoŃշens~c~WhćenaԽ this,āoɜllշćwhćOŃշensϣeŗċ.~e~SIJtѹĔtȟefix whćcӚĜtĀ, 'L͹'ŗċ.~r~ShӘāo Imı FooĬ ϑ~u~UŖȇsĠ vaǚ rathĆthanҹlyĠāoϣeŗċ.~11~Query~1b~Hİ ɯNoāo.~1j~Aƥe~2c~ShӘāo Imı~2l~Υāo~2u~PleaŖOpćTĀ First~31~OpćTĀ SĻ~35~CloŖTĀ SĻ~36~InǨt ǺTĀ~37~InǨtŋe ǺtĀĚįnt~3f~TĀ uŖtѹpĵ'sĄfaǚĚnfiguraīğfetchĂo Ձŀily, 'Υ'ŗċ.~3z~FaϰdğdeleĜtĀ~43~CΌTĀ FooĬ~44~SIJcΌtĀ fooĬ.~48~TĀ Http Serľ Pӻ~49~SIJtĀ ϗ Ǩľ Ȏğl͹en.ђŗċ~4b~LՄ-Preǽ Mode/Sҳce Mode.~5q~Dċ sɣlocaī~b6~SĻ organizǠtĀs~f4~WhoōDiary~f9~UǨ settĝ guide~ft~ColӴe~io~TѹhΩĈtĀ whćёɯcolӴed, whćsIJ0,Ăo wouldģĚlӴe . 100ŗċ. (ThɯɯnotɆĮcѫ, ёɯhΩĠ px.)~jm~By Time~jn~By Time Reľse~jy~LaǸ30ŀys~l4~ɀ scrollğtop bɪ. Trueŗċ.~l8~View aƥǠtĀsĠ rƴomɱǽ. Trueŗċ.~lb~DuplicѸ`,ni={da:`~ե~Զernavn~ķlŇt Ҁernavn her. 'TĀ 😏'đd~ǘĠdsեōmålru֊kѺ "# Ru֊k"Ĉɢkӹrollİŀtapӈrĝ~Indsæt efĬ ru֊k~Du børĠdsեōդ ru֊k neϖ՟, hvɯduҺĠdsætĜog՘hƴōtĀ λĆդ ru֊k.~BehƴlĂo neϖ՟~Hvɯtomt,Һāo-grænseflaϖ viŖaltĂo-inͽ; hvɯćtitȽĆangՄt,Һāo-grænseflaϖ kun viŖinͽIJλĆϖБtel, ogĠͽ skrevIJƴetŊdsҺǏblՄ v͹.~GemĂo-knβns etiket~TekŊn v͹ påԳmĂo-knβn i Ҁergrænseflaϖ.Πđd.~Åbĸnoҫ oŃ åbnes~NåŜetĜĆaktՄret,Һāo åbȌұOŃ åbnes. DeaktՄrIJsom Ƒndard.~ēdȟæfiks vǠgemĂo~ķl Ƒndardȟæfiks vǠoprettelŖafĂo, 'L͹e'đd.~ēdĠdsætŀtoƕt~ķl Ƒndardŀtoƕt vǠindsættelŖafŀto mǠ@, 'OpgԼr'đd.~ēdŒr posiī påɰ~ķl ƑndardŒr posiī påɰ, 'Top'đd.~Զ knapБl ɢviŖeĭ påɰ~ķlň flyϖĉknapБl ɢkalĉeĭ påɰ. VirkĆkunҫŒr ĆpӈrIJi bλen.~Vɯtid vǠkśĝ afɱsǚѸr~VɯtidҫԵ kśĆբǚѸr,Ѻ 12:00. KśБdđd.~Vɯdato vǠkśĝ afɱsǚѸr~VɯdatoҫԵ kśĆբǚѸr,ѺǢ. Kśŀtođd.~TǓ tomɆje mellem ՟skelligeŀtoer~TǓ tomɆjeҫԵ kśĆբǚɢmǠdato. InǴ tomɆjeđd.~DȽTĀ-ҬĉfodtekǸƑrt~ķl hvadԵҺ her, Ҁ {TĀNum}ĈɢviŖ՝Ăo, ƭĈdı. '{TĀNum}āo ƭ Dı'đd~Զ ȇs i boks~Զ ȇs i boks i ŊdIJ՟ kun iāo. DeaktՄrIJsom Ƒndard.~L͹e~OpgԼ~~Bλ~~DAG~FORESPØRGSEL~REDIGER~FASTGØR~FRIGØR~SLET~BEKRÆFT!~OPRET ϦER~ķllĝer~Papirkurv~HĦĆdataȼ~HĆĆĝćTĀ.~Hyppigt ҀĜȇs~Hvad tænkĆdu nuȼ~LÆS~MARKÉR~DEL~KILDE~GENDAN~Arkiv~DaȮԳnnemgang~SLETTET DEN~Neeej!~Alōdata ĆindlæǸ🎉~~LINKET~INGEN TAGS~HAR LINKS~HAR BILLEDER~INKLUDER~EKSKLUDER~TEKST~ER~OG~ELLER~LISTE~ER IKKE~STI~~VÆLG~TILFØJ ϦERBETINGELSER~~~TITEL~OPRET FORESPØRGSEL~REDIGER FORESPØRGSEL~~GANGE~DȽTĀ-Ҭde~~~~~BilleĉǴİբȼ~Billeĉindlæsesȼ~IndlæǨȼ~թKanǏindlæŖҬde, ҬdɃ Ćmåske brudt~DaȮĴno~ANNULLER REDIGERING~LINK TIL~Bȉĉi mørkt tδ~Bȉĉi lyǸtδ~ķl bȉĉi mørkt tδ. ķl nogIJsom "DaȮ/et.png"~ķl bȉĉi lyǸtδ. ķl nogIJsom "DaȮ/et.png"~VɯopgԼetiket~VɯopgԼetikIJnærБdŊkŊn. DeaktՄrIJsom Ƒndard~Åbn Ɨāo først~DATO~FØR~EFTER~ImȎer~TITEL KAN IKKE VÆRE TOM!~ϦER KAN IKKE VÆRE TOMT!~Åbĸno mǠsucces~KśIJijudklipsholŌ mǠsucces~KӹrollĆomԵ hěåbnIJΥ NotĮPĵ ellĆPǎ NotĮPĵ~Afslut ƗĄn sidŊŋĬiĎlĝ først~Lukāo mǠsucces~IndsætѺāo~IndsætŋѺĂo-inͽ~Inͽ kanǏvæϡtomt~KanǏopretĜnyŋ.~GENDANNELSE LYKKEDES~SLETNING LYKKEDES~Du hěϘĠdsեlIJmβБlŀȮeģĆi hľkćՈiodic-Śs ellĆdaily-Śsœns.~KӹrollĆƗŇȌiĎlĝĆ՟ŀilyģeœn ELLER ՈiodicģĮpĵ~Զ hvilkIJpĵs ƑndardkĿī~TĀ ҀĆpĵets ƑndardkĿīБl ɢhĦĨno fraŀȮ, 'DaȮ'đd.~~Vɯaltid blad-ϚpanȽpå PC~VɯvenstϡϚpanȽpå PC/taԽt selvҫ bladbredϖ Ćmindϡȭ 875px. DeaktՄrIJsom Ƒndard.~Du hěϘĠdsեlIJƕtĈdaȮeģĆi hľkćՈiodic-Śs ellĆdaily-Śsœns.~Søg iǗōiĎlĝer~~~~~~~~~Genİlt~Del~Avancİt~~TilfældigԳnnemgang~ARKIVERET DEN~KunȌϘ sletĜtĀ~ϑIJfra~TilpassIJbȉde~ķlБlpassIJbȉde.~TilpassIJTĀ-fodtekst~ķlБlpassIJtĀ-fodtekst.~Varmekӻ farveskδ~ķl ՟skelligt farveskδĈvarmekӻ.~AktՄr lokdzHttp-Ǩľ~TĀ Http-Ǩľ Ȏ~ķlĂo ϗ-Ǩľ ȎБl ɢlytte.ђđd~ēdŒr-եƑnd~LՄ-՟håndsvisnĝБlƑnd/KildeեƑnd.~Gem ɸĈTĀ~DAGLIG~~LÆRRED~ALLE~FIL~~FÆRDIG~~ANDET~~~~DaȮ~~~~~~~~Tilpasset~~~~~~~~~~~KunȌϘշretĜdaȮģe, kӹrollĆomĄn eks͹İr.~KunȌϘշretĜdaȮģe. KӹrollĆƗ omԵ hěoprettIJćmβБlŀȮeģer.~EfĬԵ hěľЙİtŇn kӹo,շdѸr ƗĄnȌϚ.~ϧЙer~Hvɯdu hěspørgsmål, kӹakt ŕƗ.~SlIJTĀŇrekte~NåŜu sletĬĂoŇrekte,ҺĄtǏblՄ flyttIJijpapirkurven. DeaktՄrIJsom Ƒndard.~AktՄr åbnĝ afĂo Ɍt~AktՄr åbnĝ afĂo Ɍt. DeaktՄrIJsom Ƒndard.~TaǸ՟ ɢåbȌtĀ Ɍt~ķl taǸ՟ ɢåbȌtĀ Ɍt.ΡTđd.~Få aktՄrĝskode~IndtaǸaktՄrĝskoĉher~Kśāo-id~AktՄr ʈ-ľsȾ~Kś Ɨāo-id først~ǘĠdsեōmβnavn mǠfilnavnѺ "mβ/fil"~ǘĠdsեōmβnavnѺ "mβ1/mβ2/mβ3"ĈɢopretĜλermβ~ēdԳm pӈrĝ~ķl ƑndardԳm ɸĈtĀ. "DAGLIG"đd~FjernɆk~~FjernIJmǠsucces~DeaktՄr~Fjern~Bekræft?~SμǨĝsƑtus~~~~~~~~~~~~~~~~~Stop sμǨĝ mǠsucces~ϑ sμǨĝ mǠsucces~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~VɯtĀ nær mus~FoբpørgsȽϘ fλet~SȭtБl udklipsholŌ mǠsucces~TĀ - KunȌϘ ƑrĜ͸-Ǩľ, kӹrollĆƗ om ȎćĆեgængelig.~TĀ - ϑeĉ͸-Ǩľ på Ȏ~TĀ - Afslutteĉ͸-Ǩľ~Fil eks͹İr Ϙ~TĀǏfλet~FilǏfλIJ՟Ąn angivȌtĀ-sti,շretĬň nyŋ~KunȌϘ ϭĉmβБlŀȮeģer~InƑllĆƗ oŃ-hoľ-eĭœn først~Kśeĉapp-id mǠsucces~IndtaǸƗ tokćførst~AktՄr Ɨ sμǨĝ først~ϧЙİt mǠsucces~KunȌϘ ľЙİ~~~~~~~~~MβǏfλIJ՟Ąn angivȌtĀ-sti,շretĬň nyյppe~FilǏfλIJ՟Ąn angivȌtĀ-sti~KunȌϘ læŖaktuȽdaȮģe, kӹrollĆomĄn eks͹İr.~KunȌϘԳmme~KOPIERING MISLYKKEDES~KOPIERING LYKKEDES~Kś valgt tekst~KśĂo~KOPIER~DetĜĆćpro-funkī,շgraŌ ƗБlȟo-ľsȾć՟ ɢҀeĄn.~ǘ fåȟo-ľsȾćfra: ~Gem~Annuller~TĀŀȮt mål~~~՟ ɢopretĜȇ~ʈ-funkīer~MålrettIJTĀ-՝~Skift visnĝ~ķlŀȮt mål~TĀԳmБl: ~GåБl fuldskærmsեƑnd~Afslut fuldskærmsեƑnd~Դ~Դ~TilbıБl hjemmeϚn~TĀsБlԳnnemgang~ϑԳnnemgang~Svær~God~Let~IǴ~RydǗōǴnemgangsdata~DaȮ fremgang~VɯƑt͹ik~Skjul Ƒt͹ik~SamleĉǴnemgϕ~Iŀg hěduԳnnemgåIJ՛eŇȌtĀs!~ÅbnĂo i cĦervindue~ÅbnĂo i flyϖĉvindue~ÅbnĂo i højϡϚpanel~ÅbnĂo i venstϡϚpanel~VɯtĀ-eĭ~Skift minimdzեƑnd~FokuǨ påĂo-eĭ~GensμǨ web-tĀsБl lokal~SμǨ lokaōtĀsБl web~VɯdaȮĂo~FokuǨ på søgefelt~Vis-tĀ i popoľ(HoľŒr)~CĦervindue~Flyϖĉvindue~HøjϡϚpanel~VenstϡϚpanel~GemĂo-ɸҫ lokdzsμǨĝ~ķl ƑndardԳm ɸĈtĀҫ lokdzsμǨĝ, FILEđd.~SμǨĝsǨvice~ʈ-ľЙerĝ Ƒtus~~Kilde~Globdzkopi~ķlյppe-navn~ķlŋnavn~ķlŋnavnĈaktuȽsti~Skift kalȭer-ɸ~alfΧtisk~alfΧtiskReľse~~~Type her~Iŀg~I går~SidŊ 7ŀge~SidŊ 30ŀge~SidŊ 90ŀge~SidŊ 180ŀge~SidŊ 365ŀge~KśŋtrİĉtĀs~Bulk slet~Bulk arkՄr~~BulkԳndan~~~~~~~~~~~~~~~~~~~~~~~~~~~~~HvɯduĄaktՄrĆdaȮeģespĵ, kanĄt være, ɢtĀǏblՄr slettIJellĆrepӘrIJkorrekt. AktՄrœn ogȟøv iǴ.~Forhåndsvisnĝ~ķl ogԳm~Vɯdagmarke iĂo-l͹e~Vɯdagmarke i toppćafŀȮĨno-rækkerϣeđd.~KlikĈɢudviĉellĆfold, Cmd+KlikĈɢviŖ՛ĨnŕafŀǴ~ǘ købeň licens fra~InǴĂŕi række~Måned~Uge~Dag~~I morǴ~Forrige~NæŊ~Søg iǗōkolonnerȼ~GrλlægǴĉinfo~YŌligİĠfo~OprettIJϖ~Inͽ~TĀ-ɸ~Kildeɸ~Række Ƒtus~Sti~Fastgjӻ Ƒtus~TΧl~~ØjeblϘ~Vƴfald~Kalȭer~GåБl Ϛ~Side~Vis~rækker~MidlertidigŋĬ~ÅbnɆkŇrekĜiāo-visnĝ~Dagmærke-område~ķl områdIJ՟ŀgmærke. Dagđd.~TĀ Ćlåst~Lås Ɨāoշ vǠɢindtaŊ aʟde~Auto-dʍ Ҭde~Auto-dʍ ҬĉұŌԳmmĮijtĀ. 'false'đd~TĀ Http IP-ɸ~ķlāo ϗ-Ǩľ IPБl ɢlytte. 'ʤhost'đd~AʟĉijɢlåŖTĀ~Låsշ~Låst~Aʟϖ Ć՟kert~Lås~AʟĉpåkrævIJ՟ ɢlåŖTĀշ~Du hěϘĠdsեlIJćaʟĉellĆaktՄrIJϖȌfunkīňdnu~Aʟde~AʟĉijTĀ~IndtaǸƗŇn aʟĉ՟ ɢændϡaʟdϠdsեlĝer~IndtaǸƗŇn aʟde~LåsĂo~dato~tid~begՄnhed~TǓ ȇ-posiī~ķl posiīćaf ȇgIJұŌБlføjĮȇǵsk~TǓ ȇǵsk~TǓ ȇБl slutnĝćellĆbegyndelsćafĂo-inͽIJұŌշrettĮćtĀ ogŋtrİs ȇs~TǓ ȇ mǠnyɆje~TǓ ȇ mǠnyɆjeҫĄrБlføjĮȇǵsk~ӬյsǨedigerĝ~Ӭյssevalg~Eks͹İnĉȇs~ValgĜȇs~KlikĈɢfjerȌeks͹İnĉȇ~KlikĈɢfjerȌvalgt ȇ~IndtaǸ՟ ɢvælge eks͹İnĉȇ~Begyndelse~Slutnĝ~# Oľskrift~Chat-visnĝssե~ķl sեć՟ ӱt-visnĝ~Bȉĉ՟ øjeblϘ-visnĝ~ķl bȉdIJ՟ øjeblϘ-visnĝ~TδĈTĀ~ķl tδIJ՟āo~Grænsefladedetaljer~OpgԼmængde~TĀ-Ƒtus~ԶĜȇs~ԶĜdı~Mʕ aktՄŀg~Mʕ aktՄБme~TĀ-mængde~IįtĠͽ ɢǴİre.~BilleĉǴİrIJmǠsucces.~KunȌϘԳnİϡҬde.~DȽfiltrİĉtĀsѺ Ҭde~Senʕe ľsȾ~Tidligİ ľsȾ~TĀշdѸrĝsinfo~Fejlϭdĝsinfo kśIJijudklipsholŌ~Kś fejlϭdĝsinfo~KunȌϘĠdlæŖændrĝslog~Seҹline~Ændrĝslog~Åbn ƗĂo først~IndsætŒr~~ķl Ɨ ՟skelligeԳmmepӈrĝĈmǚi-fil-iĎlĝĆiāo. Dagbogsmβn oľlβr mǠmǚi-fil-gemmepӈrĝen, ellĆŌ ĆrisikoĈɢϖ blՄr læǸǴȇȌgϕ.~ēdБdspræfiksĈtĀ iŀȮeģer~ķl ƑndardБdspræfiksĈtĀ iŀȮeģer.~Gem ҬĉmǠsucces~Զercitat~ķl Ҁercitɢ՟Ăo~Զerikon~ķl ҀerikonĈtĀ. ǘĠdtaŊ ϗ/ϗs-Ƀ ellĆfilsti i boks.~Զerinfo~KśŋtrİĉբǚѸr~DȽҬde~ēd~Grå~Græs~Flamme~OlՄn~Is~~DaȮeģer~~TǓ/՟ansijtekǸұŌĄlĮijTĀ~TǓ tekǸұŌĄlĮijTĀ~FҲnsijtekǸұŌĄlĮijTĀ~TǓ nyɆjeҫĄrБlføjes/՟ansեlĮtekst~IndtaǸhvadѺ helǸher~FҲnsե~TǓ~Begge~InǴ~Skjul fastgjӻ gruppe~Skjul fastgjӻ gruppe iĂo-l͹eϣkđd.~ķl oľskrifӽĈopgԼɸn afĂo,đdҺĄtɱg͹rİĉtĀ-inͽ blՄĠdsɢi slutnĝćafŀgboǴ; hvɯćtitȽĆangՄt,ҺǗtɱg͹rİtĂo-inͽ blՄňsartIJkѸgoriǨIJλĆϖБtel.~FʖtĠdsætnĝsmålĈ՟skellige ɸr~SkiftĄtĜ՟ ɢiĎō՟skelligeĠdsætnĝsmålĈ՟skellige ɸr afĂo,ѺշgԼ- ellĆl͹eɸr afĂo~ǘĠdsեōheōdagboǴ ellĆkunňĄl afĄn~ķlȟocesmål~HeōdagboǴ~ķlĂoĠdsætnĝsŊd~ķl hvǼtĀ-inͽ skdzindsættes~SlutnĝćafŀgboǴ~TilpassIJpӈrĝ~ķllĝsguide~DetaljİĉiĎlĝer~~Omāo ʈ~AktՄret~AktՄr~DaȮeģer-mβ~ķlŀȮeģer-mβ~DaȮģe navneƕt~ķlŀȮģe navneƕt~DaȮģe-pĵ~AktՄŜaȮģe-pĵ~Valgt~Vælg~Et klassisk tδĈTĀ mǠIJto-kolonȌlayout~Klassisk~Et moŌȌtδĈTĀ mǠIJtre-kolonȌlayout og nogōunϘ funkīer.~MoŌne~~~~~~~~~Gå og nydāo~Tillykke! AlōiĎlĝĆĆfærdige~JuŊrĠdsեlĝĆŌ påvirkĆdʼnҀeroplevelŖmǠTĀ.~ķlȟæfİncĆ՟ Ҁ afāo~Hvɯdu ҀĆTĀ basisľsȾen, ĆaktՄrĝ afŀȮģe-pĵ påkrævet. KonfigurĆdetsĠdsեlĝĆ՟ ɢarbejĉeffektivt mǠdet.~Gå mǠdaȮģe-pĵ~Vælg IJtδБlāo.~ķl tδĈTĀ~OpsætŇn ҀerinfoĈTĀ.~Kom i gang mǠTĀ~Sprĝ oľ og Ƒrtāo~NæŊ trin~TilbıБl ՟rige trin~KlikĈɢaktՄϡ=>~DetĜĆTĀ's Ϛpanel. NavigĆij՟skellige stИ ellĆvælg ՟espørgselsfilĬ.~Klik hĆog gåБlĠdsեlĝsϚn.~Klik hĆog gåБl ՟skellige stИ.~Vælg ellĆoprIJ՟espørgselsfilĬ her.~Se ƑtusĈTĀs her.~Søg hurtigt efĬŇnĂo her.~RedigĆellĆoprIJdʼntĀ her.~SeŇȌtĀs her.~SeŇnБdsƑtusĈtĀs her.~SeŇȌȇs her. ɈҺ blՄ v͹ҫĂoĠdeholŌ ȇs.~Færdig~TĀ ĆklěijҀ. ~ǘ՘gynĉɢҀĴno nu. HvɯduҺ viĉmİ omāo ʈ, klik på knβn neϖ՟.~ēdБdspræfiks~TǓ tekst-hƴlĝ~FҲnsijtekst-hƴlĝ~ForudiĎlĝ~Vælg Ɉ~DIJĆϘБlgængeligt på lilōvisnĝ~TǓ tekst~FҲnsijtekst~DʼndaȮeģe-mβ ĆϘĠdsեlIJkorrekt, tjek ƗŇȌiĎlĝer~~~~Ren~~~TĀ-delĝ~KśĝБl udklipsholŌ mislykkedes~~KśIJijudklipsholŌ mǠsucces~Dёinͽ ĆԽvIJkśIJijudklipsholŌćogĠdsɢiŒren. Prøv Ɨ iǴ~DȽtĀ~ķlŋnavn efĬշrettelŖafĂo~ǘĠdsեōfilnavn efĬշrettelŖafĂo. EnĠputboksҺ blՄ v͹,ҫԵշretĬĂo.~OPDEL~OpdȽefĬ Oľskrift 1~OpdȽefĬ Oľskrift 2~OpdȽefĬ Oľskrift 3~IndsætշgԼ~AlōiĎlĝĆĆԽvIJnulsեlIJijƑndard.~Nulsij՛Ĵno-iĎlĝer~NulsijiĎlĝer~NulsijTĀ-iĎlĝĆijƑndardiĎlĝer.~OpgԼstyrĝ~TǓ fuldførtŀtoҫշgɣĆudført iĂo~TǓ fuldførtŀtoҫշgɣĆudført iĂoϣkđd~NåŜuĠdsեlĆIJȇ her,ҺāoĠdekǨeĄnȌfilĠdeholŌĄtĜȇ og viŖdIJi l͹en. BehøľǏɢեføje \`#\`.~ķl ȇĈfilɸ-fil~ķl ȇĈmǚi-ɸŋ~~~~~IndtaǸƗ ȇget~FlIJtĀsĠd iĂo-delĝsҬde~TilpassIJhøjĉ՟āo-inͽ~ķlБlpassIJhøjĉ՟āo-inͽ. Som 200px ellĆ20rem~IndtaǸhøjde~IndsȭȟoԽm~Nuværȭe ľsȾ~FejlrapȎ~Klik på knβnĈɢkśe fejlϭdĝsinfo og åbȌproԽmϚn~Kś og gå~Fejlϭdĝsinfo kśet~Funkīsanmodnĝ~IndsȭŇn funkīsanmodnĝБlȟoԽmϚn~Gå~Skift synlighǠ՟ ՟espørgselsl͹e~Skift synlighǠ՟ ȇs~Skift synlighǠ՟ Ϛpanel~S՜~Udvid~Maksimdzhøjĉ՟ դnfoldnĝ~Dćmaksimaōhøjĉ՟Ăo-դnfoldnĝ,ҫĠdsեlIJij0,ҺĂoǏfolĉդn. 0đd. (DetĜĆϘɆje՝,Ąt Ćhøjĉi px.)~GenİrĠͽ~OptimĆ՟ CΆ~VilǏautomatiskԳngՄĠͽ,ĄrĠdeholŌ mİňd 3 cΆs. Sƴđd~Værdićskdzvæϡstørϡȭ~TǓ tekst~FҲnsijtekst~TĀ-højĉұդnfoldet~HøjϖĈtĀҫĄn Ćդnfoldet,ҫĠdsեlIJij0,ҺĂoǏfolĉդn. 100đd. (DetĜĆϘɆje՝,Ąt Ćhøjĉi px.)~DenȌmulighǠvilБllaĉdig ɢҀe ƴϡvisnĝer,ҫ bladbredϖǏĆեstrækkeligϣkđd.~Kan vælge ƴϡvisnĝer,ҫ bladbredϖǏĆեstrækkelig~PAPIRKURV~FåĂo-opȇelsesudvidelse~ǘ nuշȇe idé/tekǸfra Chrome.~Åbnŋ~EksȎİt CSV-fil~OpdѸrIJϖ~EksȎĆijCSV~HurtigБlføj-knap påɰ navigaīslinje~Vɯaltid ƑtuŊkst~UnŌstøtŋtrerĝ efĬ mζa fraŋ~NåŜetĜaktՄբ, kanԵŋtrİ via mζa fraŋ,Ѻ ȇs iŋ. MćtĀs fra lærrǠλerstøttĮϘϣkđd.~VɯkilĉnærБdsŊmpȽiĂo~NåŜetĜaktՄբ, kanԵ Ŗkilϖ nærБdsŊmplIJiĂo. ǘĠdsեōtitȽi mζaĈɢoľskrՄĄtteϣkđd.~SμǨյnuelt~TIDSINTERVAL~INDEN FOR~7ŀge~14ŀge~30ŀge~3 måneŌ~6 måneŌ~1 år~DenȌuge~SidŊ uge~DenȌmåned~SidŊ måned~DetĜår~SidŊ år~InǴ h͹orik~Rʕİnĉiŀg~IǗt iŀg~EfĬБd~EfĬБd omvȭt~Ը͹ik~Ը͹Ϙr~~~Populæϡȇs~Top 10 mʕ ҀĜȇs~TĀ-՝~Time՟delĝ~Nuværȭe måned~Månedlig ՟delĝ~SidŊ 30ŀge~År~Tids՟delĝ~HvorұskrՄŜuĂos~Inͽslængde~FԴelĝ afĂo-længŌ~Vɯtids՟delĝ~Skjulŀtoværktøj~Vɯdatoværktøj~RydŋĬ~KśɆk~KśĠdlejrĝsɃ~Ctrl/Cmd + EįrĈɢgemmĨno~FaŊ strengeĈtĀs~Զ faŊ strengeĈtĀs~AktՄrĈɢեføje faŊ strenge i՘gyndelsćellĆslutnĝćafĂos.~FaǸpræfiksĈtĀs~TǓĄnȌstreng i՘gyndelsćaf hľĂo. UnŌstøtĬ pladsholŌeѺŝHHmmss}}.~FaǸsuffiksĈtĀs~TǓĄnȌstreng i slutnĝćaf hľĂo. UnŌstøtĬ pladsholŌeѺŝHHmmss}}.~Ord՝ oľskredet~Ordtællĝsfunkī~AktՄrɱaltids Դtællĝ iŒren~Maksimalt Դ՝~ķl IJmaksimalt Դ՝ĈtĀ. Eĭćvil viŖćadvarsȽұdIJoľskrides. ķlБl 0Ĉubegrænset.~RefİnceɃs-gruppe~AktՄrɱfİnceɃs-gruppe iĂo.~InǴɱfİnceɃs fλet~Fejl vǠhĦnĝ afɱfİnceɃs~Dobbeltklik-adfærd~ķl adfærϖ vǠdobbeltklik påňĂo.~ÅbnĂo~RedigĆtĀ~GåБl kilde~GørĠǴtĝ~Զ Ƒndardoľskrift iɰvisnĝ~Զ Ƒndardoľskrift iɰvisnĝ afĂo i ŊdIJ՟ň cΌoľskrift.`,de:`~zu~Ƽϙ~SҮeĄinćƼϙn hИ. 'TĀ 😏'Ǘsĺrd~ǘnǸϠe ZielüberǷriftɜe "# ÜberǷrift" sҮen, Ќϖ DѸnspeƀerӻ zu Ŋuern~Nach ÜberǷrift ϠՂen~՚leĆgelӮ,ɜrdĄrАgezeƀneĜTĀ-ʛt am EnĉdĮӬebuchs ϠgeՂt;΃Ϡ TitȽϕgebćwird, werϖǗōaufgezeƀneӽāo-ʛĜϠheitlƀ uįŜiesem TitȽkѸgorisИt.~TĀs uįn ľarbeiӽ~՚leĆgelӮ, zeigtŇĴno-Oberfläcѹ՛Ĵno-AufzeƀnϜćan;΃Ϡ TitȽϕgebćwird, zeigtŇĴno-OberfläcѹnuŜie ʛĜuįŜiesem TitȽan, λ ƴerswoԳǷriebeȌʛĜwerϖ nƀt ϕzeigt.~BeǷriftϜĄsāo-Speƀern-Bɪs~DĆα,ĄrАĄmāo-Speƀern-BɪĠĄr Ƽoberfläcѹϕzeigtɜrd.ΠǗsĺrd.~TĀ՘im Öffnćvon OŃ ϵn~՚aĽt,ɜrdāo՘im Öffnćvon OŃԳϵt.ĺrdmäßigĄaĽt.~ēdpräfix՘im Speƀern voĸno~SҮeŀsĺrdpräfix՘im ErŊllćvoĸno, 'L͹e'Ǘsĺrd.~ēdƕtħDatumsϠՂϜ~SҮeŀsĺrddatumsƕt՘im EinՂćvon DatЌmё@, 'ϥen'Ǘsĺrd.~ēdposiīĄs EĭsА Mobilgeräӽ~SҮeŇeĺrdposiīĄs EĭsА Mobilgeräӽ, 'Oben'Ǘsĺrd.~Bɪ zЌAnzeiǴĄs EĭsА Mobilgeräӽ ľwȭen~SҮe ϠćǷwebȭćBɪ, Ќϖ EĭА MobilgeräӽАzurufen. FunkīИt nur΄Ąr Eĭ uįn posiīИt ͹.~Ի՘im KśćŌ ErgebnisŖƣ~Ի՘im KśćŌ ErgebnisŖƣ,ɜe 12:00.ĺrdmäßigɜrdŇe Ի kśt.~DatЌȊKśćŌ ErgebnisŖƣ~DatЌȊKśćŌ ErgebnisŖƣ,ɜeǢ.ĺrdmäßigɜrdŀs DatЌkśt.~Leerzeϰ zwiǷćľǷieϖćDѸn ϠՂen~Leerzeϰ՘im Kśćvon ErgebnissćmёDatЌϠՂen.ĺrdmäßig kϠe Leerzeϰ.~ϑĄr Fußzeϰ՘im Teϰn voĸno-BilŌn~SҮe hИ՘liebiǴ α, ľwȭe {TĀNum}ħdie AnzahlĄĶnos, ƭħӬe. '{TĀNum}āo ƭ Ӭe'Ǘsĺrd~Ɉ im Vaǚ ľwȭen~Ɉ im Vaǚ anƑtt nurĠāo ľwȭen.ĺrdmäßigĄaĽt.~L͹e~ϥe~Oben~Uįn~~TAG~ABFRAGE~BEARBEITEN~ANHEFTEN~LÖSEN~LÖSCHEN~BESTÄTIGEN!~ϦER ERSTELLEN~EinŊllϜen~PapИkorb~DѸn werϖԳlaϖȼ~KϠĴnŕvorhƴen.~Häufig ľwȭeĜɈ~WǺϖkǸduԳradeȼ~LESEN~MARKIEREN~TEILEN~QUELLE~WIEDERHERSTELLEN~վIEREN~Ӭesգbʋ~GELÖSCHT AM~Nööö!~AlōDѸnԳlaϖ 🎉~TYP~VERLINKT~KEINE TAGS~HAT LINKS~HAT BILDER~EINSCHLIESSEN~AUSSCHLIESSEN~~IST~UND~ODER~LISTE~IST NICHT~PFAD~METADATEN~AUSWÄHLEN~ϦERKRITERIEN HINZUFÜGEN~~~TITEL~ABFRAGE ERSTELLEN~ABFRAGE BEARBEITEN~ÜBEREINSTIMMUNG~ZEITEN~TĀ-Bild teϰn~~~~~BildɜrdԳnerИtȼ~BildɜrdԳlaϖȼ~Lädtȼ~թBild kann nƀtԳlaϖ werϖ, Link ͹ möglƀerweiŖdefekt~TäglƀĴnos~BEARBEITUNG ABBRECHEN~LINK ZUM~Hiįrgrλbild imԵnklćTЗ~Hiįrgrλbild im hellćTЗ~SҮe Hiįrgrλbild imԵnklćTЗ. SҮe etwǺwie ƒg"~SҮe Hiįrgrλbild im hellćTЗ. SҮe etwǺwie ƒg"~ϥen-LΧl ƣ~ϥen-LΧl nebćdem Իȩ ƣ.ĺrdmäßigĄaĽt~BitĜϵ zuerǸTĀ~DATUM~VOR~NACH~ImȎИen~TITEL DARF NICHT LEER SEIN!~ϦER DARF NICHT LEER SEIN!~TĀ erfolgreƀԳϵt~ErfolgreƀĠŇe ZwiǷenablı kśt~Prüfe, obԵŀs Υ NotĮPĵ oŌ Pǎ NotĮPĵԳϵt hast~BitĜbeȭe zuerǸdie lҮĜFilĬϠŊllϜ~TĀ erfolgreƀԳǷlossen~Alsāo ϠՂen~ɄǗsāo-ʛt ϠՂen~ʛtŀrf nƀt leĆsϠ~Neue Ʉ konį nƀt erŊllt werϖ.~WIEDERHERSTELLUNG ERFOLGREICH~LÖSCHEN ERFOLGREICH~Du haǸkϠćOrdnĆfür Ӭesnotizćʼnbeiϖ Pĵs (Ոiodic-Śs λŀily-Śs) fʕgelegt.~BitĜüϫeĄiȌEinŊllϜćfüŜǺΥ NoĜPĵ ODER Pǎ NotĮPĵ~WelcѹPĵ-ēdkĿī ľwȭen~TĀ ľwȭIJdie Pĵ-ēdkĿī zЌLaϖ voĸnŕaus Ӭesnotizen, 'Υ'Ǘsĺrd.~~Seiӽle͹eА PC immĆƣ~Linke Seiӽle͹eА PC/TaԽt auch՘i ϠĆBlattbreiĜuįr 875px ƣ.ĺrdmäßigĄaĽt.~Du haǸkϠ FƤħӬesnotizćʼnbeiϖ Pĵs (Ոiodic-Śs λŀily-Śs) fʕgelegt.~AlōEinŊllϜćdurchsuchen~~~~~~~~~AllgemϠ~Teϰn~ErweiĬt~~Zufällige ÜϫϜ~վIERT AM~FehlĆȊLöǷćdĮTĀs~GʕartIJvon~ƼdeϭИtĮHiįrgrλbild~ƼdeϭИtĮHiįrgrλbildĖ.~ƼdeϭИĜTĀ-Fußzeϰ~ƼdeϭИĜTĀ-FußzeϰĖ.~H֌-FarbǷδ~ϧǷieϖe FarbǷδtaħdie H֌Ė.~Lokalć͸-Serľ aĽen~TĀ ͸-Serľ-Pӻ~Pӻħϖāo ͸-SerľĖ.ђǗsĺrd~ēd-Eĭ-Modus~LՄ-VorǷau-Modus ODER Quellȩ-Modus.~SpeƀertypħTĀ~TÄGLICH~MEHRFACH~LEINWAND~ALLE~DATEI~~ERLEDIGT~~ANDERE~~~~Täglƀ~~~~~~~~ƼdeϭИt~~~~~~~~~~~FehlĆȊErŊllćŌ Ӭesnotiz,ȟüfe ob sie ex͹Иt.~FehlĆȊErŊllćŌ Ӭesnotiz. BitĜprüfe, obԵ ϠćOrdnĆfür ӬesnotizćerŊllt hast.~NachĄr ϧifizИϜĄinĮKӹŕaktualisИe bitĜdieŖSeite.~ϧifizИen~Bei Frın kӹaktИe uns bitte.~TĀŇrekt löǷen~՚TĀŇrektԳlöǷtɜrd,ɜrd ĮnƀtĠĄn PapИkorb ľǷoben.ĺrdmäßigĄaĽt.~GlobalĮÖffnćvoĸno aĽen~GlobalĮÖffnćvoĸno aĽen.ĺrdmäßigĄaĽt.~TaŊnkombinaīħɌĮÖffnćvoĸno~TaŊnkombinaīħɌĮÖffnćvoĸnoĖ. STRG + SHIFT + TǗsĺrd.~AĽϜscoĉerhalӽ~AĽϜscoĉhИ Ϡgeben~TĀ-ID kśen~ʈ-ϧsȾ aĽen~BitĜkśe zuerǸdiĴno-ID~ǘnǸϖ Ordnerϙn mёɄϙnɜe "Դner/dѸi"Ė~ǘnǸOrdnerϙnɜe "Դner1/Դner2/Դner3"Ė, ЌUįrԴnĆzu erŊllen~ēd-Speƀerӻ~ēd-SpeƀertypħTĀĖ. "DAILY"Ǘsĺrd~ϧknüpfϜАheben~ϧknüpfen~Erfolgreƀňtfernt~DeaĽen~Entfernen~BʕätiǴ?~քhronisИϜsƑtus~~~~~~~~~~~~~~~~~քhronisИϜ erfolgreƀԳstoppt~քhronisИϜ erfolgreƀԳƑrtet~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Stopp~~TĀĠ Mausnäѹƣ~Abfrı nƀtԳfλen~ErfolgreƀĠŇe ZwiǷenablı kśt~TĀ - ͸-Serľ konį nƀtԳƑrtIJwerϖ, bitĜprüfe obĄr Pӻ ľՂbě͹.~TĀ - ͸-SerľԳƑrtIJauf Pӻ~TĀ - ͸-Serľ՘ȭet~Ʉ ex͹Иt nƀt~TĀ nƀtԳfλen~Ʉħϖ ϕgebenćTĀ-Pfad nƀtԳfλen, erŊlōneue Ʉ~Ӭesnotizen-OrdnĆkonį nƀtԳfλćwerϖ~BitĜinƑllИe zuerǸdǺoŃ-hoľ-eĭ Pĵ~App-ID erfolgreƀ kśt~BitĜgib zuerǸϖ TokćϠ~BitĜaĽe zuerǸdie քhronisИϜ~Erfolgreƀ ľifizИt~ϧifizИϜ fehlgeǷlın~~~~~~~~~OrdnĆfüŜćϕgebenćTĀ-Pfad nƀtԳfλen, erŊlōneućOrdner~Ʉħϖ ϕgebenćTĀ-Pfad nƀtԳfλen~AktuelōӬesnotiz konį nƀtԳlesćwerϖ,ȟüfe ob sie ex͹Иt.~Speƀern fehlgeǷlın~KOPIEREN FEHLGESCHLAGEN~KOPIEREN ERFOLGREICH~Ausgewählӽ α kśen~TĀ kśen~KOPIEREN~DiĮ͹ Ϡe ʈ-Funkī, bitĜupgraĉaufŇe ʈ-ϧsȾ Ќsie zu nutzen.~ǘnǸdie ʈ-ϧsȾ hИ erhalӽ: ~Speƀern~Abbrechen~TĀ Ӭesziel~EĝΧ~~ЌӬ zu erŊllen~ʈ-Funkīen~Ziel-TĀ-Anzahl~Ansƀt wechseln~ӬesziȽfʕleǴ~TĀ speƀern uįr: ~Vollbildmodus aĽen~Vollbildmodus ľlӮ~WörĬ~Wӻ~Zur ϑseiĜzuգkehren~TĀs zЌÜϫen~ÜϫćƑrӽ~Schwer~Gut~Leƀt~WieŌholen~AlōÜϫϜsdѸn löǷen~TäglƀĆFӻǷritt~Ըs ƣ~Ըs ausԽnϖ~GesamĜÜϫϜen~HeuĜhaǸduǗōdϠĴnŕüϫt!~TĀ im zĦralćFenŊr ϵn~TĀ im ǷwebȭćFenŊr ϵn~TĀĠĄrɱchӽ Seiӽle͹e ϵn~TĀĠĄrɆkćSeiӽle͹e ϵn~TĀ-Eĭ ƣ~MinimalćModus umǷalӽ~FokusАāo-Eĭ~Web-TĀs mёlokalćӌhronisИen~LokaōTĀs mёWeb ӌhronisИen~TäglƀĮTĀ ƣ~FokusА Suchle͹e~TĀĠ Popoľ ƣ (Hoľ-Eĭ)~ZĦralĮFenŊr~SchwebȭĮFenŊr~RechĜSeiӽle͹e~Linke Seiӽle͹e~TĀ-Typ՘im lokalćքhronisИćspeƀern~ēdtyp zЌSpeƀern voĸno՘im lokalćքhronisИćfʕleǴ, Ƒndardmäßig DATEI.~քhronisИϜsdienst~ʈ-ϧifizИϜsƑtus~LՄ-VorǷau~Quelle~GlobalĮKśen~OrdnerϙnĖ~ɄϙnĖ~ɄϙnħaktuelōOrtsdѸiĖ~Kalȭertyp wechseln~alphΧtiǷ~alphΧtiǷ գwärts~nach Anzahl~nach Anzahl գwärts~HИБppen~Heute~Gʕern~LҮĜ7 Ӭe~LҮĜ30 Ӭe~LҮĜ90 Ӭe~LҮĜ180 Ӭe~LҮĜ365 Ӭe~GefilĬĜTĀs kśen~MӮweiŖlöǷen~MӮweiŖaƥИen~MӮhafĜӬ-OՈaī~MӮweiŖwieŌherŊllen~~~~~~~~~~~~~~~~~~~~~~~~~~~~~՚duŀs täglƀe Notizen-PĵĄaĽst, könį ĮsϠ,ŀssŀsāo nƀt rƀtigԳlöǷt oŌ aktualisИtɜrd. BitĜaĽeŀs Pĵ λ ľsucѹĮerneut.~VorǷau~FʕleǴ λ speƀern~ӬesmarkИϜĠāo-L͹e ƣ~ӬesmarkИϜ obćaufĄm täglƀćBİƀs-TĀ ƣ.ĺrdmäßigĄaĽt.~KʋćzЌErweiĬn oŌ Falӽ, Cmd+Kʋ Ќ՛ĴnŕdĮӬĮanzuzeiǴ~ǘnǸϠe Lizenz kaufćvon~KϠĴnŕim Bİƀ~Monat~Woche~Ӭ~~MorǴ~Vorherige~NächŊ~AlōSpalӽԵrchsuchenȼ~Grλinƕīen~Zusätzlƀe Inƕīen~ErŊllt am~ʛt~TĀ-Typ~Quelltyp~ZeϰnƑtus~Pfad~Angeheftet-Ըus~TΧlle~~MomĦe~WasǨf՛~Kalȭer~Zur SeiĜgehen~Seite~ZeiǴ~Zeϰn~TemporärĆFilĬ~LinkŇrektĠāo-Ansƀt ϵn~ӬesmarkИϜsbİƀ~BİƀĄr ӬesmarkИϜĖ.ĺrdmäßig Ӭ.~TĀ ͹ԳsՈrt~BitĜĦsՈϡTĀԵrch EĝΧĄs PƁts~AutomatiǷĆBilddʍ~AutomatiǷĆBilddʍ՘im SpeƀernĠāo.ĺrdmäßig 'false'~TĀ Http IP-Typ~TĀ-͸-Serľ-IP zЌAbhörćfʕleǴ.ĺrdmäßig 'ʤhost'~PƁt zЌSՈrćvoĸno~EntsՈren~GesՈrt~PƁt ͹ falǷ~SՈren~PƁt zЌEntsՈrćvoĸno er՟Ōlƀ~Du haǸnoch kϠ PƁt fʕgelegt oŌŇeŖFunkī aĽt~PƁt~PƁtħTĀ~BitĜgibĄʼnPƁt Ϡ, Ќdie PƁtϠŊllϜćzu änŌn~BitĜgibĄʼnPƁt Ϡ~TĀ sՈren~Datum~Ի~Ereignis~Ӭ-Posiī СՂen~PosiīĄs ɈĖ΄ ɈǵǷ СgeՂt werϖ~ӬǵǷ СՂen~Ӭ am EnĉoŌ AnfangĄsāo-ʛts СՂen΄ Ϡāo erŊllt λ ɈԳfilĬt werϖ~Ӭ mёneuĆZeϰ СՂen~Ӭ mёneuĆZeϰ СՂen΄ ɈǵǷ СgeՂt werϖ~Ӭ-MӮbearbeitϜ~Ӭ-MӮauswahl~VorhƴeȌɈ~AusgewählĜɈ~Kʋen, ЌvorhƴenĮӬ zuňtfernen~Kʋen, ЌausgewähltĮӬ zuňtfernen~EĝΧ, ЌvorhƴenĮӬ auszuwählen~Anfang~Ende~# ÜberǷrift~Chat-Ansƀtssե~SijŌ Chat-AnsƀtĖ~HiįrgrλbildħMomĦe-Ansƀt~HiįrgrλbildħMomĦe-AnsƀtĖ~ThδħTĀ~ThδħTĀĖ~SchnittŊllȭetails~ϥenmenge~TĀ-Ըus~ϧwȭeĜɈ~ϧwȭeĜӬe~AktivŊr Ӭ~AktivŊ Stλe~TĀ-Menge~KϠ ʛt zЌGenerИen.~Bild erfolgreƀԳnerИt.~FehlĆȊGenerИćdĮBildes.~GefilĬĜTĀsǗs Bild teϰn~Neuʕe ϧsȾ~Vorherige ϧsȾ~TĀ-UpdѸ-Info~Debug-Inƕīćʼndie ZwiǷenablı kśt~Debug-Inƕīćkśen~FehlĆȊLaϖĄs Chϕlogs~OnliȌansehen~ÄnŌϜsprotokoll~BitĜϵ zuerǸTĀ~Eĭ ϠՂen~~BitĜlege uįrǷiedlƀe SpeƀerӻeħMehrfachdѸi-EinŊllϜćʼnTĀ fʕ. DĆӬebuchԴnĆüberǷneidIJsƀ mёdem MehrfachdѸi-Speƀerӻ, oŌ ĮbʕehtŇe Gefahr,ŀss ĆwieŌholtԳlesćwird.~ēd-ԻpräfixħTĀĠ täglƀćNotizen~ēd-ԻpräfixħTĀĠ täglƀćNotizćfʕleǴ.~Bild erfolgreƀԳspeƀert~Ƽzitat~ƼzitɢfüĶnoĖ~Ƽsymbol~ƼsymbolħTĀĖ. ǘnǸϠćϗ/ϗs-Link oŌ Ʉpfad im TբǼϠgeben.~Ƽinfo~GefilĬĜErgebnisŖkśen~Bild teϰn~ēd~Grau~Gras~Flamme~~Eis~~Täglƀe Notizen~~α anhänǴ/vҲnŊllćȊTeϰn zuāo~α anhänǴ՘im Teϰn zuāo~α vҲnŊllćȊTeϰn zuāo~Neue Zeϰ СՂćȊAnhänǴ/VҲnŊllćvon α~HИ etwǺϠgeben~VҲnŊllen~AnhänǴ~Beides~KϠes~AngehefteĜGruppe ausԽnϖ~AngehefteĜGruppeĠāo-L͹e ausԽnϖ.ĺrdmäßigĄaĽt.~ÜberǷriftħϖ ϥĦyp voĸnoĖ.ĺrdmäßigɜrdĄrАgezeƀneĜTĀ-ʛt am EnĉdĮӬebuchs ϠgeՂt;΃Ϡ TitȽϕgebćwird, werϖǗōaufgezeƀneӽāo-ʛĜϠheitlƀ uįŜiesem TitȽkѸgorisИt.~UįrǷiedlƀĮEinՂeziȽfür ľǷieϖe Typen~AĽeŇes, ЌuįrǷiedlƀe EinՂezieōfür ľǷieϖĴno-TypćfʕzuleǴ,ɜe ϥen- oŌ L͹Ħyp voĸno~ǘnǸdǺgesamĜӬebuch oŌ nur ϠćTeilŀvonĖ~ϧarbeitϜsziȽfʕleǴ~GesamtĮӬebuch~TĀ-EinՂeӻĖ~FʕleǴ, woāo-ʛt ϠgeՂt werϖ soll~EnĉdĮӬebuchs~ƼdeϭИĬ Ort~EinŊllϜsanleitϜ~DetaϰinŊllϜen~TĀ Ƒrӽ~ÜbĆTĀ ʈ~AĽt~AĽen~OrdnĆfür täglƀe Notizen~OrdnĆfür täglƀe NotizćfʕleǴ~Namensƕtħtäglƀe Notizen~Namensƕtħtäglƀe NotizćfʕleǴ~Pĵħtäglƀe Notizen~Pĵħtäglƀe NotizćaĽen~Ausgewählt~Auswählen~EʼnklassiǷĮThδħTĀ mёzweispaltigem Layout~KlassiǷ~EʼnmoŌnĮThδħTĀ mёdreispaltigem Layout λ ϠiǴ ϠzigartiǴ Funkīen.~~~~~~~~~~Lŕgeht's, viȽSpaß mёTĀ~GlückwunǷ! AlōEinŊllϜćabgeǷlossen~PasŖEinŊllϜćan,ŇeĄiȌƼerfahrϜ mёTĀ՘Ϡflussen.~PräfİnzćfüŜie ϧwȭϜ voĸnoĖ~՚duŇĴno-BasisľsȾ ľwȭʕ, ͹Ňe AĽϜĄs Pĵsħtäglƀe Notizćer՟Ōlƀ. KonfigurИe sϠe EinŊllϜen, Ќeffektivŀmёzu arbeiӽ.~MёPĵħtäglƀe Notizć՟tfahren~WähōϠ ThδħTĀ.~ThδħTĀĖ~RƀĜdϠe ƼinƕīćfüĶno Ϡ.~ErŊ SchritĜmёTĀ~Übersprĝćλāo Ƒrӽ~NächŊr Schritt~Zuգ zЌvorheriǴ Schritt~KʋćzЌAĽć=>~DiĮ͹āŕSeiӽle͹e. NavigИe zu ľǷieϖćPfaϖ oŌ wähōAbfrıfilĬ.~Kʋe hИ λԳѹzur EinŊllϜsseite.~Kʋe hИ λԳѹzu Ϡem ƴİn Pfad.~WähōoŌ erŊlōhИ AbfrıfilĬ.~SieѹhИĄn Ըus voĸnos.~SucѹdϠāo Ƿnell hИ.~BearbeiĜoŌ erŊlōdϠāo hИ.~SieѹdϠĴnŕhИ.~SieѹhИĄinćԻƑtus voĸnos.~SieѹdϠe Ɉ hИ. Ɉ werϖ ϕzeigt΄āo Ɉňthält.~Fertig~TĀ ͹ Ϡsatzbİit. ~ǘnǸTĀ jҮt ľwȭen. ՚du mehr übĆTĀ ʈ erfahrćmöchtʕ, kʋeАŇe Sӱltfläcѹuįn.~ēd-Իpräfix~α-Anhänge-Akī~α-VҲnŊll-Akī~VorϠŊllϜ~Ɉ auswählen~Es ͹ nƀt ľՂběʼnŌ klϠćAnsƀt~α anhänǴ~α vҲnŊllen~DϠ OrdnĆfür täglƀe Notizć͹ nƀt korrekt Ϡgʕellt, bitĜüϫeĄiȌEinŊllϜen~~~~Sauber~~Farbľlauf~TĀ-FreigΧ~Kśćʼndie ZwiǷenablı fehlgeǷlın~~ErfolgreƀĠŇe ZwiǷenablı kśt~DϠ ʛt wurĉʼndie ZwiǷenablı kśt λĠĄn Eĭ ϠgeՂt. BitĜľsucѹĮerneut~TĀ teϰn~Ʉϙn nach ErŊllϜ voĸnoĖ~ǘnǸϖ Ʉϙn nachĄr ErŊllϜ voĸnoĖ. EʼnEĝΧfeldɜrd ϕzeigt΄Եāo erŊllst.~TEILEN~Nach ÜberǷrift 1 teϰn~Nach ÜberǷrift 2 teϰn~Nach ÜberǷrift 3 teϰn~ϥe ϠՂen~AlōEinŊllϜćwurϖАŇeĺrdwerĜzuգgesҮt.~AlōTĀ-EinŊllϜćzuգsҮen~EinŊllϜćzuգsҮen~TĀ-EinŊllϜćaufĺrdϠŊllϜćzuգsҮen.~ϥenľwaltϜ~AbǷlussdatЌanhänǴ΄ ϥeĠāo erledigt ͹~AbǷlussdatЌanhänǴ΄ ϥeĠāo erledigt ͹.ĺrdmäßigĄaĽt~՚du hИ Ϡ Ӭ fʕlegst,ɜrdāoŇeŖɄĠdizИen,ŇeŇesĮӬňthält, λ ĮʼnŌ L͹e ƣ. Du musǸkϠ \`#\` СՂen.~ӬħɄtyp-ɄĖ~ӬħMehrfachtyp-ɄĖ~~~~~BitĜgibŀs Ӭ Ϡ~TĀsĠāo-FreigΧbild zuդnführen~ƼdeϭИĜHöѹfüĶno-ʛt~ƼdeϭИĜHöѹfüĶno-ʛtĖ. Wie 200px oŌ 20rem~HöѹϠgeben~ʈԽm melϖ~AktuelōϧsȾ~Fehlerberƀt~KʋeАŇe Sӱltfläche, ЌDebug-Inƕīćzu kśćλŇe ʈԽmseiĜzu ϵn~Kśćλ los~Debug-Inƕīćkśt~Funkīsanfrı~ReƀeĄiȌFunkīsanfrıАĄr ʈԽmseiĜϠ~Los~Abfrıl͹ensƀtbarkeёumǷalӽ~Ӭ-SƀtbarkeёumǷalӽ~Seiӽle͹ensƀtbarkeёumǷalӽ~Einklβn~Ausklβn~MaximaōHöѹfür Einklβn~DieյximaōHöѹfüĶno-Einklβn΄А 0ԳsҮt, würĉTĀ nƀt Ϡklβn.ĺrdmäßig 0. (DiĮ͹ kϠe Zeϰnanzahl, sonŌnŇe Höѹʼnpx.)~ʛtɱnŌn~Für CΆշtimИen~Rȭert ʛĜmёmehrǗs 3 CΆs nƀtǵǷ.ĺrdmäßig aĽt~DĆWert sollĜgrößĆsϠǗs~α anhänǴ~α vҲnŊllen~TĀ-Höѹim Ϡgeklappӽ ZuƑnd~Die HöѹfüĶno im Ϡgeklappӽ ZuƑnd΄А 0ԳsҮt, würĉTĀ nƀt Ϡklβn.ĺrdmäßig 100. (DiĮ͹ kϠe Zeϰnanzahl, sonŌnŇe Höѹʼnpx.)~DieŖOpī ermöglƀt Įdir, ƴİ Ansƀӽ zu ľwȭen΄Ňe BlattbreiĜnƀt ausreƀt.ĺrdmäßigĄaĽt.~Kann ƴİ Ansƀӽ auswählen΄ BlattbreiĜnƀt ausreƀt~PAPIERKORB~TĀ-ErfassϜǨweiĬϜ holen~ǘnǸjҮt Ideen/α aus Chrome erfӮ.~Ʉ ϵn~ExȎИĜCSV-Ʉ~AktualisИt am~Nach CSV exȎИen~SchnellСՂen-SӱltfläcѹʼnŌɰćNavigaīsle͹e~ԸuŊxt immĆƣ~FilĬϜ nach Mζćaus Ʉ uįrstützen~՚duŇĮaĽst, kannǸdu übĆMζćausĄr ɄŋĬn,ɜe z.B. ɈĠĄr Ʉ.āŕaus CanvǺwerϖ jedoch nƀt uįrstützt.ĺrdmäßigĄaĽt.~QuelōnebćԻŊmpȽʼnTĀ ƣ~՚duŇĮaĽst, kannǸduŇe Quelōnebćdem ԻŊmpȽʼnTĀ sehen. ǘnǸϖ TitȽʼnϖ MζćfʕleǴ, ЌdiĮzu überǷreiben.ĺrdmäßigĄaĽt.~Manuell ӌhronisИen~ZEITRAUM~INNERHALB~7 Ӭe~14 Ӭe~30 Ӭe~3 MonѸ~6 MonѸ~1 Jahr~DieŖWoche~LҮĜWoche~DieǨ Monat~LҮĬ Monat~DiesĮJahr~LҮtĮJahr~KϠe H͹orie~HeuĜľԽibȭ~HeuĜgesamt~Nach Ի~Nach Ի (umgekehrt)~Ը͹ik~Ը͹iken~Gesamt~TĀs~BeliebĜɈ~Top 10Ąr me͹ľwȭeӽ Ɉ~TĀ-Anzahl~Stündlƀe ϧteilϜ~AktuellĆMonat~Monatlƀe ϧteilϜ~LҮĜ30 Ӭe~Jahr~ԻľteilϜ~Wann ǷreibǸduāos~ʛtslänge~ϧteilϜĄĶno-LänǴ~ԻľteilϜ ƣ~Datumsauswahl ausԽnϖ~Datumsauswahl ƣ~FilĬ löǷen~Link kśen~EinbettϜsɃ kśen~Strg/Cmd + Eįr zЌSpeƀernĄsāos~Fʕe ZeƀenketӽħTĀs~Fʕe ZeƀenketӽħTĀs ľwȭen~AĽen, Ќfʕe Zeƀenketӽ am Anfang oŌ EnĉvoĸnŕСzuՂen.~FʕĮPräfixħTĀs~FügeŇeŖZeƀenketĜam Anfang jedĮTĀs С. Uįrstützt PlatzhalĬɜeŝHHmmss}}.~FʕĮSuffixħTĀs~FügeŇeŖZeƀenketĜam EnĉjedĮTĀs С. Uįrstützt PlatzhalĬɜeŝHHmmss}}.~Wӻzahl überǷritӽ~Wӻzählfunkī~Echtzeit-Wӻzählanzeige im Eĭ aĽen~MaximaōWӻzahl~Lege ϠeյximaōWӻzahlħTĀ fʕ. DĆEĭ zeigt Ϡe WarnϜ an΄ŇeŖüberǷritӽɜrd. SҮeА 0ħunbegrenzt.~RefİnzɃs-Gruppe~RefİnzɃs-GruppeĠāo aĽen.~KϠe RefİnzɃsԳfλen~FehlĆȊAbrufćvon RefİnzɃs~Doppelkʋ-ϧhalӽ~Legeŀs ϧhalӽ fʕ΄ԵА Ϡāo doppelkʋst.~TĀ ϵn~TĀ՘arbeiӽ~Zur Quelōgehen~Nƀts tun~ēdkopfzeϰĠĄrɰćAnsƀt ľwȭen~ϧwȭeŇeĺrdkopfzeϰĠĄrɰćAnsƀt voĸno anŊlōϠĆbƸӽ Kopfzeϰ.`,"en-gb":`~~UǨ Name~~~InǨt AfĬ Headĝ~~ʈҼāo Below~~SɣTĀ Bɪ LΧl~~OpćTĀ WhćOŃ Opens~WhćenaԽd,āoɜllշćwhćOŃշensϣeŗċ.~Dċ Prefix WhćSɣTĀ~~Dċ InǨt DѸ FƤ~~Dċ Eĭ Posiīҹ Mobϰ~~UŖBɪğɀ Eĭҹ Mobϰ~~~~~~~~~~~~~~~~~~~~~~~CONFIRM!~~~RecycōBin~~~~~~~~~~~~~~~~~~~~~~~~~~~IS NOT~~~~~~~~~~~~~~~~~~~~թCannot load imı, imıɆkյy՘ broken~~~~~~~~~~~~~~~~~~~~~~~~~~~~You hԼn't sIJfolŌĈdailyģĮʼnboth Ոiodic-Śs ƴŀily-Śsœns.~~~~~~~You hԼn't sIJƕtĈdailyģĮʼnboth Ոiodic-Śs ƴŀily-Śsœns.~~~~~~~~~~~~~~~~~~~~~~H֌ Colҳ ScЗ~SIJdiffİntĚlҳ ǷemeĈh֌.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~WhćdeleĜtĀŇrՀly, ёwillģ՘ movǠto binϣeŗċ.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Fϰ doĮnot ex͹~~Fϰģ foλĈtѹgՄnĂo path, cӚtĝ a newŋe~~~~~~~~~~~~~~~~FolŌģ foλĈtѹgՄnĂo path, cӚtĝ a new folŌ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~OpćtĀĠ cĦϡwindow~~~~~~~~~~~~CĦϡwindow~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ɡbuy a licence Ձ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~You hɣnot sIJa pƁd ǼenaԽd thɯfeatuϡyet`,es:`~a~NombϡĉЍ~ėe tu ιĄ Ѝ Ψ. 'TĀ 😏' pǼő~PuedĮʕaԽcĆunňcΧzѐ o։oĚmo "# EncΧzѐ"čŔrolěТubicŅĄ lŕdatos~InǨtědespuésĄlňcΧzѐ~Si Ŗdejaň blanco, ȽŔeniŏtĀɱg͹rѐ ŖinǨtaráǗ ϭdzdȽdiario; si ŖproporcȾa un ӛ, toŏȽŔeniŏtĀɱg͹rѐ ŖcѸgorizará uni՟memĦe bajo eŖӛ.~ʈcesětĀsĄbajo~Si Ŗdejaň blanco,єĠĬfazĄāo mŘá todŕlŕŔenidŕĉreg͹rŕtĀ; si ŖproporcȾa un ӛ,єĠĬfazĄāo solo mŘá lŕŔenidŕbajo eŖӛ, y lŕŔenidŕescritŕćotrŕlugӘs no ŖmŘán.~EƔĄl botón GuardětĀ~El ȩo mostrѐň Ƚbotón ϮěTĀňєĠĬfaz.Π pǼő.~A֊Ķno cuƴo ŖabϡOŃ~Cuƴo ʕo ʕá hǑѐ,āo Ŗa֊rá cuƴo Ŗabra OŃ. DeshǑѐ pǼő.~PrefijoȟedeĬminѐǗ ϮětĀ~ėe ȽprefijoȟedeĬminѐǗ cӚĩno, 'L͹a' pǼő.~FƤoĄ feӱĄĠǨĥpredeĬminѐ~ėe ȽƕtoĄ feӱȟedeĬminѐǗĠǨtěfeӱĚn @, 'TӘas' pǼő.~PosiĥpredeĬminևĄlŒrň móvil~ėeє posiĥpredeĬminևĄlŒrň móvil, 'Arriba' pǼő.~UsěbotónčmŘŒrň móvil~ėe un botón flotaįčllamědzeĭň móvil. Solo funcȾa cuƴo Ƚeĭ ʕá ubicѐňє parĜinferior.~MŘ hҲǗĚpiěբǚѐs~MŘ hҲ cuƴoĚpiǺբǚѐs,Ěmo 12:00. CopiěhҲ pǼő.~MŘ feӱǗĚpiěբǚѐs~MŘ feӱ cuƴoĚpiǺբǚѐs,ĚmoǢ. Copiěfeӱ pǼő.~Agregěӵň blancoňtϡfeӱsŇfİįs~Agregěӵň blancoǗĚpiěբǚѐĚn feӱ. Sʼnӵň blanco pǼő.~InicioĄl pieĄ imınǗĚmҴĶno~ėe lo М quИǺΨ, usa {TĀNum}čmŘ ȽnúmeroĄĂo, ƭčdías. '{TĀNum}āo ƭ Días' pǼő~UsěeƔsňє bóveda~UsěeƔsňє bóvedaň lugěĉsoloňāo. DeshǑѐ pǼő.~L͹a~TӘa~Arriba~Abajo~ETIQUETA~DÍA~CONSULTA~EDITAR~FIJAR~DESFIJAR~ELIMINAR~¡CONFIRMAR!~CREAR ϦRO~AjuŊs~PapeleraĄɱciclaje~Obӽiȭoŀtosȼ~No hayĂŕΨ.~EƔs frecuĦes~¿Qué piensǺahҲȼ?~LEER~MARCAR~COMPARTIR~FUENTE~RESTAURAR~Aƥar~ReviҵŇaria~ELIMINADO EL~¡Noooop!~Todŕlŕdatŕʕán cargѐs 🎉~TIPO~ENLAZADO~SIN ETIQUETAS~TIENE ENLACES~TIENE IMÁGENES~INCLUIR~EXCLUIR~TEXTO~ES~Y~O~LISTA~NO ES~RUTA~METADATOS~SELECCIONAR~AGREGAR TÉRMINOS DE ϦRO~ϦRAR~Filtro~TÍTULO~CREAR CONSULTA~EDITAR CONSULTA~COINCIDE~VECES~ComҴr imınĄāo~~~~~Generƴo imınȼ~Cargƴo imınȼ~Cargƴoȼ~թNo ŖpueĉcargěТimın, Ƚenӈ pueĉʕěroto~TĀsŇarios~CANCELAR EDICIÓN~ENLAZAR A~ImınĄ fonŏćtδ oscuro~ImınĄ fonŏćtδ claro~ėeє imınĄ fonŏćtδ oscuro. ėeǗgoĚmo ƒg"~ėeє imınĄ fonŏćtδ claro. ėeǗgoĚmo ƒg"~MŘĪĄ tӘas~MŘĪĄ tӘǺcercaĄl ȩoĄ hҲ. DeshǑѐ pǼő~Ƣr abϡTĀȟimero~FECHA~ANTES~DESPUÉS~ImȎar~¡EL TÍTULO NO PUEDE ESTAR VACÍO!~¡EL ϦRO NO PUEDE ESTAR VACÍO!~TĀ abИto exitosamĦe~CopiѐǗ ȎapapelĮexitosamĦe~ϧЙa si a֊Ŋ ȽPĵĄģǺdiariǺo ȽPĵĄģǺՈiódicas~Ƣr Ĭminaє últimaĚnfigurŅĄŋtroȟimero~TĀ cerrѐ exitosamĦe~InǨtěcomoāo~InǨtěaƥoĚmoĚįniŏĉtĀ~ElĚįniŏno pueĉʕěvacío~No ŖpueĉcӚr nuevo aƥo.~RESTAURACIÓN EXITOSA~ELIMINACIÓN EXITOSA~No ʕaԽc͹e ɴačnotǺdiariǺćlŕpĵsĄģǺՈiódicǺyģǺdiarias.~Ƣr ľЙaєĚnfigurŅĄ tuœnĄģǺdiariǺOœnĄģǺՈiódicas~UsěТcĿĥpredeĬminևĄ quéœn~TĀ usaєĚnfigurŅȟedeĬminևĄlœnčobӽĆtĀsĄŇario, 'Diario' pǼő.~~MŘ siempϡbarraєĬdzćPC~MŘ barraєĬdzizquИdaň PC/TaԽtĠcluso cuƴo ȽanchoĄє hoja ĮmenǼa 875px. DeshǑѐ pǼő.~No ʕaԽc͹e ƕtočnotǺdiariǺćlŕpĵsĄģǺՈiódicǺyģǺdiarias.~BuscětodŕlŕajuŊs~~~~~~~~~~ComҴr~Avanzѐ~~ReviҵǗeatoria~վADO EL~ErrǼdzeliminětĀ~ComenzѐĄsde~ImınĄ fonŏɨda~ėĆimınĄ fonŏɨda.~PieĄāo ɨdo~ėĆpieĄĂo ɨdo.~EsМmaĄĚlǼdȽmapaĄ calor~ėĆdifİį esМmaĄĚlǼʥ ȽmapaĄ calor.~HǑěǨvidǼHttp ʤ~PuertoĄl ǨvidǼHttpĄāo~ėĆpuertoĄl ǨvidǼϗĄĂočescuӱr.ђ pǼő~MoŏĉeĭȟedeĬminѐ~Moŏv͹aȟeviaň vivo O moŏfuĦe.~TipoĄ ϮѐčTĀ~DIARIO~MÚLTIPLE~LIENZO~TODO~վO~POR HACER~HECHO~DIARIO~OTRO~~~~Diario~~~~~~~~PȦo~~~~~~~~~~~ErrǼdzcӚrģaŇaria, ľЙa si ex͹e.~ErrǼdzcӚrģaŇaria. Ƣr ľЙa si cӚŊ una ɴačnotǺdiarias.~DespuésĄ ľЙětu cuĦa, pŽ ӭiza ʕaոa.~ϧЙar~SiБenĮalgunaȟegunta, pŽĚntáctanos.~EliminěTĀŇrՀamĦe~Al eliminětĀŇrՀamĦe, no Ŗmoľá aє papelera. DeshǑѐ pǼő.~HǑěaՈtura ɌĄĂo~HǑěaՈtura ɌĄĂo. DeshǑѐ pǼő.~TecТʥ a֊ĩno ɌmĦe~ėĆtecТʥ a֊ĩno ɌmĦe.ΡT pǼő.~ObӽĆcódigoĄ ȈŅ~Ingբa ȽcódigoĄ ȈŅ Ψ~CopiěidĄāo~Activěľҵ ʈ~ƢrĚpia ȽidĄāoȟimero~PuedĮʕaԽcĆιĄ ɴaĚn ιĄ aƥoĚmo "ɴa/aƥo"~PuedĮʕaԽcĆιĄ ɴaĚmo "ɴa1/ɴa2/ɴa3"čcӚr subɴa~UbicŅĄ ϮѐȟedeĬminև~ėe ȽtipoĄ ϮѐȟedeĬminѐčtĀ. "DIARIO" pǼő~Desvincular~Vincular~Eliminѐ exitosamĦe~DesȈar~Eliminar~¿Confirmar?~EƑŏĉsʡŅ~~~~~~~~~~~~~~~~~SʡŅĄӽida exitosamĦe~SʡŅĠiciև exitosamĦe~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Deӽer~Iniciar~MŘĂo cercaĄl mouse~Consǚa noňŔrև~EnviѐǗ ȎapapelĮexitosamĦe~TĀ - ErrǼdziniciěǨvidǼ͸, pŽ ľЙa М Ƚpuerto ʕéŇsponiԽ.~TĀ - ServidǼ͸Ġiciѐň Ƚpuerto~TĀ - ServidǼ͸ Ĭminѐ~Aƥo no ex͹e~TĀ noňŔrѐ~Aƥo noňŔrѐčТrutaĄĂoŀda, cӚnŏnuevo aƥo~ErrǼdzenŔrěɴaĄģǺdiarias~ƢrĠƑТprimero Ƚpĵ oŃ-hoľ-eĭ~IDĄ aplicŅĚpiѐ exitosamĦe~ƢrĠgբa Ƚtokćprimero~Ƣr hǑaє sʡŅȟimero~ϧЙŅ exitosa~ErrǼdzľЙar~~~~~~~~~Carpeta noňŔrևčТrutaĄĂoŀda, cӚnŏnueva ɴa~Aƥo noňŔrѐčТrutaĄĂoŀda~ErrǼdzleĆnotaŇaria ӭ, ľЙa si ex͹e.~ErrǼdzϮar~ERROR AL COPIAR~COPIADO EXITOSO~Copiěȩo sɂcȾѐ~CopiětĀ~COPIAR~EƑ Įuna funĥpro, pŽ ӭiza aє ľҵȟočusarla.~PuedĮobӽĆТľҵȟoĄsde: ~Guardar~Cancelar~O։oŇarioĄāo~Entrև~#EƔ~ʥ cӚrĪ~FuncȾĮpro~Cӹѐr o։oĄāo~Cambiěv͹a~ėĆo։oŇario~GuarděTĀň: ~Entrěćmoŏp՝Тcompleta~SaliŜȽmoŏp՝Тcompleta~palabras~palabra~Volľ aєոaȟincipal~TĀsčrevisar~Comenzěreviҵ~Difícil~Bueno~Fácil~De nuevo~Borrětodŕlŕdatŕĉreviҵ~ʈgբoŇario~MŘ ʕadísticas~Ocǚěʕadísticas~TotdzĉrevisȾes~¡Hoy hǺrevisѐ todŕtusĂos!~A֊ĩnoň vĦana cĦral~A֊ĩnoň vĦana flotaį~A֊ĩnoň barraєĬdzŌeӱ~A֊ĩnoň barraєĬdzizquИda~MŘŒŜĨno~AlĬněmoŏmínimo~EnfocěćeĭĄĂo~ResʡětĀs web a ʤ~SʡětĀs ʤĮa web~MŘĂoŇario~EnfocěćbarraĄ búsМda~MŘĂoň vĦana emerǴĜ(Eĭ flotaį)~VĦana cĦral~VĦana flotaį~BarraєĬdzŌeӱ~BarraєĬdzizquИda~GuardětipoĄĂoǗ sʡěʤ~ėĆȽtipoĄ ϮѐȟedeĬminѐĄĂoǗ sʡěʤ, վO pǼő.~ServicioĄ sʡŅ~EƑŏĉľЙŅ ʈ~V͹aȟeviaň vivo~FuĦe~Copia Ɍ~ėĆȽιĄє ɴa~ėĆȽιĄl aƥo~ėĆȽιĄl aƥočТubicŅ ӭ~CambiětipoĄ calȭario~alfabético~alfabéticoĠľso~pǼŔeo~pǼŔeoĠľso~Escribe Ψ~Hoy~Ayer~Últimŕ7Рs~Últimŕ30Рs~Últimŕ90Рs~Últimŕ180Рs~Últimŕ365Рs~CopiětĀsŋtrѐs~EliminŅյsiva~Aƥoյsivo~OՈŅյsivaĄĪs~RʕaurŅյsiva~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Si ʕásĄsȈƴo ȽcomplemĦoĄģǺdiarias, ĮposiԽ М ȽtĀ no ŖelimiȌo ӭiceĚrrՀamĦe. Ƣr, Ȉa ȽcomplemĦo eĠténtaloĄ nuevo.~V͹aȟevia~ėĆy Ϯar~MŘյrcaĄРňє l͹aĄĂos~MŘյrcaĄРňє parĜsuՈiǼdȽrangoŇarioĄĂoϣo pǼő.~Clicčexpƴir o plegar, Cmd+ClicčmŘ todŕlŕtĀsĄlР~PuedĮcomprěuna licenciaĄsde~No hayĂŕćȽrango~Mes~Sδna~Día~~Mañana~Aįrior~SiguiĦe~BuscěćtodǺlǺcolumnasȼ~Inƕĥbásica~InƕĥadicȾal~CӚŏel~Cӹenido~TipoĄāo~TipoĄ fuĦe~EƑŏĉТfila~Ruta~EƑŏfijѐ~Tabla~~MomĦos~Cascև~Calȭario~Ir aєոa~Página~MŘ~filas~Filtro tempҲl~A֊rňӈŇrՀamĦeň v͹aāo~RangoĄյrcaĄР~ėĆȽrangoĄյrcaĄР. Día pǼő.~TĀ ʕá bloМѐ~Ƣr,ĄsbloМaāoĠtroduciȭoєĚɍ~Descarga automáticaĄ imın~Descargěimın automáticamĦeǗ ϮěćtĀ. 'falso' pǼő~TipoĄ IP HttpĄāo~ėĆIPĄl ǨvidǼϗĄāočescuӱr. 'ʤhost' pǼő~CӹraseñačbloМěTĀ~DesbloМar~BloМѐ~LaĚɍ ĮincorrՀa~BloМar~Se necesitaĚɍčdesbloМěTĀ~No hǺʕaԽciŏunaĚɍ o hǑѐ ʕa funĥaún~Cӹraseña~CӹraseñačTĀ~Ƣr,Ġtroduce tuĚɍčcambiěТcĿĥĉŔraseña~Ƣr,Ġtroduce tuĚɍ~BloМětĀ~feӱ~hҲ~evĦo~AgregěposiĥĉeƔ~ėĆТposiĥĉТeƔǗ agregarТautomáticamĦe~AgregěeƔ automáticamĦe~AgregěeƔǗ ϭdzoǗȟincipioĄlĚįniŏdȽtĀǗ cӚr unĂo yŋtrěeƔs~AgregěeƔĚn nueva ӵ~AgregěeƔĚn nueva ӵǗ agregěeƔ automáticamĦe~EdiĥmasivaĄĪs~SɂĥmasivaĄĪs~EƔs ex͹Ħes~EƔs sɂcȾևs~ClicčeliminěeƔ ex͹Ħe~ClicčeliminěeƔ sɂcȾև~IngբačsɂcȾěeƔ ex͹Ħe~Inicio~Fin~# EncΧzѐ~EsեoĄ v͹aĄ ӱt~ėĆȽʕiloĄ v͹aĄ ӱt~ImınĄ fonŏʥ v͹aĄ momĦos~ėĆТimınĄ fonŏʥ v͹aĄ momĦos~TδčTĀ~ėĆȽtδčTĀ~Det՛Įĉiįrfaz~CantidadĄ tӘas~EƑŏĉTĀ~EƔs usևs~DíǺusѐs~Día más Ȉo~HҲ más Ȉa~CantidadĄāos~No hayĚįniŏʥԳnerar.~ImınԳnerև exitosamĦe.~ErrǼdzǴerěimın.~ComҴĩnŕfiltrѐsĚmo imın~Última ľҵ~ϧҵ aįrior~InƕĥĉӭizŅĄāo~InƕĥĉdepurŅĚpiևǗ Ȏapapeles~CopiěinƕĥĉdepurŅ~ErrǼdzcargěȽreg͹roĄ cambios~ϧň ӵ~Reg͹roĄ cambios~Ƣr, abϡtĀȟimero~InǨtěeĭ~~Ƣr, ʕaԽceŇfİįs ubicacȾĮĉϮѐčТcĿĥmǚi-aƥoňāo. La ɴaĄlŇario ŖsuՈpoȌconє ubicŅĄ Ϯѐ mǚi-aƥo, o hay riesgoĄ М ŖleaɱpetidamĦe.~PrefijoĄБempoȟedeĬminѐčtĀňģǺdiarias~ėĆprefijoĄБempoȟedeĬminѐčtĀňģǺdiarias.~Imın Ϯև exitosamĦe~CitaĄ Ѝ~ėĆcitaĄ ЍčtĀ~IconoĄ Ѝ~ėĆiconoĄ ЍčtĀ. PuedĮĝբěenӈ ϗ/ϗs o rutaĄ aƥoňє bóveda.~InƕĥĉЍ~Copiěբǚѐsŋtrѐs~ComҴr imın~PredeĬminѐ~Gris~HИba~Llama~Oliva~Hielo~~NotǺdiarias~~AgregěȩoǗȟincipio/ϭdzdzcomҴrňāo~AgregěȩoǗ ϭdzdzcomҴrňāo~AgregěȩoǗȟincipioǗĚmҴrňāo~Agregěnueva ӵǗ agregěȩoǗȟincipio/ϭal~Ingբa cualquИĚsa Ψ~Agregědzprincipio~Agregědzϭal~Ambos~Nĝuno~Ocǚěgrupo fijѐ~Ocǚěgrupo fijѐňє l͹aĄĂoϣo pǼő.~ėĆȽencΧzѐčȽtipoĄ tӘaĄĂo, pǼő ȽŔeniŏĉtĀ grabѐ ŖinǨtaráǗ ϭdzdȽdiario; si ŖproporcȾa un ӛ, toŏȽŔeniŏĉtĀ grabѐ ŖcѸgorizará uni՟memĦe bajo eŖӛ.~Difİį o։oĄĠǨĥʥŇfİįБpo~Activa ʕočʕaԽcĆdifİį o։oĄĠǨĥʥŇfİįБpoĄĂo,ĚmoБpo tӘa o l͹aĄĂo~PuedĮʕaԽcĆtoŏȽdiario o solo una parte~ėĆo։oĄȟoceso~DiarioĚmpleto~ėĆlugěĉinǨĥĉtĀ~ėĆdónĉinǨtěŔeniŏĉtĀ~FindzdȽdiario~UbicŅ ɨda~GuíaĄĚnfigurŅ~CĿcȾĮdet՛ևs~IniciěTĀ~AcercaĄāo ʈ~HǑѐ~HǑar~CarpetaĄģǺdiarias~ėĆɴaĄģǺdiarias~FƤoĄ ιĄģaŇaria~ėĆƕtoĄ ιĄģaŇaria~ComplemĦoĄģaŇaria~HǑěcomplemĦoĄģaŇaria~SɂcȾѐ~SɂcȾar~Un tδ clásicočTĀĚnŇseñoĄ dŕcolumnas~Clásico~Un tδ moŌnočTĀĚnŇseñoĄ tբĚlumnǺyǗgunǺcaracĬísticǺúnicas.~MoŌno~~~~~~~~~Ve yŇsfrutaāo~¡FelicitacȾes! TodǺlǺcĿcȾĮcompletևs~AjuƑєsĚnfiguracȾĮМĠfluyććtu exՈienciaĄ ЍĚĸno.~ėĆprefİnciǺʥ usěTĀ~Si ʕás usƴoє ľҵ básicaĄāo, ŖrequИe hǑěȽcomplemĦoĄģaŇaria. CĿ sus ajuŊsčtrabajěefՀivamĦeĚn él.~IrĚnĚmplemĦoĄģaŇaria~Elige un tδčTĀ.~ėĆtδčTĀ~CĿ tuĠƕĥĉЍčTĀ.~Comenzěcoĸno~SaltěeĠiciěTĀ~SiguiĦe paso~VolľǗ paso aįrior~ClicčhǑě=>~EƑ ĮТbarraєĬdzĉTĀ. NԼga aŇfİįs rutǺo sɂcȾaŋtroĄĚnsǚa.~Haz clic Ψ y ve aєոaĄĚnfigurŅ.~Haz clic Ψ y ve a una rutaŇfİį.~SɂcȾa o cӚŋtroĄĚnsǚa Ψ.~Ve ȽʕѐĄ lŕTĀs Ψ.~Busca tuĂo rápidamĦe Ψ.~Edita o cӚ tuĂo Ψ.~Ve tusĂŕΨ.~Ve tu ʕѐĄБempoĄĂŕΨ.~Ve tusĪs Ψ. LǺeƔs ŖmŘán cuƴoĂoĚįngaĪs.~Hecho~TĀ ʕá l͹očusar. ~PuedĮcomenzěa usěTĀ ahҲ. Si quИĮsΧr más sobϡTĀ ʈ, haz clicň ȽbotónĄ abajo.~PrefijoĄБempoȟedeĬminѐ~AcĥĉagregěȩoǗ ϭal~AcĥĉagregěȩoǗȟincipio~PreʕaԽcido~SɂcȾěeƔs~No ʕáŇsponiԽň v͹a peМña~AgregěȩoǗ ϭal~AgregěȩoǗȟincipio~Tu ɴaĄģǺdiariǺno ʕáĚnfigurևĚrrՀamĦe, pŽɱvisa tuĚnfigurŅ~~~~Limpio~Mínimo~GradiĦe~ComҴĶno~ErrǼdzcopiědzȎapapeles~~CopiѐǗ ȎapapelĮexitosamĦe~TuĚįniŏha siŏcopiѐǗ ȎapapelĮeĠǨtѐň Ƚeĭ. ƢrĠténtaloĄ nuevo~ComҴĩno~ėĆιĄ aƥoĄspuésĄ cӚĩno~PuedĮʕaԽcĆȽιĄl aƥoĄspuésĄ cӚĩno. Se mŘá una cajaĄňtrև cuƴo creĮtĀ.~DIVIDIR~Dividir pǼEncΧzѐ 1~Dividir pǼEncΧzѐ 2~Dividir pǼEncΧzѐ 3~InǨtětӘa~TodǺlǺcĿcȾĮhan siŏբtaԽcidǺa lŕvaloբȟedeĬminѐs.~RʕaԽcĆtodǺlǺcĿcȾĮĉTĀ~RʕaԽcĆcĿcȾes~RʕaԽcĆcĿcȾĮĉTĀ a valoբȟedeĬminѐs.~GʕiónĄ tӘas~AgregěfeӱĄĚmpletѐ cuƴoє tӘa ŖcompleĜćtĀ~AgregěfeӱĄĚmpletѐ cuƴoє tӘa ŖcompleĜćtĀϣo pǼő~Cuƴo ʕaԽcĮunaĪ Ψ,āoĠdexará ʕe aƥo МĚntieȌʕaĪ y lo mŘáňє l͹a. No necesitǺagregě\`#\`.~ėĆeƔčaƥoБpo aƥo~ėĆeƔčaƥo mǚiБpo~~~~~ƢrĠgբaєĪ~FusȾětĀsň imınĚmҴdaĄĂo~Altura ɨdačŔeniŏĉTĀ~ėĆaltura ɨdačŔeniŏĉTĀ. Como 200px o 20rem~Ingբěaltura~EnviěproԽma~ϧҵ ӭ~ReȎeĄ error~Haz clicň ȽbotónčcopiěinƕĥĉdepurŅ y a֊rєոaĄȟoԽmas~Copiěe ir~InƕĥĉdepurŅĚpiև~SolicitudĄ función~Envía tu solicitudĄ funĥaєոaĄȟoԽmas~Ir~AlĬněӾdadĄ l͹aĄĚnsǚas~AlĬněӾdadĄĪs~AlĬněӾdadĄ barraєĬal~CoӴar~Expƴir~Altura máximačcoӴar~LaǗtura máximačcoӴětĀ, cuƴo ŖʕaԽceň 0,Ăo noĚӴará. 0 pǼő. (Esto no ĮŔeoĄ ӵs, Įalturaň px.)~RȭerizěŔenido~Optimizěʥ CΆ~NoɱnŌizará automáticamĦeĚįniŏМĚįnga másĄ 3 cΆs. ϧdaŌo pǼő~El valǼdebe ǨյyǼМ~AgregěȩoǗ ϭal~AgregěȩoǗȟincipio~AlturaĄāo cuƴo ʕáĚӴѐ~~EƑշĥĜՈmitirá usěotrǺv͹Ǻcuƴo ȽanchoĄє hoja no sea suficiĦeϣo pǼő.~PueĉsɂcȾěotrǺv͹Ǻcuƴo ȽanchoĄє hoja no ĮsuficiĦe~PAPELERA~ObӽĆexӽҵĄ capturaĄĂo~AhҲ puedĮcapturěidea/ȩoĄsĉchrome.~A֊r aƥo~Aƥo CSV exȎѐ~Actualizѐ el~ExȎěa CSV~BotónĄ agregěrápiŏćbarraĄ nԼgŅ móvil~SiempϡmŘ ȩoĄ ʕѐ~SoȎěfiltro pǼmζŕdesĉaƥo~Cuƴo hǑĮʕo, podrásŋtrěa travésĄ mζŕdesĉaƥo,ĚmoĪsň aƥo. Pero lŕtĀsĄsĉcanvǺno ʕán soȎѐsϣo pǼő.~MŘ fuĦe cercaĄյrcaĄБempoňĂo~Cuƴo hǑĮʕo, podrás ľє fuĦe cercaĄєյrcaĄБempoňĂo. PuedĮʕaԽcĆӛň mζŕʥ sobբcribir ʕoϣo pǼő.~SʡěmanualmĦe~RANGO DE TIEMPO~DENTRO DE~7Рs~14Рs~30Рs~3 meses~6 meses~1 año~EƑ sδna~Sδna pasև~EŊ mes~MĮpasѐ~EŊ año~Año pasѐ~Sʼnh͹orial~Rʕaį hoy~Totdzhoy~PǼЯ~PǼЯĠľso~EƑdística~EƑdísticas~~~EƔs populӘs~Top 10Īs más usևs~CӹeoĄāo~D͹ribuĥpǼhҲ~MĮӭ~D͹ribuĥmensual~Últimŕ30Рs~Año~D͹ribuĥĉЯ~CuánŏescribĮtĀs~LongitudĄĚįnido~D͹ribuĥĉlongitudĮĉtĀ~MŘŇstribuĥĉЯ~OcǚěsɂtǼĉfeӱ~MŘ sɂtǼĉfeӱ~Limpiěfiltro~Copiěenӈ~CopiěenӈĠcruƑdo~Ctrl/Cmd + EįrčϮětĀ~CaϖǺfijǺʥĂos~UsěcaϖǺfijǺʥĂos~HǑěʥ agregěcaϖǺfijǺdzprincipio o ϭdzĉlŕtĀs.~Prefijo fijočtĀs~Agregěʕa caϖaǗȟincipioĄ cևĂo. AdmiĜmarcѐբĚmoŝHHmmss}}.~Sufijo fijočtĀs~Agregěʕa caϖaǗ ϭdzĉcևĂo. AdmiĜmarcѐբĚmoŝHHmmss}}.~CӹeoĄ palabrǺexcedido~FunĥĉŔeoĄ palabras~HǑěvisualizŅĄĚįoĄ palabrǺćЯɱdzćȽeĭ~Cӹeo máximoĄ palabras~ėĆunĚįo máximoĄ palabrǺʥĂo. ElŒr mŘá una adľӽcia cuƴo Ŗexceda. ėĆć0čilimitѐ.~GrupoĄňӈsĄɱfİncia~HǑěgrupoĄňӈsĄɱfİnciaňĂo.~No ŖenŔraronňӈsĄɱfİncia~ErrǼdzobӽĆenӈsĄɱfİncia~ComȎamiĦoĄ doԽ clic~ėĆȽcomȎamiĦoǗ hacĆdoԽ clicň unĂo.~A֊ĩno~EditětĀ~Ir aє fuĦe~No hacĆnև~UsěencΧzѐȟedeĬminѐň v͹a móvil~UsěencΧzѐȟedeĬminѐň v͹a móvilĄĂoň lugěĉencΧzѐ ɨdo.`,fr:`Mémos~à~UǨϙ~Déϭissez votϡuǨϙ ici. Défaut : 'Mҁ 😏'~~InsérĆaprès ōtitre~VousĄvez déϭir ōmêmeБtϡen-dessous si vous voulezĠsérĆIJtraiĬĄs mémŕsous ōmêmeБtre.~InsérĆMémo sous~SeulemĦ lĮĦrée sous cetĜsՀȾ/phraŖdans vŕŚs ǨӹĚnsidérés. S'il n'ex͹e pas, aucuȌŚs ȌǨa traité pҳ ce fƀИ.~Titϡdu boutonĄ sauvegarde~Le ȩe affƀé sur ōboutonĄ sauvegarĉdans l'UI. Défaut :Π~Ouvrir Mémo quƴ OŃ ʕ ouľt.~Quƴ Ȉé, Mҁ Ǩa ouľt quƴ OŃ à l'ouľtuϡd'OŃ. DésȈé pědéfaut.~~Déϭёōpréfix pědéfaut lorsĄє créaī d'un mémo. Défaǚ : 'L͹e'~FƤĄєŀĜinsérée pědéfaut.~DéϭёōƕtĄєŀĜpědéfaut lorsĄ l'inǨīĄєŀĜpě@. Défaut : 'Tâches'.~Posiī pědéfautĄ Ұsurɰe.~Posiī pědéfautĄ Ұsur ōmobϰ. Défaut : 'Haut'.~UեisaīԵ bouton pҳ affƀĆҰsur ōmobϰ.~Pӈ un bouton flottant pҳ βlĆҰsurɰe. FoncīȌuniМmĦ quƴ Ұʕ placéň bas.~AfƀĆl'heuϡquƴ lĮrésǚats sӹĚpiés~Affƀe l'heuϡquƴ lĮrésǚats sӹĚpiés,Ěmme '12:00'. Copie l'heuϡpědéfaut~AffƀeєŀĜquƴ lĮrésǚats sӹĚpiés~AffƀeєŀĜquƴ lĮrésǚats sӹĚpiés,ĚmmeǢ. Pědéfaut,Ěpieєŀte.~AjouĜuȌligȌĦϡlĮdifférĦĮdѸs.~AjouĜuȌligȌlorsĄєĚpieԵ résǚɢԼcєŀte. PǺĉligȌpědéfaut.~DébutԵ piǠĉpı — ParȇeĄ mémoĄ mémos~Déϭissez ce М vous voulez ici, uեisez {TĀNum} pҳ affƀĆōιĄĂo, ƭ pҳ lĮjҳs. Pědéfaut : '{TĀNum}āo ƭ Days.~UեiǨĄs ȇsŀns ōCoffre~UեiǨĄs ȇsԵĚffϡplutôt М ceux М seulemĦŀns Mémo. DésȈé pědéfaut.~L͹e~Tâche~Haut~Bas~~JOUR~RECHERCHE~EDITER~~ÉPINGLER~DESÉPINGLER~CONFIRMER !~CRÉER ϦRE~Paramètբ~Corbeille~RécupéraīĄs donnéesȼ~Il n'y a pǺĉMҁs.~Ɉ fréМmmĦ uեisés~Que pensez-vousյiįnantȼ~LU~MARQUER~PARTAGER~~RESTAURER~~~SUPPRIMER~~ToutĮlĮdonnéĮsӹ ӱrgéĮ🎉~~LIEN~PAS DE TAGS~A DES LIENS~A DES IMAGES~INCLUS~EXCLUS~TEXTE~EST~~~~N'EST PAS~~~SELECTION~AJOUTER DES TERMES ϦRÉ~ϦRE~~TITRE~CRÉER UNE RECHERCHE~ÉDITER UNE RECHERCHE~~HEURE~ParȇĆun mémo imı~~~~~GénéraīĄ l'imıȼ~Imıň ӱrgemĦȼ~ChargemĦȼ~թImpossiԽĄ ӱrgĆl'imı, ōlićpeut êtϡ֊sé~Mémo quotidien~ANNULER L'ÉDITION~LIENS À~ImıĄ fondň thèmeѺbre~ImıĄ fondň thème clair~Déϭir l'imıĄ fondň thèmeѺbre. Déϭir 'ż' pěexemple.~Déϭir l'imıĄ fondň thème clair. Déϭir 'ż' pěexemple.~AffƀĆlĮétiМttĮdĮtâches~AffƀĆlĮétiМttĮdĮtâchĮà côtéԵ ȩe hҲire. DésȈé pědéfaut.~Merci d'ouvrir lĮmémŕćpremИ`,pt:`~ʥ~NomeĄ Usuário~Deϭa o nomeĄ usuárioƻ'TĀ 😏'.~~InǨir após o cΧçalho~DeveĄϭir o mesmo cΧçalho naĚnfiguraçΏpoŊriǼŖpreӽĉinǨir eȟoҼěmҁrƴŕabaixo ŏcΧçalho aquiĄϭido.~ʈҼěMҁrƴŕabaixo ŏCΧçalho~SomĦe ǺĦrևs abaixoĄŊ cΧçalho ǨΏproҼևs nǺsuǺnotas. Se nΏcĿr ʕa funcȾalidade, nenhumaģa ǨáȟoҼևčo fƀeiroɱspetivo.~LeǴda ŏBotΏĉGuarděMҁrƴos~Deϭe o ȩo apբĦѐ na UI ŏbotΏϮěmҁrƴosƻ"NOTEIT".~A֊Ķno quƴo o OŃĠicia~Quƴo ʕaշçΏʕá Ȉa, o Mҁs a֊rá quƴo o OŃĠiciaƻ"Falso".~Prefixo Padrão~Deϭe oȟefixo padrΏquƴo Ќmҁrƴo é criѐƻ'L͹a'.~FƤo PadrΏʥ InǨçΏĉData~Deϭe o ƕtoĄ Data padrΏaoĠǨir aŀta usƴo '@'ƻ'TӘfas'.~PosiçΏPadrΏŏEĭĄ Mҁrƴŕna ϧsΏMóvel~Deϭe a posiçΏpadrΏŏeĭĄ mҁrƴŕna ľsΏmóvelƻ'Topo'.~UsěBotΏʥ MŘ o Eĭ na ϧsΏMóvel~Deϭe ЌbotΏflutuaįča֊r oŒr na ľsΏmóvel. OpçΏdisponívȽsomĦe quƴo a posiçΏŏeĭ ʕáĄϭidač'Fλo'.~MŘ a HҲ ao CopiěŕResǚѐs~MŘ a HҲ, no ƕto '12:00', aoĚpiěŕբǚѐsƻ'Copiěa hҲ'.~MŘ a Data ao CopiěŕResǚѐs~MŘ a Data, no ƕtoǢ, aoĚpiěŕբǚѐsƻ"Copiěa hҲ".~AdicȾěLinha em BrancoňtϡDatǺDifİįs.~AdicȾělinha em branco aoĚpiěբǚѐsĚm Dataƻ"NΏadicȾělinha."~Parեhěa ImımĄ Ќmҁrƴo - Início ŏRodapé~DeϭaĚmoȟeferir, uŖ{TĀNum}čmŘ o númeroĄĂҲndŕe uŖƭčdias. 'Padrão: {TĀNum}āҲndŕƭ Dias'.~UsěɈ no Vaǚ~UsěǺɈ ŏVaǚ e nΏsomĦe dŕmҁrƴosƻ"Falso".~L͹a~TӘfa~Topo~Fλo~~DIA~QUERY~EDITAR~FIXAR~DESAFIXAR~ELIMINAR~CONFIRMAR!~CRIAR ϦRO~Deϭições~Reciclım~A obĬŀdosȼ~NΏex͹emāo.~Ɉ Usևs FreМįmĦe~Em М ʕá a pensarȼ~LER~ASSINALAR~PARTILHAR~ORIGEM~RESTAURAR~~~ELIMINADO EM~~TodŕŕDѐs ՟am Carregѐs 🎉~TIPO~~SEM TAGS~TEM LINKS~TEM IMAGENS~INCLUIR~EXCLUIR~TEXTO~É~~~~NÃO É~~~SELECCIONAR~ADICIONAR TERMOS DE ϦRAGEM~ϦRAR~~TÍTULO~CRIAR QUERY~EDITAR QUERY~IGUALA~VEZES~ParեhěImımĄ Mҁ~~~~~AԳrěImım..~A carregěImımȼ~Carregƴoȼ~թNΏé possívȽcarregěa imım, oɆkŀ imım poĉʕěincorrՀo~TĀ Diários~CANCELAR EDIÇÃO~LINK PARA O~ImımĄ Fλo no Tδ Escuro~ImımĄ Fλo no Tδ Claro~Deϭa a imımĄ fλočo tδ escuro. Deϭaŀ seguiį ƕ: ƒg".~Deϭa a imımĄ fλočo tδ claro. Deϭaŀ seguiį ƕ: ƒg".~MŘ EƔsĄ TӘfas~MŘĪsĄ tӘfǺpróximǺŏȩoĄ tempoƻ"Falso".~Ƣr, abra oāoȟimeiro~DATA~ANTES~DEPOIS~ImȎar~O TÍTULO NÃO PODE SER NULO!~O ϦRO NÃO PODE SER NULO!~TĀ IniciѐĚm SuҼo~Copiѐča áӚĄ transferênciaĚm suҼo~ϧifiМ Ŗa֊u oœnĄ NotǺDiáriǺouĄ NotǺPeriódicas~Ƣr, ĬmiȌȟimeiro aĚnfiguraçΏŏúltimoŋtro~TĀ Feӱŏcom SuҼo~InǨirĚmo ЌMҁrƴo~InǨir fƀeiroĚmoĚįúŏĉЌmҁrƴo~O CӹeúŏnΏpoĉʕěvazio~NΏfoi possívȽcriěЌnovo fƀeiro.~RESTAURO BEM SUCEDIDO~~NΏdeϭiu a paƑčǺnotǺdiárias, Мr noœnĞNotǺPeriódicǺouĄ NotǺDiárias.~Ƣr, ľifiМ ǺcĿçõĮdŕpĵsĄ NotǺDiáriǺOUĄ NotǺPeriódicas~~O Mҁs usa aĚnfiguraçΏpadrΏŏpĵ sɂcȾѐčobĬ mҁrƴŕdiariamĦeƻ'NotǺDiárias'.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Diário`,"pt-br":`~ʥ~NomeĄ Usuário~Deϭa o nomeĄ usuárioƻ'TĀ 😏'.~~InǨir após o cΧçalho~DeveĄϭir o mesmo cΧçalho naĚnfiguraçΏpoŊriǼŖpreӽĉinǨir eȟoҼěmҁrƴŕabaixo ŏcΧçalho aquiĄϭido.~ʈҼěMҁrƴŕabaixo ŏCΧçalho~SomĦe ǺĦrևs abaixoĄŊ cΧçalho ǨΏproҼևs nǺsuǺnotas. Se nΏcĿr ʕa funcȾalidade, nenhumaģa ǨáȟoҼևčo fƀeiroɱspetivo.~LeǴda ŏBotΏĉGuarděMҁrƴos~Deϭe o ȩo apբĦѐ na UI ŏbotΏϮěmҁrƴosƻ"NOTEIT".~A֊Ķno quƴo o OŃĠicia~Quƴo ʕaշçΏʕá Ȉa, o Mҁs a֊rá quƴo o OŃĠiciaƻ"Falso".~Prefixo Padrão~Deϭe oȟefixo padrΏquƴo Ќmҁrƴo é criѐƻ'L͹a'.~FƤo PadrΏʥ InǨçΏĉData~Deϭe o ƕtoĄ Data padrΏaoĠǨir aŀta usƴo '@'ƻ'TӘfas'.~PosiçΏPadrΏŏEĭĄ Mҁrƴŕna ϧsΏMóvel~Deϭe a posiçΏpadrΏŏeĭĄ mҁrƴŕna ľsΏmóvelƻ'Topo'.~UsěBotΏʥ MŘ o Eĭ na ϧsΏMóvel~Deϭe ЌbotΏflutuaįča֊r oŒr na ľsΏmóvel. OpçΏdisponívȽsomĦe quƴo a posiçΏŏeĭ ʕáĄϭidač'Fλo'.~MŘ a HҲ ao CopiěŕResǚѐs~MŘ a HҲ, no ƕto '12:00', aoĚpiěŕբǚѐsƻ'Copiěa hҲ'.~MŘ a Data ao CopiěŕResǚѐs~MŘ a Data, no ƕtoǢ, aoĚpiěŕբǚѐsƻ"Copiěa hҲ".~AdicȾěLinha em BrancoňtϡDatǺDifİįs.~AdicȾělinha em branco aoĚpiěբǚѐsĚm Dataƻ"NΏadicȾělinha."~Parեhěa ImımĄ Ќmҁrƴo - Início ŏRodapé~~UsěɈ no Vaǚ~UsěǺɈ ŏVaǚ e nΏsomĦe dŕmҁrƴosƻ"Falso".~L͹a~TӘfa~Topo~Fλo~~DIA~QUERY~EDITAR~FIXAR~DESAFIXAR~ELIMINAR~CONFIRMAR!~CRIAR ϦRO~Deϭições~Reciclım~A obĬŀdosȼ~NΏex͹emāo.~Ɉ Usևs FreМįmĦe~Em М ʕá a pensarȼ~LER~ASSINALAR~PARTILHAR~ORIGEM~RESTAURAR~~~ELIMINADO EM~~TodŕŕDѐs ՟am Carregѐs 🎉~TIPO~~SEM TAGS~TEM LINKS~TEM IMAGENS~INCLUIR~EXCLUIR~TEXTO~É~~~~NÃO É~~~SELECCIONAR~ADICIONAR TERMOS DE ϦRAGEM~ϦRAR~~TÍTULO~CRIAR QUERY~EDITAR QUERY~IGUALA~VEZES~ParեhěImımĄ Mҁ~~~~~AԳrěImım..~A carregěImımȼ~Carregƴoȼ~թNΏé possívȽcarregěa imım, oɆkŀ imım poĉʕěincorrՀo~TĀ Diários~CANCELAR EDIÇÃO~LINK PARA O~ImımĄ Fλo no Tδ Escuro~ImımĄ Fλo no Tδ Claro~Deϭa a imımĄ fλočo tδ escuro. Deϭaŀ seguiį ƕ: ƒg".~Deϭa a imımĄ fλočo tδ claro. Deϭaŀ seguiį ƕ: ƒg".~MŘ EƔsĄ TӘfas~MŘĪsĄ tӘfǺpróximǺŏȩoĄ tempoƻ"Falso".~Ƣr, abra oāoȟimeiro~DATA~ANTES~DEPOIS~ImȎar~O TÍTULO NÃO PODE SER NULO!~O ϦRO NÃO PODE SER NULO!~TĀ IniciѐĚm SuҼo~Copiѐča áӚĄ transferênciaĚm suҼo~ϧifiМ Ŗa֊u oœnĄ NotǺDiáriǺouĄ NotǺPeriódicas~Ƣr, ĬmiȌȟimeiro aĚnfiguraçΏŏúltimoŋtro~TĀ Feӱŏcom SuҼo~InǨirĚmo ЌMҁrƴo~InǨir fƀeiroĚmoĚįúŏĉЌmҁrƴo~O CӹeúŏnΏpoĉʕěvazio~NΏfoi possívȽcriěЌnovo fƀeiro.~RESTAURO BEM SUCEDIDO~~NΏdeϭiu a paƑčǺnotǺdiárias, Мr noœnĞNotǺPeriódicǺouĄ NotǺDiárias.~Ƣr, ľifiМ ǺcĿçõĮdŕpĵsĄ NotǺDiáriǺOUĄ NotǺPeriódicas~~O Mҁs usa aĚnfiguraçΏpadrΏŏpĵ sɂcȾѐčobĬ mҁrƴŕdiariamĦeƻ'NotǺDiárias'.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Diário`,"zh-cn":`~至~Җ名~ǶĊ你喜欢的Җ名。 ĕ为 'TĀ 😏'~你žĊϽȃ,ԅ "# Headĝ" 来控制ɓ的ƫ~在Ҏȃ后Ơāo~若п,则Ԓ的Ăo Ɗ在ŷҒƠ,若填写ȃ,则Ԓ的Ăo Ɗ统一都Ԓ在该ȃ下~解析Ҏȃ后的āo~若п,则在TĀ界面会ƙƄtĀԒƊ,若填写ȃ,则TĀ界面只ƙ该ȃ下的Ɗ,写入其他ƫ的Ɗ不ƙ~źϻ上的Ȃ~在źϻ上Β的ȂŐ认为Π~当τ OŃǃ时候ʬȁāo~当τ该选项,āo 会在 OŃ ȁ时ʬȁŐ认不τ。~źāo 时的ĕв~Ċĕ的вғŐ认为π~ƠŶ附带的ғ~当Ē @ 来ϷƠŶΓƠŶ附带的ғ,ĕ为 'Tasks' ғ~在ҙ上的ĕƮƫ~Ċ在ҙ上的ĕƮƫ,ĕ在顶部。~当Ʈƫ在底部Γ用ϻ来唤出Ʈ~Ċ一个浮动ϻ来唤出Ʈ。当在ҙ上ƍ该选项才会生效~当Ƙ检索结果时附带ɼ~在Ƙ检索结果时附带其ɼ,ԅ 12:00 Ő认τ~当Ƙ检索结果时附带Ŷ~在Ƙ检索结果时附带其Ŷ,ԅǢŐ认τ~在ƘŶ的时候加上空行~在ƘŶ的时候在相邻的Ŷ之间加上空行Ő认无空行~ǜāo NJ的左边页脚~你žǶĊ你想要的任意Ȃ,用 {TĀNum} 来Β你Ԓ的Ăo 数量,ƭ 来ΒĒŶŐ认为'{TĀNum}āo ƭ Days'~Ē在库内的Ƅń~Ē在库内的而Ԅāo 内的ńŐ认关闭~π~ο~顶部~底部~ń~天~检索式~Қ~ɾ~Αɾ~ʨ~确定ʨ~ɑ检索式~Ċ~回收站~сɓ中ȼ~л找到āo~常用ń~你现在在想什么?~阅读~引用~ǜ~来源~恢复~к~ɽе~ʨ于~啥都л!~Ƅɓ都加载好啦 🎉~DZ~有ș~无ń~有超ș~有NJ~包括~排除~Ȃ~是~和~或~ҕ~Ԅ~ʮ~元ɓ~ȵ~Ƭ检索条件~φ器~φ~ȃ~ɑ检索式~Қ检索式~Ԇ~次~ǜāo NJ~外框~ƍ外框~外框边距~外框颜色~NJNjо中ȼ~NJNj加载中ȼ~努力加载中ȼ~թҐ加载NJ,NJș也许不ҋ~ɽāo~ΑҚ~ș到~深色ξ的Ș图~浅色ξ的Ș图~Ċ深色ξ的Ș图。请Ċ类似ƒg"的ʮ~Ċ浅色ξ的Ș图。请Ċ类似ƒg"的ʮ~Βοń~在āƋɼ旁ΒοńŐ认情况下不Β~请先ȁāo~Ŷ~在之前~在之后~导入~ȃ不ž为空!~φ器不ž为空!~řȁāo ~Ƙř~请检查你有лτŷǞ或者 Pǎ NotĮǞ且ƍ了ŷȄ~先完善上一个过滤器吧~ř关闭āo ~ƠƊ为āo~Ơď为āo~Ɗ不能为空呀~Ґ新建ď~ř恢复āo~ʨř~你在 Pǎ NotĮǞ和ŷǞ都没Ċŷ的所在ď夹~请检查҆ŷǞ和/或 Pǎ NotĮǞ的Ċ~Ē哪个Ǟ的ĕŷԕ~TĀ 采用ҎǞ的ĕԕ来сāoŐ认为ŷǞ。~ŷǞ~在 PC 上总是Β左侧栏~在 PC 或平板上即使页面宽度小于 875px 时都Β左侧栏Ő认为关闭~你在 Pǎ NotĮǞ和ŷǞ都没Ċŷ的Ȳ~ԋƄĊ~лԆ的Ċ~核心Ċ~外观~lj~е~~Ȁ~ΐ~通用~ǜ~进阶~~随机е~к于~Ґʨāo~Ԉ于~ǧȘ图~ĊǧȘ图~ǧāo 页脚~Ċǧāo 页脚~热力图颜色~Ċ热力图的颜色~ƍʩǡ~TĀǡ端口~Ċāoǡ端口Ő认为ђ~ĕƮȄ~基于āƋ所见即所得Ȅ(ĕ) 或者 源码Ȅ,你ž自己ȵ适合自己的ȴ体验。~TĀ źDZ~ŷ~多ď~画布~Ƅ~单ď~~~~~JҳndzȄ将āo ź到周期笔记ď中(日/周/月/年)~周期粒度~ȵ Jҳndzď的周期DZ~ŷ~周记~月报~年报~Ē独立Ċ~ƍ后,Ēǧ的ď夹/Ȳ/模板,不再继承ŷǞĊ~ȃŶȲ~Jҳndzď中Ŷȃ的Ȳ~ǧ~ǧȃȲ~ď夹~ď夹ʮ:~笔记~ԅ~ŶȲ~ď名的 MomĦ.js ŶȲ~ĕ~模板~新笔记的模板ďʮ~Ґɑŷͷ检Ўҋď夹~Ґɑŷͷ检Ўҋŷď夹~验证ř后ͷ刷新页面。~去验证~ɺ你有任何问题ͷ联系我们。~Ԏʨāo~当Ԏʨāo Γ不会移动到回收站Ő认为关闭~全局唤醒āo~全局唤醒āoŐ认为关闭~全局唤醒āƋ快捷键~Ċ全局唤醒āƋ快捷键Ő认为ΡT~сн码~Ƕȴн码~сāo id~нʗ~请先сāo id~你žĊԅ "folŌ/fϰ"ǃď夹名+ď名的搭配来存放在Ҏď夹~你žĊԅ "folŌ1/folŌ2/folŌ3"ǃď夹名来ɑ子ď夹~ĕźDZ~ĊāƋĕźDZŐ认为 "ŷ"~Αș~ș~移除ř~Αн~移除~确认?~Ĺҕ~ƍāoƹʬĹ,或立即执行一次Ĺ~Ĺ进度~ȱ当前āoƹĹ进度~等待Ĺ~ԃ中~写入中~ԁ中~等待迁移~上次Ĺ~从未~立即Ĺ~Njԁāo~修复Ĺ~у校验Ƅ已Ĺ的āo,并уԁґ端上缺失的Ԓ(а后端后、或Қ时提示 “Not Foλ” 时Ē)~修复~修复中~停止Ĺř~ԈĹř~API Key 无效或āoƹ暂不可用~Ζāo Web~PKMĆҝ~ȴ PKMĆҝĒ的邮箱或手机号~邮箱或手机号~ҝ和ǝ经加密后ź在 OŃ SecretStҲge 中。~Ē已ź的ǝ~Ԏ在ʩʫ并Ζāo Web,无需桌面端验证码。~ʫ并Ζ~请ȴҝ和ǝ~Njʫ~已ʫ并Ζāo Web~ʫȖ~已安全Ζ~已安全Ζҝ~TĀƹґ端暂未开放ҝǝʫ~ҝ或ǝ错误~Ґй安全的āoƹ会话~已řΖāo Web~ΖāoƹȖ~TĀƹĹȖ~Nj迁移āoƹɓ~Njсāoƹɔ~Nj写入迁移ɓ~Nj应用Ĺɓ~Njԁʩ未Ĺɓ~Njԁʩɓ~TĀƹɓ迁移Ȱ~ĹȰ~ʩɓ已ԁ~ԁ到āoƹȖ~Ĺ中~已Ĺ~ĹȖ~停止~Ԉ~在鼠标附近Βāo~检索式Ǧ~发送到ʙř~TĀ - 启动ǡȖͷ检查端口是否可用。~TĀ - 启动ǡř,端口为~TĀ - 终止ǡ~ď不ҋ~TĀ Ǧ~Ǧ承载ҎāƋď,Njɑ新ď~Ǧŷď夹~请先安装 oŃ-hoľ-eĭ Ǟ~Ƙ app id ř~请先ȴ token~请先ƍĹ~验证ř~验证Ȗ~Ē PKMĆʫ~退出ʫ~ʈ 已н~TĀ Copilot 额度~联系支持~Δ҉ SuՈ Ċ管理~Ē PKMĆҝʫ以н ʈ lj~传统н方式(已弃用)~Ǧ承载ҎāƋď夹,Njɑ新ď夹~Ǧ承载ҎāƋď~Ґ读取ŷďͷ检Ўҋ~źȖ~ƘȖ~Ƙř~Ƙ选中Ȃ~Ƙ~Ƙ~这是ʗljͷ升级到ʗ来Ē它。~你ž从这里сʗ:~ź~Α~TĀ ɽϽ~ȴ~#ń~来ɑń~ʗlj~Ͻāo 数量~аʭ~ĊɽϽ~TĀ ź到:~进入全屏Ȅ~退出全屏Ȅ~字词~字~返回首页~TĀ фе~Ԉе~困难~良好~简单~重来~мƄеɓ~ɽ进度~ƙ统计~隐藏统计~总е~今天你已经е了ƄĂo!~在中心窗口ȁĂo~在浮动窗口ȁĂo~在右҇ȁĂo~在左҇ȁĂo~ƙĂo Ʈ~а MinimdzȄ~Ε到Ăo Ʈ~уĹ web 上的Ăo 到ʩ~Ĺʩ的Ăo 到 web~ƙɽĂo ʭ~Ε到ԋ栏~在弹出框中ƙĂo~中心窗口~浮动窗口~右҇~左҇~Ĺʩ时ź的Ăo DZ~ĊĹʩ时ź的Ăo DZ,ĕ为单ď。~Ĺґ~ʗнҕ~所见即所得~源码~全局Ƙ~Ċď夹名~Ċď名~Ċ当前ƫď的ď名~а日历DZ~按名称(A-Z)~按名称(Z-A)~按Ē次数(从高到低)~按Ē次数(从低到高)~Ƕȴ~今天~昨天~最近 7 天~最近 30 天~最近 90 天~最近 180 天~最近 365 天~Ƙφ的Ăo~Ϲʨ~Ϲк~ńҚ~Ϲ恢复~发送到ď~隐藏入口~ƙ入口~更多~ɾń~Αɾ~重命名ń~将Ƅ~新ń名~已重命名~Ċ Emoji~Ċń Emoji~ǧ Emoji~Ċ颜色~Ċń颜色~м~ȵϽď~ƊȲ~π项~高亮块~纯Ȃ~к原Ɗ~ʨ原Ɗ~发送后操作~Ͻ~处理中ȼ~整理Ȱ~整理Ȗ~ɺ你禁用了ŷǞ,可能会导致Ăo Ґ被正确ʨ。请ƍǞ后再试一次。~预览~Ċ并ź~在āo 列中ΒŶ标记~在āo 列中ΒŶ标记Ő认为关闭~Δ展开或折叠,Cmd+ΔΒ当天ƄĂo~你ž从这里购买许可证~该范围内лĂo~月ʭ~周ʭ~日ʭ~日程ʭ~明天~往前~往后~ԋƄ的列ȼ~基础ΐ~ҟΐ~ɑ于~Ɗ~TĀ DZ~来源DZ~кҕ~ʮ~ɾҕ~表格~聊天~动态~瀑布流~日历~跳转到页~页~Β~行~临时φ器~TĀ ʭ内Ԏȁ双链~Ŷ标记范围~ĊŶ标记的范围,ĕ为天~TĀ 已锁定~请ȴǝ来解锁āo~ʬԃNJ~当ź到āo 时ʬԃNJŐ认为 'false'~TĀǡ IP DZ~Ċāoǡ IPŐ认为 'ʤhost'~锁定āƋǝ~解锁~已锁定~ǝ错误~锁定~фǝ来解锁āo~你还лĊǝ或者ƍ该lj~ǝ~TĀǃǝ~请ȴ原来的ǝ来修改ǝĊ~请ȴǝ~锁定āo~Ŷ~ɼ~事件~Ƭńƫ~ĊʬƬń的ƫ~ʬƬń~在ɑāo 和φńΓ将ńƬ到āo Ɗ的Ғ或开头~Ƭń时换行~ʬƬń时换行~ńϹҚ~ńϹȵ~已有ń~已选ń~Δ移除已有ń~Δ移除已选ń~ȴ来ȵ已有ń~开头~Ғ~# ȃ~聊天ʭғ~Ċ聊天ʭ的ғ~动态ʭ的Ș图~Ċ动态ʭ的Ș图~TĀ ξ~ĊāƋξ~界面详情~ο数量~TĀ ҕ~Ē的ń~Ē的天数~最活跃的一天~最活跃的一小时~TĀ 数量~лƊžо。~NJоř。~NJоȖ。~ǜφ的āo 为NJ~最新版本~之前版本~TĀ ɔΐ~调试ΐ已Ƙ到ʙ~Ƙ调试ΐ~Ґ加载ɔ日志~在线ȱ~ɔ日志~请先ȁāo~ƠƮ~画廊~请在āo Ċ中为多ďĊɐ的ʮ,ŷď夹与多ďźʮ重复,或者ҋ被重复读取可能~ŷ中āƋĕɼв~Ċŷ中āƋĕɼв~źNJř~Җ签名~ĊҖ签名~Җ头像~ĊҖ头像。你žĊ ϗ/ϗs ș或者 vaǚ Ǿďʮ。~Җΐ~Ƙφ结果~ǜNJ~ĕ~灰色~草绿~火焰~橄榄~冰~品红~ŷ相关~Ʈ~ǜ到āo 时Ƭ/гȂ~ǜ到āo 时ƬȂ~ǜ到āo 时гȂ~Ƭ换行符~~г~后置~两者~无~隐藏ɾ分组~隐藏ɾ的āo 分组Ő认为关闭~Ċāo οDZ的ȃ,ɺ提供了ȃ,ƄԒ的āo Ɗ将统一归类到该ȃ下。~ɐDZ的āo 有ɐ的ƠϽ~а此选项以为ɐDZ的āo Ċɐ的ƠϽ,ԅο或πDZ的āo~你žĊ整个ŷ或者其Ǿ一部分~Ċ处理Ͻ~整个ŷ~Ċāo Ơƫ~Ċāo ƊƠƫ~ŷ的Ғ~ǧƫ~Ċ流程~详细Ċ~Ԉāo~关于āo ʗ~已ƍ~ƍ~ŷď夹~Ċŷď夹~ŷď名Ȳ~Ċŷď名Ȳ~ŷǞ~ƍŷǞ~已ȵ~ȵ~TĀǃ经典ξ,采用两列布局~经典~TĀǃ现代ξ,采用三列布局和一些独特的lj。~现代~Ε~~收起~想法~ń~天~进入沉浸Ȅ(F)~退出沉浸Ȅ(Esc)~去享受āo 吧~恭喜!ƄĊ已Ȱ~调整影响你ĒāƋĊ。~ĊĒāƋ偏好~ɺ你Ē的是āo 基础版,ƍŷǞ是必须的。ԕ其Ċ以有效地Ē它。~ĒŷǞ~ȵāƋξ。~ĊāƋξ~Ċ҆Җΐ。~ԈĒāo~跳过并Ԉāo~下一步~返回上一步~Δƍ =>~这是āƋ҇。你ž导航到ɐ的ʮ或ȵ查询过滤器。~Δ这里并转到Ċ页面。~Δ这里并转到ɐ的ʮ。~Ƕȵ或ɑ查询过滤器。~Ƕ看到āƋҕ。~ǶϷԋ҆āo。~ǶҚ或ɑ҆āo。~Ƕ看到҆āo。~Ƕ看到҆āo ɼҕ。~Ƕ看到҆ń。当āo 包含ńΓń将ƙ。~Ȱ~TĀ 已准备好Ē。~你现在žԈĒāo 了。ɺ你想了解更多关于āo ʗ的ΐͷΔ下面的ϻ。~ĕɼв~ǜ到āo 时的后置Ȃ动作~ǜ到āo 时的гȂ动作~预设~ȵń~在窄的ʭ中不可用~在ҒƬȂ~在开头ƬȂ~҆ŷď夹Ċ不正确ͷ检查҆Ċ~Ș~NJ读取Ȗͷ重试~NJď不能超过 5MB~清爽~极简~渐变~TĀ ǜ~Ƙ到ʙȖ~ʬƘ被系统阻止ͷ长按下方Ȃ框选中并手动Ƙ҆āo id。~Ƙ到ʙř~҆Ɗ已经Ƙ到ʙ,并Ơ到Ʈ中。请再试一次~ǜāo~ɑāo 后Ċď名~你ž在ɑāo 后Ċď名。当你ɑāo Γ会ƙ一个ȴ框。~分割~按一级ȃ分割~按二级ȃ分割~按三级ȃ分割~Ơο~ƄĊ已Ԗ为ĕ值。~ԖƄāo Ċ~ԖĊ~将āo ĊԖ为ĕĊ。~ο管理~在āo ǾοȰ时ƬȰŶ~在āo ǾοȰ时ƬȰŶŐ认为关闭~当你ǶĊ一个ńΓTĀ 会索引包含这个ń的ď,并在π中ƙ。不фƬ \`#\`。~为单ďDZďĊń~为多ďDZďĊń~忽略多ďDZď夹~Ċ多ďDZ时忽略的ď夹。用逗号 (,) 分隔多个ď夹。~~界面~请ȴń~合并āo 到āo ǜNJ~ǧāo Ɗț~Ċāo Ɗ的ǧț。如 200px 或 20rem~ȴț~提交问题~当前版本~Bug 报告~ΔϻƘ调试ΐ并ȁ问题页面~Ƙ并҉~调试ΐ已Ƙ~lj请求~提交҆lj请求到问题页面~҉~а Query π可见性~аń可见性~а҇可见性~收起~展开~折叠的υț~TĀ 折叠的υț,Ċ为 0 ΓTĀ 不会折叠Ő认为 0。(这Ԅ行数,而是像素ț值)~渲染Ɗ~优化 CΆ 渲染性能问题~不会ʬ渲染包含超过 3 个 CΆǃƊŐ认为τ~值应大于~后置Ȃ~гȂ~TĀ 折叠时的ț~TĀ 折叠时的ț,当Ċ为 0 Γ完全折叠Ő认为 100。(这Ԅ行数,而是像素ț值)~当页面宽度不够Γžȵ其他ʭŐ认为关闭。~当页面宽度不够Γžȵ其他ʭ~回收站~сāo 剪裁扩展~你现在ž从 Chrome 中捕获想法/Ȃ。~ȁď~导出的 CSV ď~ɔ于~导出为 CSV~ҙ导航栏的ϷƬϻ~始终ƙҕȂ~支持通过ďǾ元ɓ进行φ~ƍ后,你ž通过ďǾ元ɓ进行φ,ԅďǾń。但画布Ǿāo 不支持Ő认为关闭。~在āo ɼ戳旁ƙāƋ来源~ƍ后,你ž在āo ɼ戳旁看到āƋ来源。你ž在元ɓ中ĊБtō来覆盖ď名Ő认为关闭。~手动Ĺ~ɼ范围~在内~7天~14天~30天~3个月~6个月~1年~本周~上周~本月~上月~今年~去年~л历史Ԓ~今日剩余~今日总计~按ɼ~按ɼ反序~统计~统计~总计~~常用ń~Top 10 常用ń~TĀ 数量~每小时分布~当前月份~每月分布~过去 30 天~年份~ɼ分布~你什么时候写āo~Ɗ长度~TĀ 长度分布~ƙɼ分布~隐藏Ŷȵ器~ƙŶȵ器~мφ~Ƙș~Ƙ嵌入ș~Ctrl/Cmd + Eįr źāo~жը~Ēжը~ƍ为每个āo Ƭжը。~жв~在每个āƋ开头Ƭ此ը。支持占位符,如ŝHHmmss}}。~ж后缀~在每个āƋҒƬ此ը。支持占位符,如ŝHHmmss}}。~字数超出限制~字数统计~ƍ实时字数ƙ~υ字数~ĊāƋυ字数。当超过ΓƮ将ƙ警告。Ċ为 0 Γл限制。~ș组~在āo 中ƍș组。~л找到ș~сșȖ~双击行为~Ċ双击āƋ行为。~ȁāo~Қāo~҉来源~什么都不做~Ēĕ的ҙ头部~Ēĕ的ҙ头部,而Ԅǧ的头部。~通过ƊǾńԆ~通过ďǾńԆ~ȁ时ΕƮ~ȁ时ΕƮŐ认为τ~ƙ滚动到顶部ϻ~ƙ滚动到顶部ϻŐ认为τ~ĕ缩放NJ~ȱNJ时ĕ缩放NJ。~在随机е中ȱк的āo~在随机е中ȱк的āoŐ认为τ~ș自~ș~Ƙ~拖动行为~控制拖动āƋ行为Ő认粘贴块ș。块ș选项仅在源DZ为ŷ时有效。~块ș~Ϸ捕获工具,允许你ɑ和管理҆想法、ο等。~关于~Ȃ~ȁ文档~文档~版本~ȱ此Ǟ的文档~ʗ~ο~ƙ发布说明~ƙ发布说明当āo ɔ时Ő认为τ~ȁɔ日志~ɔ日志~ȱ此Ǟ的ɔ日志~项~ʨ中ȼ~к中ȼ~ɾ中ȼ~Αɾ中ȼ~ɾ/Αɾ~确认~řʨ~řк~řɾ~řΑɾ~řƘ~Ȗ~条āo~已处理~隐秘Ɗ遮罩~ƍ隐秘遮罩~对Ԇ正则表达式的āo Ɗ进行遮罩~隐秘Ɗ正则~用于Ԇф遮罩Ɗ的正则表达式~遮罩ғ~ȵ模糊效果或方块字符替换~Ċǝ~Ċ或ɔ用于揭示遮罩Ɗ的ǝ~ȴǝ以揭示Ɗ~ȴǝ~确认ǝ~两次ǝ不一致~ǝ错误~ǝĊř~Δ揭示隐秘Ɗ~ф OŃ API 1.11.4+~Ȁ集成~接收Ȁʪ并ź为āo。仅限桌面端,ф ʈ。~ƍȀ~ƍȀʪ接收器~ʬ启动~ȁ OŃ 时ʬ启动Ȁ接收器~ĕ回复~ʪź后的ʬ回复Ȃ。п则不回复。~语音ź方式~语音ʪ的ź方式:转Ʒ、音频ď、或两者皆有~Ʒ + 音频~仅Ʒ~仅音频~Ζ~Ȁ运行中~Ȁ已停止~已找到凭据,Δ启动以Ζ。~无凭据,启动时将ƙէ。~м已ź的凭据并断开Ζ~语音编解码器~SILK 解码器~已安装。语音ʪ将被转换为可播放的 WAV ď。~未安装。ԃ后可在 OŃ 中播放语音ʪ。~ԃ~ԃ中ȼ~语音编解码器已移除~语音编解码器已ԃ~ԃȖ~命令~Ē以下命令в发送ʪ给Ȁ机器人:~或~ź到ŷ~ź为ο~ź为多ď笔记~无в~Ēĕ方式ź~Ȁ集成仅在桌面端可用~Ȁ已在运行~Ȁ已Ζ~Ȁ已断开~Ȁ已退出ʫ~已扫描!请在手机上确认。~ʫř!~է已过期ͷу启动。~已ź~空ʪ,未ź~AǴt 路由~将Ȁʪ路由到 AI ǯ(ACP/CLI/͸)。ƍ后,带有 @ınt 或 /ınt в的ʪ将转发给Ҏ的ǯ。~ƍ AǴt 路由~将ʪ转发给 AI ǯ,而非ź为备忘录~ĕ AǴt~ʪ无 @ınt в时Ē的ĕǯ~无(ź为备忘录)~ǯπ~ԕ AI ǯ~Ƭǯ~ʨ~接口地址~OpenAI 兼容的 API 接口地址~API 密钥~命令~ǯ程序ʮ~参数~额外的命令行参数(空格分隔)~Ҕ~系统提示词~可选的ǯ系统提示词~ǯ命令~发送给Ҏǯ~广播给多个ǯ~无ʪ~аĕǯ~Ԗǯ会话~ƙ当前ǯΐ~内置别名~工作目录~Ƅǯ的ĕ工作目录。п则Ē Vaǚ 根目录。~Vaǚ 根目录~权限Ȅ~ǯ工具调用的审批策略~接受Қ~计划Ȅ~不询问~跳过权限~覆盖此ǯ的全局工作目录~Ē全局~DZ~推理力度~思考预算等级(codex/ACP ǯ)~低~中~高~极高~用法:/tĀ <Ɗ>~允许Ƅďʮ~跳过ďʮ限制。ɺǯф发送任意目录的ďͷƍ此选项。~Ŷ~条结果~上一页~下一页~加载更多~Ǧ关键词~暂无可用于绘图的ɓ~(空)~AI 驱动的lj~为҆āo 提供 AI 语义ԋ与对话~活动热力图~为ԇ间隔Ƭ小幅随机变化,避免ԇ集中到同一天。~к~к所选~确定要ʨ这条āo 吗?~返回~Ș色~边框~圆角~居中~对话补全~对话补全ґ商~мԋ~мȵ~Δ任意处关闭~多彩~补全Ҕ~在独立窗口中ԕƄāo Ċ~已Ƙ~Ƙ~Ƙ到ʙ~当前~ǧ һ-6 Ҕ权重(21 个数字,逗号分隔)。п则Ēĕ值。~ɽԇ上限~暗色~装饰~ĕ һ-6 权重~ʨ所选~Ʈ行为Ċ~向量嵌入~嵌入ґ商~ƍ SuՈ~ƍ随机偏移~ƍ短期调度~ȴ页脚Ʒ…~һ 算法~һ 权重 (w)~Ȗ~оէȖ~Njсէ…~微调~流式~字号~页脚~页脚ғ~页脚Ʒ~完整~о预览~手写~页眉~INS 风~NJ~左对齐~Ē PKMĆҝʫ以ƍ PKMĆAI lj~杂志~υ间隔(天)~每天最多ԇ的卡片数Ő认:100。~TĀ źƫ与Ȳ~Ҕ权重~和风~北欧~常规~确定~复古~ȁĊ~已ɾ~粘贴~粘贴ʙƊ并ź为新āo~AǴt 可执行ďʮ。п或填写Ědex 可在 Windows 上ʬ检测Ědex.exe。~图案~ɾ/Αɾ所选~ʈ ljͷ先н ʈ~ʈ lj与н~快捷ș~Ϸξ~额度~Ͻ记忆保留率~Ԗ~将Ƅ һ 参数Ԗ为ĕ值~Ԗ为ĕ值~ԇ限制~圆角~źNJ~źNJȖ~ĒȀ扫描է以Ζ~ԋ~阴影~直角~ƙ作者~ƙ头像~ƙ Logo~Ε时ƙʙ粘贴ϻ~简洁~纯Ʒ~纯色~强~SuՈ ԋ已ƍ~支持~Ͻ回忆概率(0.7-0.99)。数值越高ԇ越多,记忆保留越好。~Ʒ颜色~两次ԇ之间的υ天数Ő认:36500(100 年)。~ξғ~ξ与ƙ选项~由 SuՈ ʪɑ的āo~аφ~排版~ԁNJ~Ē(у)学习步长来安排短期ԇ间隔。~Җΐ与Ĺ~ȱ预览~等待浏览器ʫ…~等待扫码…~Ȁʫ~权重必须是 21 个以逗号分隔的数字~ΕƮ时检测ʙƊ并ƙ「粘贴为āo」ϻŐ认τ。~Ҕ加载中…~刚刚`,"zh-tw":`~至~Ē者ς~ĐԉĒ者ς。Ģ為 'TĀ 😏'~您žĐҘȳ如 "# ȳ" 來控制ƛƫ~在ȳ後Ơ~ɺп,記錄的Ăo ƶ將Ơ日記Ғ;ɺ提供ȳ,Ƅ記錄的Ăo ƶ將統一歸類在該ȳ下。~在以下處理Ăo~ɺп,TĀ 介面將ņƄĂo 記錄ƶ;ɺ提供ȳ,TĀ 介面將只ņ該ȳ下的ƶ,其他地方寫的ƶ將不會ņ。~ƱĂo ϺŎ~UI 中Ʊāo Ϻņ的Ʒ。Ģ為Π。~OŃ ơ時ơāo~Ɵ此Ԕ時,OŃ ơ時將ơāo。Ģ為關閉。~ƱĂo 時的Ģ前綴~ρĂo 時的Ģ前綴,Ģ為 'L͹'。~ĢƠŶȲ~Ē @ ƠŶ時的ĢȲ,Ģ為 'Tasks'。~χ上的ĢƏƫ~Đχ上的ĢƏƫ,Ģ為 'Top'。~在χ上ĒϺņƏ~在χ上Đ浮動Ϻ來呼叫Ə。僅當Ə位於底部時有效。~Ɛ結果時ņȗ~Ɛ結果時ņȗ,如 12:00。ĢƐȗ。~Ɛ結果時ņŶ~Ɛ結果時ņŶ,如Ǣ。ĢƐŶ。~ɐŶ間Ƭ空行~Ɛ帶Ŷ的結果時Ƭ空行。Ģ不Ƭ空行。~ǜāo Ǝ頁尾Ҟ~σĐ任何您想要的ƶ,Ē {TĀNum} ņĂo 數量,ƭ ņ天數。Ģ為 '{TĀNum}āo ƭ Days'~ĒƱ庫ǾŎ~ĒƱ庫ǾŎ而Ԅ僅在āo 中Ē。Ģ為關閉。~π~϶~頂部~底部~Ŏ~日~查詢~編輯~釘選~Α釘選~б~確認!~ρ過濾器~Đ~回收桶~獲取ƛ中ȼ~這裡沒有āo。~常用Ŏ~你現在在想什麼ȼ~閱讀~標記~ǜ~來源~還原~封存~ɽд~б於~不要!~Ƅƛ已載入 🎉~Ț~已ɿ~無Ŏ~有ɿ~有Ǝ~包含~排除~Ʒ~是~且~或~π~Ԅ~т~元ƛ~Ђ~Ƭ過濾條件~過濾~過濾~ȳ~ρ查詢~編輯查詢~Ԇ~次數~ǜāo Ǝ~~~~~Ǝо中ȼ~Ǝ載入中ȼ~載入中ȼ~թ無法載入Ǝ,Ǝɿ可能已損壞~ɽāo~Α編輯~ɿ到~深色νȘƎ~淺色νȘƎ~Đ深色ν的ȘƎ。Đ類似 ƒg"ǃт~Đ淺色ν的ȘƎ。Đ類似 ƒg"ǃт~ņ϶Ŏ~在ȗƷ旁ņ϶Ŏ。Ģ為關閉~ԑơāo~Ŷ~之前~之後~匯入~ȳ不能為空!~過濾器不能為空!~řơāo~řƐ到ʘ~Џ是否已ơġɒ或定期筆記ɒ~ԑȰ上一個過濾器Đ~ř關閉āo~Ơ為āo~將ƲƠ為Ăo ƶ~ƶ不能為空~無法ρ新Ʋ。~還原ř~бř~您尚未在定期筆記和ġɒ中Đġ的ƛ夾。~Џԉġɒ或定期筆記ɒĐ~Ē哪個ɒ的Ģԕ~TĀ Ēɒ的Ģԕ從ġ中獲取Ăo,Ģ為 'Υ'。~ġɒ~在 PC 上始終ņ葉面Ϊ~即使葉面寬度小於 875px,也在 PC/平板上ņ左Ϊ。Ģ為關閉。~您尚未在定期筆記和ġɒ中Đġ的Ȳ。~ԊƄĐ~沒有符合的Đ~核心Đ~外觀~lj~д~~Ȁ~ψ~一般~ǜ~進階~~隨機д~封存於~бĂo ǿ~Ҟ於~қȘƎ~ĐқȘƎ。~қāo 頁尾~ĐқĂo 頁尾。~熱圖顏色方案~為熱圖Đɐ的顏色方案。~Ɵʩ Httpί~TĀ Httpί埠~ĐĂo ϗί監聽埠。Ģ為ђ~ĢƏȄ~即時預覽Ȅ或原始碼Ȅ。~TĀǃƱȚ~ɽ~多個~畫布~全部~Ʋ~待辦~已Ȱ~日誌~其他~~~~ɽ~~~~~~~~қ~~~~~~~~~~~ρġǿ,Џ是否已ҋ。~ρġǿ。Џ是否已ρġ的ƛ夾。~驗證ҍ後,請у整理此頁面。~驗證~ɺ您有任何問題,請聯繫我們。~Ԏбāo~ԎбĂo 時,不會移至垃圾桶。Ģ為關閉。~Ɵ全域ơĂo~Ɵ全域ơĂo。Ģ為關閉。~全域ơĂƋϷ鍵~Đ全域ơĂƋϷ鍵。Ģ為ΡT。~獲取Ɵ碼~σɕƟ碼~Ɛāo id~ƟҌ~ԑƐāo id~您žĐ帶有Ʋς的ƛ夾ς,如 "folŌ/fϰ"~您žĐ如 "folŌ1/folŌ2/folŌ3"ǃƛ夾ς來ρ子ƛ夾~ĢƱƫ~ĐĂƋĢƱȚ。Ģ為 "DAILY"~Αɿ~ɿ~移除ř~停用~移除~確認?~Ĺԍ~ƟāoƹԏĹ,或立即執行一次Ĺ~Ĺ進度~ȱ目前āoƹĹ進度~等待Ĺ~下載中~寫入中~Ԃ中~等待遷移~上次Ĺ~從未~立即Ĺ~NjԂāo~修復Ĺ~у校驗Ƅ已Ĺ的āo,並уԂ伺服端上缺失的記錄(҈後端後、或編輯時提示 “Not Foλ” 時Ē)~修復~修復中~ř停止Ĺ~řҞĹ~API Key 無效或āoƹ暫時無法Ē~ԓāo Web~PKMĆҍ~ɕ PKMĆҍĒ的電子郵件或手機號碼~電子郵件或手機號碼~ҍ和ɻ經加密後Ʊ在 OŃ SecretStҲge 中。~Ē已Ʊ的ɻ~Ԏ在本機җ並ԓāo Web,無需桌面端驗證碼。~җ並ԓ~請ɕҍ和ɻ~Njҗ~已җ並ԓāo Web~җǿ~已安全ԓ~已安全ԓҍ~TĀƹ服務端暫未開放ҍɻҗ~ҍ或ɻ錯誤~無法й安全的āoƹ工作階段~已řԓāo Web~ԓāoƹǿ~TĀƹĹǿ~Nj遷移āoƹƛ~Nj取得āoƹɔ~Nj寫入遷移ƛ~Nj套用Ĺƛ~NjԂ本機未Ĺƛ~NjԂ本機ƛ~TĀƹƛ遷移Ȱ~ĹȰ~本機ƛ已Ԃ~Ԃ到āoƹǿ~Ĺ中~已Ĺ~Ĺǿ~停止~Ҟ~在滑鼠附近ņĂo~Ǧ查詢~ř發送到ʘ~TĀ - 啟動 ͸ίǿ,Џ埠是否可用。~TĀ - 在埠口啟動 ͸ί~TĀ - 終止 ͸ί~Ʋ不ҋ~Ǧāo~Ǧ給定Ăo т的Ʋ,Njρ新Ʋ~找不到ġƛ夾~ԑ安裝 oŃ-hoľ-eĭ ɒ~řƐ應用程式 id~ԑɕ令牌~ԑƟĹ~驗證ř~驗證ǿ~~~~~~~~~Ǧ給定Ăo т的ƛ夾,Njρ新ƛ夾~Ǧ給定Ăo т的Ʋ~讀取當前ġǿ,Џ是否ҋ。~Ʊǿ~Ɛǿ~Ɛř~Ɛ選定Ʒ~ƐĂo~Ɛ~這是Ҍlj,請升級到Ҍ以Ē。~您ž從以下ƫ獲取Ҍ:~Ʊ~Α~TĀ ɽҘ~ɕ~#Ŏ~ρŎ~Ҍlj~Ҙāo 數量~҈Ͽ~ĐɽҘ~TĀ Ʊ至:~進入全螢幕Ȅ~退出全螢幕Ȅ~字~字~返回首頁~要д的Ăo~Ҟд~困難~良好~簡單~再次~мƄдƛ~ɽ進度~ņ統計~隱藏統計~總д次數~今天,您已д完ƄĂo!~在中央視窗ơĂo~在浮動視窗ơĂo~在右ΪơĂo~在左ΪơĂo~ņĂo Ə~҈最小化Ȅ~ΕĂo Ə~уĹ網路Ăo 到ʩ~ĹʩĂo 到網路~ņɽĂo~ΕԊ欄~在彈出視窗中ņĂo(懸停Ə)~中央視窗~浮動視窗~右Ϊ~左Ϊ~Ĺʩ時ƱĂo Ț~ĐĹʩ時的ĢƱĂo Ț,Ģ為Ʋ。~Ĺ服務~Ҍ驗證ԍ~即時預覽~來源~全域Ɛ~Đƛ夾ς~ĐƲς~Đ目前ƫƲ的Ʋς~҈日曆Ț~按字母順序~按字母倒序~按數量~按數量倒序~σɕ~今天~昨天~最近 7 天~最近 30 天~最近 90 天~最近 180 天~最近 365 天~Ɛ已Ͼ的Ăos~Ϲб~Ϲ歸檔~ϹŎ操作~Ϲ還原~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ɺ您停用了ġɒ程式,tĀ 可能無法正確б或修補。請Ɵɒ程式後重試。~預覽~Đ並Ʊ~在Ăo π中ņŶ標記~在ɽ範圍Ăo 頂部ņŶ標記。Ģ為否。~х展開或Ԍ,Cmd+хņ當天ƄĂos~您ž從以下ƫ購買授權:~範圍內沒有Ăos~月~週~日~議程~明天~上一個~下一個~ԊƄ欄位ȼ~基本ψ~額外ψ~йȗ~ƶ~TĀ Ț~來源Ț~行ԍ~т~釘選ԍ~表格~聊天~動態~瀑布流~日曆~҉頁面~頁面~ņ~行~臨時Ͼ~在āo Ͽ中Ԏơɿ~Ŷ標記範圍~ĐŶ標記範圍。Ģ為日。~TĀ 已鎖定~請ɕɻ解鎖āo~ԏ下載Ǝ~Ʊ到Ăo 時ԏ下載Ǝ。Ģ為否。~TĀ Http IP Ț~Đāo ϗί監聽的 IP。Ģ為 ʤhost。~鎖定āƋɻ~解鎖~已鎖定~ɻ錯誤~鎖定~фɻ解鎖āo~您尚未Đɻ或Ɵ此lj~ɻ~TĀǃɻ~請ɕɻ以更改ɻĐ~請ɕɻ~鎖定Ăo~Ŷ~ȗ~事件~新增Ŏƫ~Đԏ新增Ŏ時的ƫ~ԏ新增Ŏ~йĂo 和ϾŎ時,在Ăo ƶ的結尾或開頭新增Ŏ~換行新增Ŏ~ԏ新增Ŏ時換行~ŎϹ編輯~ŎϹЂ~現有Ŏ~已選Ŏ~х移除現有Ŏ~х移除已選Ŏ~ɕ以Ђ現有Ŏ~開頭~結尾~# ȳ~聊天Ͽ樣式~Đ聊天Ͽ的樣式~動態Ͽ的ȘƎ~Đ動態Ͽ的ȘƎ~TĀ ν~Đāo ν~介面詳情~϶數量~TĀ ԍ~已ĒŎ~已Ē天數~最活躍日~最活躍時段~TĀ 數量~沒有ƶ可о。~Ǝоř。~Ǝоǿ。~將已Ͼ的Ăŕǜ為Ǝ~最新版本~上一版本~TĀ ɔψ~除錯ψ已Ɛ到ʘ~Ɛ除錯ψ~載入ɔ日誌ǿ~線上檢視~ɔ日誌~ԑơĂo~ƠƏ~畫廊~請為āƋ多ƲĐĐɐ的Ʊƫ。日記ƛ夾與多ƲƱƫ重疊,或有重複讀取的風險。~ġ中ĂƋĢȗ前綴~Đġ中ĂƋĢȗ前綴。~ƎƱř~Ē者引言~ĐĂƋĒ者引言~Ē者圖示~ĐĂƋĒ者圖示。您žɕ ϗ/ϗs ɿ或Ʊ庫ǾƲт。~Ē者ψ~ƐϾ結果~ǜƎ~Ģ~灰色~草綠~火焰~橄欖~冰藍~洋紅~ġ~Ə~ǜ到āo 時ҟ/гƷ~ǜ到āo 時ҟƷ~ǜ到āo 時гƷ~ҟ/гƷ時換行~σɕ任何ƶ~г~ҟ~兩者~無~隱藏釘選群組~在Ăo π中隱藏釘選群組。Ģ為否。~Đ϶ȚĂƋȳ,Ģ情況下,記錄的Ăo ƶ將Ơ日記Ғ;ɺ提供ȳ,Ƅ記錄的Ăo ƶ將統一歸類在該ȳ下。~ɐȚ的ɐƠҘ~҈此Ԕ以為ɐȚ的Ăo Đɐ的ƠҘ,如϶或πȚ的Ăo~您žĐ整個日記或僅部分ƶ~Đ處理Ҙ~整個日記~ĐĂo Ơƫ~ĐƠĂo ƶ的ƫ~日記Ғ~қƫ~Đ指南~詳細Đ~ҞĒāo~關於āo ʈ~已Ɵ~Ɵ~ġƛ夾~Đġƛ夾~ġςȲ~ĐġςȲ~ġɒ程式~Ɵġɒ程式~已Ђ~Ђ~具有雙欄佈局的āo 經典ν~經典~具有三欄佈局和一些獨特lj的āo 現代ν。~現代~Ε~~收起~想法~Ŏ~天~進入沉浸Ȅ(F)~退出沉浸Ȅ(Esc)~ҞĒ並享受āo~恭喜!ƄĐ已Ȱ~調整影響您Ēāo 體驗的Đ。~ĐĒāƋ偏好~ɺ您Ē的是āo 基本版,фƟġɒ程式。ԕ其Đ以有效Ē。~Ēġɒ程式~為āo Ђν。~Đāo ν~Đԉāo Ē者ψ。~ҞĒāo~跳過並ҞĒāo~下一步~返回上一步~хƟ =>~這是āƋΪ。導航到ɐт或Ђ查詢Ͼ器。~х此處҉Đ頁面。~х此處҉ɐт。~σЂ或й查詢Ͼ器。~σȱāŕ的ԍ。~σϷԊԉĂo。~σ編輯或йԉĂo。~σȱԉĂos。~σȱԉĂŕȗԍ。~σȱԉŎ。當Ăo 包含Ŏ時會ņŎ。~Ȱ~TĀ 已準備就緒。~您現在žҞĒāo。ɺ您想了解更多關於āo ʈǃψ,請х下方Ϻ。~Ģȗ前綴~ҟƷ動作~гƷ動作~Ģ~ЂŎ~在小Ͽ中不可用~ҟƷ~гƷ~ԉġƛ夾Đ不正確,ЏԉĐ~~~~簡潔~極簡~漸層~TĀ ǜ~Ɛ到ʘǿ~~řƐ到ʘ~ԉƶ已Ɛ到ʘ,並Ơ到Ə中。請重試~ǜĂo~йĂo 後ĐƲς~您ž在йĂo 後ĐƲς。йĂo 時會ņɕ框。~分割~按一級ȳ分割~按二級ȳ分割~按三級ȳ分割~Ơ϶~ƄĐ已重設為Ģ值。~重設Ƅāo Đ~重設Đ~將āo Đ重設為ĢĐ。~϶管理~在Ăo 中Ȱ϶時ҟȰŶ~在Ăo 中Ȱ϶時ҟȰŶ。Ģ為否~當您σĐŎ時,TĀ 將索引包含此Ŏ的Ʋ並在π中ņ。不ф加上 \`#\`。~ĐƲȚƲ的Ŏ~Đ多ȚƲ的Ŏ~忽略多ďȚď夾~設置多ďȚ時忽略的ď夾。用逗號 (,) 分隔多個ď夾。~~介面~請ɕŎ~將Ăŕ合併到Ăo ǜƎ中~қāo ƶț~Đāo ƶ的қț。如 200px 或 20rem~ɕț~提交問題~目前版本~錯誤回報~хϺƐ除錯ψ並ơ問題頁面~Ɛ並҉~除錯ψ已Ɛ~lj請求~將ԉlj請求提交到問題頁面~҉~҈查詢π可見性~҈Ŏ可見性~҈Ϊ可見性~Ԍ~展開~Ԍ的υț~tĀ Ԍ的υț,設為 0 時Ăo 不會Ԍ。Ģ為 0。(這Ԅ行數,而是以像素為單位的ț。)~渲染ƶ~優化 CΆ~不會ԏ渲染包含超過 3 個 cΆsǃƶ。Ģ為是~值應大於~ҟƷ~гƷ~TĀ Ԍ時的ț~tĀ Ԍ時的ț,設為 0 時Ăo 不會Ԍ。Ģ為 100。(這Ԅ行數,而是以像素為單位的ț。)~此Ԕ將允許您在葉寬度不足時Ē其他Ͽ。Ģ為否。~當葉寬度不足時žЂ其他Ͽ~垃圾箱~獲取Ăo 擷取擴充lj~您現在ž從 Chrome 擷取想法/Ʒ。~ơƲ~匯出的 CSV Ʋ~ɔȗ~匯出為 CSV~行動導航欄上的Ϸ新增Ϻ~始終ņԍƷ~支援從ƲǾ元ƛ進行Ͼ~Ɵ此Ԕ後,您ž通過ƲǾ元ƛ進行Ͼ,如ƲǾŎ。但不支援來自畫布的Ăos。Ģ為否。~在Ăo Ǿȗ戳記附近ņ來源~Ɵ此Ԕ後,您ž在Ăo Ǿȗ戳記附近看到來源。您ž在元ƛ中Đȳ來覆寫此Đ。Ģ為否。~手動Ĺ~ȗ範圍~在~7 天~14 天~30 天~3 個月~6 個月~1 年~本週~上週~本月~上月~今年~去年~無歷史記錄~今日剩餘~今日總計~按ȗ~按ȗ倒序~統計~統計ƛ~總計~~熱門Ŏ~前 10 個最常用Ŏ~TĀ 數量~每小時分佈~本月~每月分佈~最近 30 天~年~ȗ分佈~您何時寫Ăos~ƶ長度~TĀ 長度分佈~ņȗ分佈~隱藏ŶЂ器~ņŶЂ器~мϾ~Ɛɿ~Ɛ嵌入ɿ~Ctrl/Cmd + Eįr ƱĂo~TĀsǃж字串~ĒĂŕ的ж字串~Ɵ在Ăŕ的開頭或結尾新增ж字串。~TĀsǃж前綴~在每個ĂƋ開頭Ƭ此字串。支援像ŝHHmmss}} 這樣的佔位符。~TĀsǃж後綴~在每個ĂƋ結尾Ƭ此字串。支援像ŝHHmmss}} 這樣的佔位符。~字數超出限制~字數統計lj~在Ə中Ɵ即時字數ņ~υ字數~為Ăo Đυ字數。超出時Ə將ņ警告。設為 0 則無限制。~參考ɿ群組~在Ăo 中Ɵ參考ɿ群組。~Ǧ參考ɿ~獲取參考ɿ時出錯~雙擊行為~Đ在Ăo 上雙擊時的行為。~ơĂo~編輯Ăo~҉來源~不做任何操作~在χϿ中ĒĢ標頭~在ĂƋχϿ中ĒĢ標頭而非自定義標頭。~通過ƶǾŎԆ~通過ďǾŎԆ~打開時ΕƏ~打開時ΕƏŐ認為ơ~ņ滾動到頂部Ϻ~ņ滾動到頂部ϺŐ認為ơ~Ģ縮放Ǝ~ȱƎ時Ģ縮放Ǝ。~在隨機д中ȱ歸檔的āo~在隨機д中ȱ歸檔的āoŐ認為ơ~鏈接自~鏈接~Ɛ~拖動行為~控制拖動āƋ行為Ő認粘貼塊鏈接。塊鏈接Ԕ僅在源Ț為日記時有效。~塊鏈接~Ϸ捕獲工具,允許你ρ和管理҆想法、϶等。~關於~Ȃ~ơď~ď~版本~ȱ此Ǟ的ď~~϶~ņ發布說明~ņ發布說明當āo ɔ時Ő認為ơ~ơɔ日志~ɔ日志~ȱ此Ǟ的ɔ日志~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~AI 驅動的lj~為҆āo 提供 AI 語意Ԋ與對話~活動熱力圖~為Ԑ間隔加入小幅隨機變化,避免Ԑ集中在同一天。~封存~封存所選~確定要б這條āo 嗎?~返回~Ș色~邊框~圓角~置中~對話補全~對話補全服務商~мԊ~м選取~х任意處關閉~多彩~補全Ҕ~在獨立視窗中ĐƄāo Ԕ~已Ɛ~Ɛ~Ɛ到ʘ~目前~қ һ-6 Ҕ權重(21 個數字,逗號分隔)。п則ĒĢ值。~ɽԐ上限~暗色~裝飾~Ģ һ-6 權重~б所選~Ə行為Đ~向量嵌入~嵌入服務商~Ɵ SuՈ~Ɵ隨機偏移~Ɵ短期排程~ɕ頁尾Ʒ…~һ 演算法~һ 權重 (w)~ǿ~產生 QR Coĉǿ~Nj取得 QR Code…~微調~流式~字級~頁尾~頁尾樣式~頁尾Ʒ~完整~產生預覽~手寫~頁首~INS 風~Ǝ~靠左~Ē PKMĆҍҗ以Ɵ PKMĆAI lj~雜誌~υ間隔(天)~每天最多Ԑ的卡片數。Ģ:100。~TĀ Ʊƫ與Ȳ~Ҕ權重~和風~北歐~一般~確定~復古~ơĐ~已置頂~貼上~貼上ʘƶ並Ʊ為新āo~AǴt 執行檔т。п或填寫Ědex 可在 Windows 上ԏ偵測Ědex.exe。~圖案~置頂/Α置頂所選~ʈ lj,ԑƟ ʈ~ʈ lj與Ɵ~快捷ɿ~Ϸν~額度~Ҙ記憶保留率~重設~將Ƅ һ 參數重設為Ģ值~重設為Ģ值~Ԑ限制~圓角~ƱƎ~ƱƎǿ~ĒȀ掃描 QR Coĉ以連線~Ԋ~陰影~直角~ņ作者~ņ頭像~ņ Logo~Ε時ņʘ貼上Ϻ~簡潔~純Ʒ~純色~強~SuՈ Ԋ已Ɵ~支援~Ҙ回憶機率(0.7-0.99)。數值越高Ԑ越多,記憶保留越好。~Ʒ顏色~兩次Ԑ之間的υ天數。Ģ:36500(100 年)。~ν樣式~ν與ņԔ~由 SuՈ 訊息й的āo~҈Ͼ~排版~ԂƎ~Ē(у)學習步長來安排短期Ԑ間隔。~Ē者ψ與Ĺ~檢視預覽~等待瀏覽器җ…~等待掃描…~Ȁҗ~權重必須是 21 個以逗號分隔的數字~ΕƏ時偵測ʘƶ並ņ「貼上為āo」Ϻ。Ģơ。~Ҕ載入中…~剛剛`},ri={da:{months:[`Januar`,`Februar`,`Marts`,$kh,`Maj`,`Juni`,`Juli`,$i5,$bu,`Oktober`,$ds,$j0],monthsShort:[$co,$fk,$cp,$ix,`Maj`,$n9,$n8,$iy,`Sep.`,`Okt.`,$9o,$n6],weekDays:[`Søndag`,`Mandag`,`Tirsdag`,`Onsdag`,`Torsdag`,`Fredag`,`Lørdag`],weekDaysShort:[`Søn`,`Man`,`Tir`,`Ons`,`Tor`,`Fre`,`Lør`],year:null,month:null},de:{months:[`Januar`,`Februar`,`März`,$kh,`Mai`,`Juni`,`Juli`,$i5,$bu,`Oktober`,$ds,`Dezember`],monthsShort:[$co,$fk,`März`,$ix,`Mai`,`Juni`,`Juli`,$iy,$kn,`Okt.`,$9o,`Dez.`],weekDays:[`Sonntag`,`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`],weekDaysShort:[`So`,`Mo`,`Di`,`Mi`,`Do`,`Fr`,`Sa`],year:null,month:null},en:{months:[`January`,`February`,`March`,$kh,$mm,$j6,$j5,$i5,$bu,`October`,$ds,$j0],monthsShort:[$co,$fk,$cp,$ix,$mm,$j6,$j5,$iy,$kn,$ne,$9o,$n6],weekDays:[$nj,`Monday`,`Tuesday`,$oo,`Thursday`,`Friday`,`Saturday`],weekDaysShort:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],year:null,month:null},"en-gb":{months:[`January`,`February`,`March`,$kh,$mm,$j6,$j5,$i5,$bu,`October`,$ds,$j0],monthsShort:[$co,$fk,$cp,$ix,$mm,$j6,$j5,$iy,$kn,$ne,$9o,$n6],weekDays:[$nj,`Monday`,`Tuesday`,$oo,`Thursday`,`Friday`,`Saturday`],weekDaysShort:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],year:null,month:null},es:{months:[`Enero`,`Febrero`,`Marzo`,$ph,`Mayo`,`Junio`,`Julio`,$n4,`Septiembre`,`Octubre`,`Noviembre`,`Diciembre`],monthsShort:[`Ene.`,$fk,$cp,`Abr.`,`May.`,$n9,$n8,`Ago.`,`Sep.`,$ne,$9o,`Dic.`],weekDays:[$lq,`Lunes`,`Martes`,`Miércoles`,`Jueves`,`Viernes`,$nk],weekDaysShort:[`Dom`,`Lun`,`Mar`,`Mié`,`Jue`,`Vie`,`Sáb`],year:null,month:null},fr:{months:[`Janvier`,`Février`,`Mars`,`Avril`,`Mai`,`Juin`,`Juillet`,`Aout`,`Septembre`,`Octobre`,`Novembre`,`Décembre`],monthsShort:[$co,$fk,$cp,$ix,$mm,$j6,$j5,$iy,$kn,$ne,$9o,$n6],weekDays:[`Dimanche`,`Lundi`,`Mardi`,`Mercredi`,`Jeudi`,`Vendredi`,`Samedi`],weekDaysShort:[`Dim`,`Lun`,`Mar`,`Mer`,`Jeu`,`Ven`,`Sam`],year:null,month:null},pt:{months:[`Janeiro`,$on,`Março`,$ph,$nb,`Junho`,`Julho`,$n4,`Setembro`,`Outubro`,`Novembro`,`Dezembro`],monthsShort:[$co,`Fev.`,$cp,`Abr.`,$nb,$n9,$n8,`Ago.`,`Set.`,`Out.`,$9o,`Dez.`],weekDays:[$lq,`Segunda`,`Terça`,`Quarta`,`Quinta`,`Sexta`,$nk],weekDaysShort:[`Dom`,`Seg`,`Ter`,`Qua`,`Qui`,`Sex`,`Sáb`],year:null,month:null},"pt-br":{months:[`Janeiro`,$on,`Março`,$ph,$nb,`Junho`,`Julho`,$n4,`Setembro`,`Outubro`,`Novembro`,`Dezembro`],monthsShort:[$co,`Fev.`,$cp,`Abr.`,$nb,$n9,$n8,`Ago.`,`Set.`,`Out.`,$9o,`Dez.`],weekDays:[$lq,`Segunda`,`Terça`,`Quarta`,`Quinta`,`Sexta`,$nk],weekDaysShort:[`Dom`,`Seg`,`Ter`,`Qua`,`Qui`,`Sex`,`Sáb`],year:null,month:null},"zh-cn":{months:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`],monthsShort:[null,null,null,null,null,null,null,null,null,null,null,null],weekDays:[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],weekDaysShort:[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],year:`年`,month:`月`},"zh-tw":{months:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`],monthsShort:[`1月`,`2月`,`3月`,`4月`,`5月`,`6月`,`7月`,`8月`,`9月`,`10月`,`11月`,`12月`],weekDays:[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`],weekDaysShort:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],year:null,month:null}}}));function ai(e){return e.replace(/[Ā-֏]/g,e=>{let t=fi.get(e);if(t===void 0)return e;let n=pi[t];return n===void 0&&(n=pi[t]=ai(di[t])),n})}function oi(e){if(!hi){hi=new Map;for(let e=0;e<mi.length;e++)hi.set(mi[e],e)}return hi.get(e)}function si(e){if(!vi)return;let t=yi[e];if(t!==void 0)return t;let n=vi[e];if(n)return yi[e]=ai(n)}function ci(e){let t=gi[e];return t===void 0?mi[e]:t}function li(e){if(bi&&e in bi)return bi[e];if(!vi)return;let t=oi(e);if(t!==void 0)return si(t)}function ui(e){if(xi&&e in xi)return xi[e];let t=oi(e);if(t!==void 0)return ci(t)}function F(e){let t=e;if(typeof t==$0e)return si(t)||ci(t)||mi[t];let n=t,r=li(n)||ui(n);return r===null?r:r||n}var di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,I=o((()=>{ii(),di=$r.split(`~`),fi=new Map;for(let e=0;e<Qr.length;e++)fi.set(Qr[e],e);pi=Array(di.length),mi=ei.split(`~`).map(ai),gi=Array(mi.length);{let e=ti.split(`~`);for(let t=0;t+1<e.length;t+=2)gi[parseInt(e[t],36)]=ai(e[t+1])}_i=d.moment.locale(),vi=Object.prototype.hasOwnProperty.call(ni,_i)?ni[_i].split(`~`):void 0,yi=Array(mi.length),bi=ri[_i],xi=ri.en}));function Si(){return{userState:Xr.getState(),queryState:{queries:La.getState().queries},memoState:{memos:z.getState().memos,commentMemos:z.getState().commentMemos,tags:z.getState().tags,tagsNum:z.getState().tagsNum,preparingUpdateMemo:z.getState().preparingUpdateMemo},globalState:B.getState(),locationState:V.getState(),dailyNotesState:H.getState()}}var Ci=o((()=>{U()})),L,wi=o((()=>{Ci(),U(),L={getState:Si}})),Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi=o((()=>{wi(),Ti=/```([\s\S]*?)```/g,Ei=/\*\*(.+?)\*\*/g,Di=/\*(.+?)\*/g,Oi=/\[ \] /g,ki=/\[.{1}\] /g,Ai=/^[*-]/g,ji=/(\d+)\. /g,Mi=/\[\[([^\]]+)\]\]/g,Ni=/\[([^\]]+)\]\((([^\]]+).md)\)/g,Pi=(e,t)=>{let n=e.replace(Ti,`<pre lang=''>$1</pre>`).replace(Ai,`<span class='counter-block'>•</span>`).replace(ji,`<span class='counter-block'>$1.</span>`).replace(Oi,`<span class='todo-block' data-type='todo'>⬜</span>`).replace(ki,`<span class='todo-block' data-type='done'>✅</span>`).replace(Ei,`<strong>$1</strong>`).replace(Di,`<em>$1</em>`).replace(/&lt;br&gt;/g,`</p><p>`).replace(/&amp;/g,`&`),r=n;if(t){if(Mi.test(n)){let e=n.match(Mi);for(let t=0;t<e.length;t++)if(!/(jpeg|jpg|gif|png|svg|bmp|wepg)/g.test(e[t])){let i=Ii(e[t]);if(/\|/g.test(i)){let[a,o]=i.split(`|`),s=Fi(a,o);r=n.replace(e[t],s)}else{let n=Fi(i,``);r=r.replace(e[t],n)}}}if(Ni.test(n)){let e=n.match(Ni);for(let t=0;t<e.length;t++)if(!/(jpeg|jpg|gif|png|svg|bmp|wepg)/g.test(e[t])){let i=Fi(Ri(e[t]),Li(e[t]));r=n.replace(e[t],i)}}}return r},Fi=(e,t)=>{let{metadataCache:n}=L.getState().dailyNotesState.app;return n.getFirstLinkpathDest(decodeURIComponent(e),``)instanceof d.TFile?t?`<a data-href="${e}" data-type="link" data-filepath="${e}" class="internal-link">${t}</a>`:`<a data-href="${e}" data-type="link" data-filepath="${e}" class="internal-link">${e}</a>`:t?`<a data-href="${e}" data-type="link" data-filepath="${e}" class="internal-link is-unresolved">${t}</a>`:`<a data-href="${e}" data-type="link" data-filepath="${e}" class="internal-link is-unresolved">${e}</a>`},Ii=e=>/\[\[([^\]]+)\]\]/g.exec(e)?.[1],Li=e=>Ni.exec(e)?.[1],Ri=e=>/\[([^\]]+)\]\((([^\]]+).md)\)/g.exec(e)?.[3],zi=e=>{let t=new DOMParser().parseFromString(e,$c9);return t.body.innerText??t.body.textContent??``},Bi=e=>e.replace(/\n/g,`<br>`),Vi=e=>{let t=createDiv();return t.textContent=e,t.innerHTML}})),Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta,na,ra,ia=o((()=>{Ui=`mobile-show-sidebar`,Wi=3600*24*1e3,Gi=/\s#([^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~[\]\\\s]+)/g,Ki=/(<p>|<br>)#([^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~[\]\\\s]+)/g,qi=/^#([^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~[\]\\\s]+)/gu,Ji=/(\s|:|\(|>|^)((http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-]))/g,Yi=/\[([\s\S]*?)\]\(([\s\S]*?)\)/gu,Xi=/([^\s<\\*>'(]+\.(jpeg|jpg|gif|png|svg))(\]\])?(\))?/g,Zi=/(\s|:|^)(http[s]?:\/\/)([^/\s]+\/)(\S*?)(jpeg|jpg|gif|png|svg|bmp|webp)(?!\))/g,Qi=/!\[\[(([^|\]]+?)\.(jpeg|jpg|gif|png|svg|bmp|webp))?(\|)?([^\]]*)?\]\]/gi,$i=/(!\[([^\]]*)\]\(([^)"\s]*\.(jpg|jpeg|png|gif|svg|bmp|webp))(?:\s*"[^"]*")?\s*\))/gi,ea=/\[@(.+?)\]\((.+?)\)/g,ta=/[#*"/\\<>:|[\]?]/gim,na=/^(-|\*|\d\.)\s(\[.\]\s)?(\d{1,2}:\d{2}(:\d{2})?)(-\d{1,2}:\d{2}(:\d{2})?)?\s(.*)/g,ra=[{title:$00,icon:$0y},{title:$0r,icon:$g9},{title:$0g,icon:$hx},{title:$0i,icon:$d4},{title:$9,icon:$c0}]}));function aa(e){let t=document,n=createEl($0o);n.value=e,n.contentEditable=$0q,n.readOnly=!1,n.setCssStyles({position:$9h,top:`0`,left:`0`,width:$iw,height:$iw,opacity:`0`,pointerEvents:$1i,userSelect:$0l}),t.body.appendChild(n);let r=t.getSelection(),i=[];if(r)for(let e=0;e<r.rangeCount;e++)i.push(r.getRangeAt(e));try{if(n.focus(),n.select(),n.setSelectionRange(0,e.length),d.Platform.isIosApp||d.Platform.isSafari){let r=t.createRange();r.selectNodeContents(n);let i=t.getSelection();i&&(i.removeAllRanges(),i.addRange(r)),n.setSelectionRange(0,e.length)}let a=t.execCommand($27);if(r){r.removeAllRanges();for(let e of i)r.addRange(e)}return a}catch(e){return console.warn(`Legacy copy to clipboard failed.`,e),!1}finally{n.remove()}}async function oa(e){let t=window.Capacitor?.Plugins?.Clipboard;if(!t?.write)return!1;try{return await t.write({string:e}),!0}catch(e){return console.warn(`Capacitor copy to clipboard failed.`,e),!1}}function sa(e){let t=``,n=0,r=-1,i=0,a=1,o=e=>`\\u`+e.toString(16).toUpperCase().padStart(4,`0`);for(let s=0;s<e.length;s++){let c=Ma.indexOf(e[s]);if(i+=c%44*a,c>=44){a*=44;continue}if(r<0)r=n+i;else{let e=r+i;t+=o(r),e>r&&(t+=`-`+o(e)),n=e,r=-1}i=0,a=1}return t}function ca(e){if(!Pa){let e=`\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u4E00-\\u9FD5`;Pa=new RegExp([`(?:[0-9]+(?:(?:,|\\.)[0-9]+)*|[\\-${sa(Na)}])+`,e,`[${e}]{1}`].join(`|`),`g`)}return(e.match(Pa)||[]).length}function la(e){Mn()&&e?.EnabledLocationList.some(e=>e.value===$00)&&e?.EnabledLocationList.some(e=>e.value===$0g)&&Oa().contains(e?.MemoOtherSaveLocation.MemoDefaultMultiFilePath)&&new d.Notice(F(`Please set different save locations for multi-file settings in Thino. The diary folder overlaps with the multi-file save location, or there is a risk of it being read repeatedly.`),5e3)}function ua(e){return typeof e==$q&&(e=e.replaceAll(`-`,`/`)),new Date(e).getTime()}function da(e,t=$5k){return t===$5k&&e.createdAtTs!=null?e.createdAtTs:t===$i3&&e.updatedAtTs!=null?e.updatedAtTs:ua(e[t])}function fa(e){return e.createdAtTs==null&&e.createdAt&&(e.createdAtTs=ua(e.createdAt)),e.updatedAtTs==null&&e.updatedAt&&(e.updatedAtTs=ua(e.updatedAt)),e}function pa(e){let t=0;for(let n=0;n<e.length;n++){let r=e[n],i=`${r.id}|${r.updatedAt||r.createdAt}|${r.deletedAt||``}|${r.rowStatus||``}|${r.pinned?1:0}|${r.content||``}`;for(let e=0;e<i.length;e++)t=t*31+i.charCodeAt(e)|0}return String(t)}function ma(e){let t=new Date(ua(e));return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}function ha(e){let t=new Date(ua(e));return`${t.getFullYear()}/${t.getMonth()+1}/${t.getDate()}`}function ga(e){let t=new Date(ua(e)),n=t.getFullYear(),r=t.getMonth()+1,i=t.getDate(),a=t.getHours(),o=t.getMinutes(),s=t.getSeconds();return`${n}/${r<10?`0`+r:r}/${i<10?`0`+i:i} ${a<10?`0`+a:a}:${o<10?`0`+o:o}:${s<10?`0`+s:s}`}function _a(e){return Array.from(new Set(e))}function va(e){let t=new Set,n=[];for(let r of e)t.has(r.id)||(t.add(r.id),n.push(r));return n}function ya(e,t){let n=null;return()=>{n&&window.clearTimeout(n),n=window.setTimeout(e,t)}}function ba(e,t){let n=!0;return()=>{if(!n)return!1;n=!1,window.setTimeout(()=>{e(),n=!0},t)}}function xa(e){let t=[],n=Object.keys(e).sort();for(let r of n){let n=e[r];n&&(typeof n==$0j?t.push(...xa(n).split(`&`)):t.push(`${r}=${n}`))}return t.join(`&`)}async function Sa(e){if(d.Platform.isMobile&&await oa(e)||(d.Platform.isIosApp||d.Platform.isSafari)&&aa(e))return!0;if(navigator.clipboard&&navigator.clipboard.writeText)try{return await navigator.clipboard.writeText(e),!0}catch(e){console.warn(`Copy to clipboard failed, falling back.`,e)}return aa(e)}function Ca(e){return new Promise(t=>{let n=new Image;n.onload=()=>{let{width:e,height:r}=n;t(e>0&&r>0?{width:e,height:r}:{width:0,height:0})},n.onerror=()=>{t({width:0,height:0})},n.className=$01,n.src=e,document.body.appendChild(n),n.remove()})}async function wa(e){let t,n=xn().plugins.getPlugin($0f).settings.UseDailyOrPeriodic===$63;try{return!n&&xn().plugins?.getPlugin($0m)?.calendarSetManager?.getActiveConfig($04)?.enabled?(t=await xn().plugins.getPlugin($0m).createPeriodicNote($04,e),t):(t=await xn().internalPlugins.getPluginById($2l).instance.getDailyNote(e)||await qn(e),t)}catch(e){return console.error(e),new d.Notice(F(`Failed to create daily note. Please check if you created a folder for daily notes.`)),null}}function Ta(e){let t=[],n=0;for(;n<e;n++)t.push((16*Math.random()|0).toString(16));return t.join(``)}async function Ea(e){try{let t=await(0,d.requestUrl)(e),n=new Uint8Array(t.arrayBuffer);return new Blob([n],{type:$14})}catch(t){return console.error(`error in grabImageFromUrl`,e,t),new Blob}}function Da(){let e=``,t=xn().plugins.getPlugin($0f).settings,n=``,r=xn().plugins.getPlugin($0m)?.calendarSetManager?.getActiveConfig($04)?.folder,i=xn().plugins.getPlugin($0m)?.settings?.daily?.format;switch(n=r===void 0?i:r,t?.UseDailyOrPeriodic||$63){case $63:e=An().format||$02;break;case $dt:e=n||$02;break;default:e=An().format||$02;break}return e===void 0&&new d.Notice(F(`You didn't set format for daily notes in both periodic-notes and daily-notes plugins.`)),e}function Oa(){let e=``,t=xn().plugins.getPlugin($0f).settings,n=``,r=xn().plugins.getPlugin($0m)?.calendarSetManager?.getActiveConfig($04)?.folder,i=xn().plugins.getPlugin($0m)?.settings?.daily?.folder;switch(n=r===void 0?i:r,t?.UseDailyOrPeriodic||$63){case $63:e=An().folder||``;break;case $dt:e=n||``;break;default:e=An().folder||``;break}return e===void 0&&new d.Notice(F(`You didn't set folder for daily notes in both periodic-notes and daily-notes plugins.`)),e}function ka(){let e=Oa();return!(e!==void 0&&!xn().vault.getFolderByPath(e))}function Aa(e,t){e=Vi(e),e=Bi(e).split(`<br>`).map(e=>`<p>${e===``?`<br>`:e}</p>`).join(``),e=Pi(e,t),e=e.replace(Gi,`<span class='tag-span'>#$1</span>`).replace(Ki,`<p><span class='tag-span'>#$2</span>`).replace(Ji,`$1<a class='link' target='_blank' rel='noreferrer' href='$2'>$2</a>`).replace(Yi,`<a class='link' target='_blank' rel='noreferrer' href='$2'>$1</a>`).replace(ea,`<span class='memo-link-text' data-value='$2'>$1</span>`).replace(/\^\S{6}/g,``);let n=new DOMParser().parseFromString(e,$c9).body;for(let e=0;e<n.children.length;e++){let t=n.children[e];if(t.tagName===`P`&&t.textContent===``&&t.firstElementChild?.tagName!==`BR`){t.remove(),e--;continue}}return n.innerHTML}function ja(e,t){return Object.keys(t).every(n=>typeof t[n]==$0j&&t[n]!==null&&typeof e[n]==$0j&&e[n]!==null?ja(e[n],t[n]):Object.prototype.hasOwnProperty.call(e,n)&&e[n]===t[n])}var Ma,Na,Pa,R,Fa,Ia=o((()=>{rr(),I(),Hi(),ia(),wn(),Ma=`!#%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}`,Na=`K!>=+=T#!/!)!*:%B%c.)/3(,!%!|%(%#&&%!+!%%%!%7%x#%V&-s&%I&!,Jo#>*%R#NH#%Z%%!4#,#/%&!5!%ABP%0!=D.#)!*9)!.!(!<<n#8v#Y#(!7!,-43)+&#&9%*%!(&(!5!2#%%3#8))#&9%*%#%#%#D&%!8%5,%%%9%*%#%((!7!4#<!0+&#&9%*%#%((!C#%%4!6!%)(%%&(#%!%#(#(%(/;!Y#+%%%:%3(!?%*#H+%%%:%-%((!E!%#4#7+%%%L&!5!5%=)*5(;%,%!&*a#S#%#1*a##%!&#%!&!+&%*%%%!%!&#%&%#.!&(%!:&E!f#+%G@(n%N9!5))&(!(#,%)01!6I%!*!&N%j+%&&*%!%&&L%&&D%&&*%!%&&2%]#%&&h#J35{#&)(S2&4%=*p#++,0%&353530%%4W#H!)!j#}#-L%!*k#/BV#A&(0O)=[#:.X#y#!V%R#6*]#A2#/O?GN%/Gf%&%&(#.a(g#^*&)&I&)&+%!%!%!%B&X#%*%!(%%*(&&))0*%%*A!P%!2!50_%!)!&-%!((+!%!%!%&%.&&*()!Y##Pc#R#%R#%P&+&(#1I%!*!&[#,!5:.*%*%*%*%*%*%*%*w#!p.#O(*#k(L(U%6>Z#3o/kc&ux.f>j#Q#&T*(3/#9R#5B&k#V#,&_%&F&+f#.%%%&%:BW#3U#e#)(!%!1?/:>@,R#A!5(%-/(%L<%%+9:(!(U#%!(#&(&!%!=%&.,%1)&)&).*%*%N%-/l%Bys)1:)T#Ub(^,&c%K*1(*!%-%0%(%!%#%#%e%FZ,7e#&Y#M/o%(%R&I=+=0P%()&)&)&%`,R={getWordCount:ca,checkDailyInMulti:la,getTimeStampByDate:ua,getMemoTimestamp:da,stampMemoTimestamps:fa,computeMemosHash:pa,getDateStampByDate:ma,getDateString:ha,getDateTimeString:ga,dedupe:_a,dedupeObjectWithId:va,debounce:ya,throttle:ba,transformObjectToParamsString:xa,copyTextToClipboard:Sa,getImageSize:Ca,createDailyNoteCheck:wa,randomId:Ta,grabImageFromUrl:Ea},Fa=(e,t)=>{let n=window.atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r);for(let e=0;e<n.length;e++)i[e]=n.charCodeAt(e);return new Blob([r],{type:t})}})),La,Ra=o((()=>{fr(),Dr(),Yr(),Ia(),La=ur()(br(Er(e=>({queries:[],setQueries:t=>e({queries:R.dedupeObjectWithId(t.sort((e,t)=>R.getTimeStampByDate(t.createdAt)-R.getTimeStampByDate(e.createdAt)).sort((e,t)=>R.getTimeStampByDate(t.pinnedAt??0)-R.getTimeStampByDate(e.pinnedAt??0)))}),insertQuery:t=>e(e=>{let n=[t,...e.queries].sort((e,t)=>R.getTimeStampByDate(t.createdAt)-R.getTimeStampByDate(e.createdAt));return{queries:R.dedupeObjectWithId(n)}}),deleteQueryById:t=>e(e=>({queries:e.queries.filter(e=>e.id!==t)})),updateQuery:t=>e(e=>{let n=e.queries.findIndex(e=>e.id===t.id);if(n===-1)return e;let r=[...e.queries];return r[n]={...r[n],...t},{queries:r}})}),{name:`query-store-cache`,storage:Jr.queries,partialize:e=>({queries:e.queries.slice(0,50)}),version:1}),{name:`query-store`}))}));function za(e,t){let n=R.getMemoTimestamp(e),r=R.getMemoTimestamp(t);return n===r?t.id.localeCompare(e.id):r-n}function Ba(){try{let e=Ir($4u);if(e){let t=JSON.parse(e)?.state?.memos||[];if(Array.isArray(t)&&t.length>0)return t.forEach(R.stampMemoTimestamps),P(`[MemoStore] Quick-loaded ${t.length} memos from cache`),t}}catch(e){console.debug(`[MemoStore] Failed to quick-load from cache:`,e)}return[]}var Va,z,Ha=o((()=>{fr(),Dr(),Yr(),Vr(),Dn(),Ia(),Va=Ba(),z=ur()(Cr(br(Er(e=>({memos:Va,commentMemos:[],tags:[],tagsNum:{},memosHash:Va.length>0?R.computeMemosHash(Va):``,preparingUpdateMemo:[],setMemos:t=>e(()=>{let e=[...t].sort(za),n=R.dedupeObjectWithId(e);return{memos:n,memosHash:R.computeMemosHash(n)}}),insertMemo:t=>e(e=>{let n=e.memos.findIndex(e=>e.id===t.id);if(n>=0){let r=[...e.memos];return r[n]=t,{memos:r,memosHash:R.computeMemosHash(r)}}let r=R.getMemoTimestamp(t),i=e.memos.findIndex(e=>R.getMemoTimestamp(e)<r),a;return a=i===-1?[...e.memos,t]:i===0&&e.memos.length>0&&R.getMemoTimestamp(e.memos[0])<r?[t,...e.memos]:[...e.memos.slice(0,i),t,...e.memos.slice(i)],{memos:a,memosHash:R.computeMemosHash(a)}}),deleteMemoById:t=>e(e=>{let n=e.memos.findIndex(e=>e.id===t);if(n===-1)return e;let r=[...e.memos];return r.splice(n,1),{memos:r,memosHash:R.computeMemosHash(r)}}),deleteMemoBatch:t=>e(e=>{let n=new Set(t),r=e.memos.filter(e=>!n.has(e.id));return{memos:r,memosHash:R.computeMemosHash(r)}}),updateMemo:t=>e(e=>{let n=e.memos.findIndex(e=>e.id===t.id);if(n!==-1){let r=[...e.memos];return r[n]=t,r.sort(za),{memos:r,memosHash:R.computeMemosHash(r)}}return e}),updateMemoBatch:(t,n)=>e(e=>{let r=new Map(t.map(e=>[e.id,e])),i=new Set(e.memos.map(e=>e.id)),a=e.memos.map(e=>e.path===n&&r.has(e.id)?r.get(e.id):e),o=t.filter(e=>!i.has(e.id)),s=[...a,...o].sort(za);return{memos:s,memosHash:R.computeMemosHash(s)}}),upsertMemosBulk:t=>e(e=>{if(t.length===0)return e;let n=new Map(t.map(e=>[e.id,e])),r=e.memos.map(e=>n.get(e.id)??e);for(let t of e.memos)n.delete(t.id);let i=n.size>0?[...r,...n.values()]:r;return i.sort(za),{memos:i,memosHash:R.computeMemosHash(i)}}),archiveMemo:t=>e(e=>{let n=e.memos.findIndex(e=>e.id===t.id);if(n!==-1){let r=[...e.memos];return r[n]=t,{memos:r,memosHash:R.computeMemosHash(r)}}return e}),unarchiveMemo:t=>e(e=>{let n=e.memos.findIndex(e=>e.id===t.id);if(n!==-1){let r=[...e.memos];return r[n]=t,{memos:r,memosHash:R.computeMemosHash(r)}}return e}),archiveMemoBulk:t=>e(e=>{let n=new Map(t.map(e=>[e.id,e])),r=e.memos.map(e=>n.has(e.id)?n.get(e.id):e);return{memos:r,memosHash:R.computeMemosHash(r)}}),pinMemo:t=>e(e=>{let n=e.memos.findIndex(e=>e.id===t.id);if(n!==-1){let r=[...e.memos];return r[n]=t,{memos:r,memosHash:R.computeMemosHash(r)}}return e}),replaceMemoById:(t,n)=>e(e=>{let r=e.memos.findIndex(e=>e.id===t);if(r!==-1){let t=[...e.memos];return t[r]=n,{memos:t,memosHash:R.computeMemosHash(t)}}return e}),clearMemos:()=>e(()=>({memos:[],commentMemos:[],memosHash:``})),setMemosAndComments:(t,n)=>e(()=>{let e=[...t].sort(za),r=[...n].sort((e,t)=>R.getMemoTimestamp(t)-R.getMemoTimestamp(e)),i=R.dedupeObjectWithId(e);return{memos:i,commentMemos:R.dedupeObjectWithId(r),memosHash:R.computeMemosHash(i)}}),setTags:(t,n)=>e({tags:t,tagsNum:n}),setWaitingForTemplater:t=>e(e=>({preparingUpdateMemo:[...e.preparingUpdateMemo,t]})),prepareUpdateThino:(t,n)=>e(e=>{let r=e.preparingUpdateMemo.filter(e=>e.id!==n),i=e.memos.findIndex(e=>e.id===n);if(i===-1)return{preparingUpdateMemo:r};let a=[...e.memos];return a[i]=t,{preparingUpdateMemo:r,memos:a}}),removePrepareUpdateThino:()=>e({preparingUpdateMemo:[]}),removeParticularPrepareUpdateThino:t=>e(e=>({preparingUpdateMemo:e.preparingUpdateMemo.filter(e=>e.id!==t)}))}),{name:$4u,storage:Jr.memos,partialize:e=>{let t=e.memos.slice(0,200);try{let e={state:{memos:t.slice(0,100)},version:1,updatedAt:Date.now()};Lr($4u,JSON.stringify(e))}catch(e){console.debug(`[MemoStore] Failed to update quick cache:`,e)}return{memos:t,tags:e.tags,tagsNum:e.tagsNum}},version:1,migrate:(e,t)=>{if(t<1&&e.memos){let t=Array.isArray(e.memos)?e.memos:[];return{...e,memos:R.dedupeObjectWithId(t.filter(e=>e&&e.id))}}return e},merge:(e,t)=>{let n=e,r={...t,...n};return t.memos.length===0&&n?.memos?.length>0&&(r.memos=R.dedupeObjectWithId(n.memos)),t.tags.length>0&&(r.tags=t.tags,r.tagsNum=t.tagsNum),r}}),{name:`memo-store`})))}));function Ua(){try{let e=Ir($4u);if(e){let t=JSON.parse(e)?.state?.memos||[];if(Array.isArray(t)&&t.length>0)return P(`[GlobalState] Found cached memos, setting loaded=true`),!0}}catch(e){console.debug(`[GlobalState] Failed to check cache for loaded state:`,e)}return!1}var Wa,B,Ga=o((()=>{fr(),Dr(),Yr(),Vr(),Dn(),Wa={markMemoId:``,editMemoId:``,commentMemoId:``,isMobileView:!1,isPhoneView:!1,showSiderbarInMobileView:!1,changedByMemos:!1,memoListView:$0y,globalEditorShown:!1,immersiveMode:!1,shouldSplitMemoWord:!0,shouldHideImageUrl:!0,shouldUseMarkdownParser:!0,useTinyUndoHistoryCache:!1,useVirtualScrolling:!0,manifest:null,refresh:!1,loaded:Ua(),locked:!1,exited:!1,collapsedGroups:[],instances:{}},B=ur()(Cr(br(Er(e=>({...Wa,setMarkMemoId:t=>e(e=>e.markMemoId===t?e:{markMemoId:t}),setEditMemoId:t=>e(e=>e.editMemoId===t?e:{editMemoId:t}),setCommentMemoId:t=>e(e=>e.commentMemoId===t?e:{commentMemoId:t}),setGlobalEditorShown:t=>e(e=>e.globalEditorShown===t?e:{globalEditorShown:t}),setImmersiveMode:t=>e(e=>e.immersiveMode===t?e:{immersiveMode:t}),toggleImmersiveMode:()=>e(e=>({immersiveMode:!e.immersiveMode})),setMobileView:t=>e(e=>e.isMobileView===t?e:{isMobileView:t}),setPhoneView:t=>e(e=>e.isPhoneView===t?e:{isPhoneView:t}),setShowSidebarInMobileView:t=>e(e=>e.showSiderbarInMobileView===t&&typeof t==$2s?e:{showSiderbarInMobileView:t}),setMemoListView:t=>e(e=>e.memoListView===t?e:{memoListView:t}),setAppSetting:t=>e(t),setLoaded:t=>e(e=>e.loaded===t?e:{loaded:t}),setRefresh:t=>e(e=>e.refresh===t?e:{refresh:t}),setLocked:t=>e(e=>e.locked===t?e:{locked:t}),setExited:t=>e(e=>e.exited===t?e:{exited:t}),setChangedByMemos:t=>e(e=>e.changedByMemos===t?e:{changedByMemos:t}),setManifest:t=>e(e=>e.manifest===t?e:{manifest:t}),toggleCollapsedGroup:t=>e(e=>{let n=e.collapsedGroups.indexOf(t),r=[...e.collapsedGroups];return n>=0?r.splice(n,1):r.push(t),{collapsedGroups:r}}),setCollapsedGroup:(t,n)=>e(e=>{let r=e.collapsedGroups.indexOf(t);if(n&&r<0)return{collapsedGroups:[...e.collapsedGroups,t]};if(!n&&r>=0){let t=[...e.collapsedGroups];return t.splice(r,1),{collapsedGroups:t}}return e}),setInstance:(t,n)=>e(e=>e.instances[t]===n?e:{instances:{...e.instances,[t]:n}}),reset:()=>e(()=>({...Wa,instances:{}}))}),{name:`global-state-store-cache`,storage:Jr.ui,partialize:e=>({shouldSplitMemoWord:e.shouldSplitMemoWord,shouldHideImageUrl:e.shouldHideImageUrl,shouldUseMarkdownParser:e.shouldUseMarkdownParser,useTinyUndoHistoryCache:e.useTinyUndoHistoryCache,useVirtualScrolling:e.useVirtualScrolling,memoListView:e.memoListView,isMobileView:e.isMobileView,showSiderbarInMobileView:e.showSiderbarInMobileView,collapsedGroups:e.collapsedGroups}),version:1}),{name:`global-state-store`})))})),Ka,qa,V,Ja=o((()=>{fr(),Dr(),Yr(),Ka={tag:``,duration:null,type:``,path:``,metadata:{},text:``,filter:``},qa={pathname:`/`,hash:``,query:Ka},V=ur()(Cr(br(Er(e=>({...qa,setLocation:t=>e(()=>t),setPathname:t=>e(e=>e.pathname===t?e:{pathname:t}),setHash:t=>e(e=>e.hash===t?e:{hash:t}),navigate:(t,n)=>e(()=>n?{pathname:t,query:{...Ka,...n}}:{pathname:t}),reload:()=>e(()=>qa),setQuery:t=>e({query:{...t}}),updateQuery:t=>e(e=>({query:{...e.query,...t}})),setTagQuery:t=>e(e=>e.query.tag===t?e:{query:{...e.query,tag:t}}),setDurationQuery:t=>e(e=>({query:{...e.query,duration:t}})),setPathQuery:t=>e(e=>e.query.path===t?e:{query:{...e.query,path:t}}),setTypeQuery:t=>e(e=>e.query.type===t?e:{query:{...e.query,type:t}}),setTextQuery:t=>e(e=>e.query.text===t?e:{query:{...e.query,text:t}}),setFilterQuery:t=>e(e=>e.query.filter===t?e:{query:{...e.query,filter:t}}),setMetadataQuery:(t,n)=>e(e=>{let r={...e.query.metadata||{}};return r[t]=n,{query:{...e.query,metadata:r}}}),clearQuery:()=>e({query:{...Ka}})}),{name:`location-store-cache`,storage:Jr.ui,partialize:e=>({query:{tag:e.query.tag,type:e.query.type,text:e.query.text,path:e.query.path,filter:e.query.filter,duration:e.query.duration,metadata:{}}}),version:1}),{name:`location-store`})))})),Ya,H,Xa=o((()=>{fr(),Dr(),Yr(),Ya={dailyNotes:{},app:null,view:null,settings:null,editor:null,plugin:null,verifyState:{appId:``}},H=ur()(Cr(br(Er((e,t)=>({...Ya,setDailyNotes:t=>e(e=>e.dailyNotes===t?e:{dailyNotes:t}),setApp:t=>e(e=>e.app?e:{app:t}),setView:t=>e(e=>!t||!e.view||e.view?.leaf?.id!==t?.leaf?.id?{view:t}:e),setSettings:t=>e({settings:{...t}}),setEditor:t=>e(e=>{let n=e.editor;return!n||n!==t?{editor:t}:e}),setPlugin:t=>e(e=>e.plugin?e:{plugin:t}),setVerifyState:t=>e(e=>e.verifyState===t?e:{verifyState:t}),addDailyNote:(t,n)=>e(e=>e.dailyNotes[t]===n?e:{dailyNotes:{...e.dailyNotes,[t]:n}}),removeDailyNote:t=>e(e=>{if(!(t in e.dailyNotes))return e;let n={...e.dailyNotes};return delete n[t],{dailyNotes:n}}),getDailyNote:e=>t().dailyNotes[e],clearFiles:()=>e({dailyNotes:{}}),clearView:()=>e(e=>{if(!e.view)return e;try{e.view.unload?.()}catch(e){console.error(`Error unloading view:`,e)}return{view:null}}),reset:()=>e(()=>({...Ya})),getActiveFile:()=>{let e=t();return e.app?.workspace?e.app.workspace.getActiveFile():null}}),{name:`daily-notes-store-cache`,storage:Jr.ui,partialize:e=>({verifyState:e.verifyState}),version:1}),{name:`daily-notes-store`})))})),Za,Qa,$a=o((()=>{fr(),Dr(),Za={selectedIds:[]},Qa=ur()(br(Cr((e,t)=>({...Za,toggleSelection:t=>{e(e=>{let n=e.selectedIds;return n.indexOf(t)>-1?{selectedIds:n.filter(e=>e!==t)}:{selectedIds:[...n,t]}})},clearSelection:()=>{e({selectedIds:[]})},isSelected:e=>t().selectedIds.includes(e),getSelectedCount:()=>t().selectedIds.length,getSelectedIds:()=>t().selectedIds,setSelection:t=>{e({selectedIds:[...t]})}})),{name:`SelectionStore`}))})),U=o((()=>{Zr(),Ra(),Ha(),Ga(),Ja(),Xa(),$a(),Zr(),Ra(),Ha(),Ga(),Ja(),Xa(),$a()})),eo,W,to=o((()=>{U(),rr(),eo=class{initialized=!1;getState(){return H.getState()}setApp(e){return H.getState().setApp(e),e}setPlugin(e){return H.getState().setPlugin(e),e}setSettings(e){return H.getState().setSettings(e),this.initialized||=!0,e}setView(e){return H.getState().setView(e),e}setEditor(e){return H.getState().setEditor(e),e}async updateDailyNotes(e,t){let n=`day-${zn(e,$04).format($02)}T00:00:00+08:00`;return t?H.getState().removeDailyNote(n):H.getState().addDailyNote(n,e),this.getState().dailyNotes}setVerifyState(e){return H.getState().setVerifyState(e),e}async fechLocalDailyNotes(){try{let e=Un();return H.getState().setDailyNotes(e),e}catch(e){console.error(e)}}},W=new eo})),no,ro=o((()=>{Vr(),no={get(e){let t={};for(let n of e)try{let e=Ir(String(n));e!==null&&(t[n]=JSON.parse(e))}catch(e){console.error(`Get storage failed in `,n,e)}return t},set(e){for(let t in e)try{Lr(t,JSON.stringify(e[t]))}catch(e){console.error(`Save storage failed in `,t,e)}},remove(e){for(let t of e)try{Rr(String(t))}catch(e){console.error(`Remove storage failed in `,t,e)}}}})),io,G,ao=o((()=>{ro(),U(),io=class{constructor(){let e=no.get([`shouldSplitMemoWord`,`shouldHideImageUrl`,`shouldUseMarkdownParser`,`useTinyUndoHistoryCache`]),t={shouldSplitMemoWord:e.shouldSplitMemoWord||!0,shouldHideImageUrl:e.shouldHideImageUrl||!0,shouldUseMarkdownParser:e.shouldUseMarkdownParser||!0,useTinyUndoHistoryCache:e.useTinyUndoHistoryCache||!1};this.setAppSetting(t)}getState=()=>B.getState();setEditMemoId=e=>{B.getState().setEditMemoId(e)};setRefresh=e=>{B.getState().setRefresh(e)};setCommentMemoId=e=>{B.getState().setCommentMemoId(e)};setMarkMemoId=e=>{B.getState().setMarkMemoId(e)};setLoaded=e=>{B.getState().setLoaded(e)};setGlobalEditorShown=e=>{B.getState().setGlobalEditorShown(e)};setImmersiveMode=e=>{B.getState().setImmersiveMode(e)};toggleImmersiveMode=()=>{B.getState().toggleImmersiveMode()};setIsMobileView=e=>{B.getState().setMobileView(e)};setIsPhoneView=e=>{B.getState().setPhoneView(e)};setChangedByMemos=e=>{B.getState().setChangedByMemos(e)};setShowSiderbarInMobileView=e=>{B.getState().setShowSidebarInMobileView(e)};setAppSetting=e=>{B.getState().setAppSetting(e),no.set(e)};setMemoListView=e=>{B.getState().setMemoListView(e)};setInstance=(e,t)=>{B.getState().setInstance(e,t)};setLocked=e=>{B.getState().setLocked(e)};setExitSteps=e=>{B.getState().setExited(e)};setPluginManifest=e=>{B.getState().setManifest(e)}},G=new io})),oo,K,so=o((()=>{U(),oo=class{constructor(){this.updateStateWithLocation(),window.onpopstate=()=>{this.updateStateWithLocation()}}updateStateWithLocation=()=>{let{pathname:e,search:t,hash:n}=window.location,r=new URLSearchParams(t),i={pathname:`/`,hash:``,query:{tag:``,duration:null,text:``,type:``,filter:``,path:``,metadata:{}}};i.query.tag=r.get($70)||``,i.query.type=r.get($gm)??``,i.query.text=r.get($0l)??``,i.query.filter=r.get($e3)??``;let a=parseInt(r.get($g4)??`0`),o=parseInt(r.get(`to`)??`0`);o>a&&o!==0&&(i.query.duration={from:a,to:o}),i.hash=n,i.pathname=this.getValidPathname(e),V.getState().setLocation(i)};getState=()=>V.getState();clearQuery=()=>{V.getState().clearQuery()};setQuery=e=>{V.getState().setQuery(e)};reloadApp=()=>{V.getState().reload()};setHash=e=>{V.getState().setHash(e)};setPathname=e=>{V.getState().setPathname(e)};pushHistory=e=>{V.getState().setPathname(e)};replaceHistory=e=>{V.getState().setPathname(e)};setMemoTypeQuery=(e=``)=>{V.getState().setTypeQuery(e)};setMemoFilter=e=>{V.getState().setFilterQuery(e)};setTextQuery=e=>{V.getState().setTextQuery(e)};setTimeQuery=e=>{V.getState().setDurationQuery(e)};setPathQuery=e=>{V.getState().setPathQuery(e)};setMetadataQuery=(e,t)=>{V.getState().setMetadataQuery(e,t)};setTagQuery=e=>{V.getState().setTagQuery(e)};setFromAndToQuery=(e,t)=>{V.getState().setDurationQuery({from:e,to:t})};getValidPathname=e=>[`/`,`/homeboard`,$2p,`/setting`].includes(e)?e:`/`},K=new oo})),co,lo,uo,fo,po,mo=o((()=>{X(),co=e=>`${e.vault.configDir}/query.json`,lo=async(e,t)=>{try{return await e.vault.adapter.read(t),!0}catch(e){return console.error(e),!1}},uo=async e=>(await lo(e,co(e))||await po(e),JSON.parse(await e.vault.adapter.read(co(e))).queries||[]),fo=async(e,t)=>{await e.vault.adapter.write(co(e),JSON.stringify({queries:t},null,2))},po=async e=>{let t=G.getState().manifest,n=e.plugins.getPlugin(t.id||$0f).settings,r=e.metadataCache.getFirstLinkpathDest(n.QueryFileName,``);if(!r)await e.vault.adapter.write(co(e),JSON.stringify({queries:[]},null,2));else{let t=(await e.vault.read(r)).split(`
  9. `);t.length===0&&await e.vault.adapter.write(co(e),JSON.stringify({queries:[]},null,2));let n=[];for(let e=0;e<t.length;e++){let r=e,i=`未命名`,a=t[e],o=(0,d.moment)().format($6),s=`[]`,c=a.match(/^\d{14,16}/);c&&(o=(0,d.moment)(c[0].slice(0,14),$08).format($6));let l=a.match(/\[\{(.+)\}\]/);l&&(s=l[0]);let u=a.match(/\s(.+)\s\[\{/);u&&(i=u[0].slice(1,-3)),n.push({id:r,pinnedAt:``,createdAt:o,updatedAt:o,title:i,querystring:s,userId:$2e})}await e.vault.adapter.write(co(e),JSON.stringify({queries:n},null,2))}}})),ho,go=o((()=>{wi(),mo(),ho=async()=>{let{app:e}=L.getState().dailyNotesState;return await lo(e,co(e))||await po(e),await uo(e)||[]}})),_o,vo,yo=o((()=>{wi(),I(),mo(),_o=(e,t)=>({createdAt:(0,d.moment)().format($6),id:e,pinnedAt:``,querystring:t,title:F(438),updatedAt:(0,d.moment)().format($6),userId:$0h}),vo=async(e,t)=>{let n=await uo(L.getState().dailyNotesState.app)||[],r={createdAt:(0,d.moment)().format($6),id:(0,d.moment)().format($08)+n.length,pinnedAt:``,querystring:t,title:e,updatedAt:(0,d.moment)().format($6),userId:$0h};return n.push(r),await fo(L.getState().dailyNotesState.app,n),r}}));function bo(e){return e==null?!0:typeof e==$q||Array.isArray(e)?e.length===0:e instanceof Map||e instanceof Set?e.size===0:typeof e==$0j?Object.keys(e).length===0:!1}var xo=o((()=>{}));function So(e){let t=e?.parent;return typeof t!=$0e||Number.isNaN(t)||Object.is(t,-0)?!1:t>=0&&t!==e.position?.start.line}function Co(e){let t={};for(let n of e)So(n)&&(t[n.position.start.line]=n.parent);return t}function wo(e,t){let n=Co(t),r=e=>{let t=[];for(let i of Object.keys(n)){let a=parseInt(i,10);n[a]===e&&t.push(a,...r(a))}return t};return r(e)}function To(e,t,n,r){let i=t.find(t=>t.position?.start.line===e)?.position?.end?.line,a=typeof i==$0e&&i>=e?i:e;typeof r==$0e&&r>a&&(a=r);let o=wo(e,t);for(let e of o){let n=t.find(t=>t.position?.start.line===e)?.position?.end?.line;typeof n==$0e&&n>a&&(a=n)}let s=new Set(o),c=t.filter(t=>t.position?.start.line>e&&!s.has(t.position.start.line)).reduce((e,t)=>{let n=t.position.start.line;return e===null||n<e?n:e},null);return c!==null&&(a=Math.min(a,c-1)),Math.max(e,Math.min(a,n-1))}var Eo=o((()=>{}));function Do(e){let t=e.match(/^#+/);return t?t[0].length:0}function Oo(e,t){let n=e.split(`
  10. `),r=``,i=[],a=!1,o=1;for(let e=0;e<n.length;e++){let s=n[e];if(s.startsWith(`#`)&&/^#{1,6}\s/g.test(s)){if(a&&Do(s)<=Do(t))break;r=s,r===t?(a=!0,o=e+1):a&&Do(s)>Do(t)?i.push(s):(a=!1,i=[])}else a&&i.push(s)}return t?bo(i)?{content:``,startLine:-1}:{content:i.join(`
  11. `),startLine:o}:{content:e,startLine:0}}function ko(e,t,n){let r={},i=(e,t)=>{for(;e[t]!==void 0&&e[t]!==t;)t=e[t];return t},a=W.getState().app,o=n.split(`
  12. `),s=t+o.length-1,c=a.metadataCache.getFileCache(e)?.listItems,l={};if(!c)return[];let u=e=>RegExp(`^(-|\\*|\\d\\.)\\s(\\[.\\]\\s)?(\\d{1,2}:\\d{2}(:\\d{2})?)(-\\d{1,2}:\\d{2}(:\\d{2})?)?\\s?`).test(e);return c.forEach(e=>{let n=e.position.start.line,a=e.position.end.line;if(n>=t&&a<=s){let s=n-t,c=a-t,d=o.slice(s,c+1),f=d.join(`
  13. `),p=So(e);if(p&&(r[e.position.start.line]=e.parent),p&&l[e.parent]){if(n-e.parent===1){let t=o[s]?.match(/^(\s*)/);t&&(l[e.parent].indent=t[0])}let t=RegExp(`^`+l[e.parent].indent);l[e.parent].content+=`
  14. `+f.split(`
  15. `).map(e=>e?.replace(t,``)).join(`
  16. `)}else if(p&&l[i(r,e.parent)]){let t=i(r,e.parent),n=RegExp(`^`+l[t].indent);l[t].content+=`
  17. `+d.map(e=>e?.replace(n,``)).join(`
  18. `)}else if(u(f)||new RegExp(na).test(f)){l[n]||(l[n]={content:``,blockId:``,indent:``});let t=d.length>1&&d[1]?.match(/^(\s*)/);t&&(l[n].indent=t[0]),l[n].content=d.map(e=>e?.replace(l[n].indent,``)).join(`
  19. `),l[n].blockId=e.id}}}),Object.keys(l).map(e=>{let t=parseInt(e);return{line:l[t].content,blockId:l[t].blockId||``,index:t}})}async function Ao(e,t){let n=t.vault.getAbstractFileByPath(e);return n||(new d.Notice(F(277)),n=await t.vault.create(e,`{"nodes": [], "edges": []}`),Y.markPathPending(e),G.setChangedByMemos(!0)),n}async function jo(e,t){let n;try{n=await t.vault.read(e)}catch(r){console.error(r),n=await t.vault.cachedRead(e)}let r=t.metadataCache.getFileCache(e)?.frontmatterPosition;return r?n.slice(r.end.offset+1):n}function Mo(e){let t=e.split(/\r?\n/),n=[],r=!1,i=[],a=``;for(let e=0;e<t.length;e++){let o=t[e];o.startsWith($n1)?(r&&(n.push({metadata:a,content:i.join(`
  20. `).trim()}),i=[]),r=!0,a=o.replace($n1,``).trim()):r&&o.startsWith(`>`)?i.push(o.replace(/^> /,``)):r&&!o.startsWith(`>`)&&(r=!1,n.push({metadata:a,content:i.join(`
  21. `).trim()}),i=[],a=``)}return r&&n.push({metadata:a,content:i.join(`
  22. `).trim()}),n}var No=o((()=>{xo(),ia(),X(),I(),Eo()}));async function Po(e){return Fo(e,0)}async function Fo(e,t){try{let{vault:t,metadataCache:n}=L.getState().dailyNotesState.app;try{await t.cachedRead(e)}catch{await t.read(e)}n.getFileCache(e),await new Promise(e=>window.setTimeout(e,150));let r=n.getFileCache(e)?.listItems||[];return P(`🔄 File cache refreshed for ${e.path}, found ${r.length} list items`),!0}catch(n){return console.warn(`Failed to refresh file cache for ${e.path} (attempt ${t+1}):`,n),t<Lo?(await new Promise(e=>window.setTimeout(e,Ro*2**t)),Fo(e,t+1)):!1}}async function Io(e){try{let{metadataCache:t}=L.getState().dailyNotesState.app,n=t.getFileCache(e),r=n?.listItems||[];return r.length===0&&await Po(e)&&(n=t.getFileCache(e),r=n?.listItems||[]),r}catch(t){return console.error(`Failed to get list items for ${e.path}:`,t),[]}}var Lo,Ro,zo=o((()=>{wi(),Dn(),Lo=3,Ro=200}));function Bo(e,t){let n=e.match(Uo);if(n)return`${e.slice(0,n.index).trimEnd()} ${t} ${n[1]}`;let r=e.trimEnd();return r.length>0?`${r} ${t}`:t}function Vo(e,t,n,r){let i=`[webId::${r}]`;for(let r=t;r<=n;r+=1)if(Ho.test(e[r])){e[r]=e[r].replace(Ho,i);return}e[n]=Bo(e[n],i)}var Ho,Uo,Wo=o((()=>{Ho=/\[webId::[^\]]*\]/,Uo=/\s(\^[0-9a-zA-Z-]+)\s*$/}));async function Go(e,t,n,r){let i=n.replace(/\s?\[pinned::[^\]]+\]/g,``).replace(/\s?\[visibility::[^\]]+\]/g,``).replace(/\s?\[archived::[^\]]+\]/g,``).replace(/\s?\[deleted::[^\]]+\]/g,``).replace(/\s?\[webId::[^\]]+\]/g,``).replace(/\s\^([0-9a-zA-Z-]+)($|\s|\n)/g,``).trim(),a=Ko(i),o=null,s=0;for(let n of e){if(!n.position)continue;let e=t.slice(n.position.start.line,n.position.end.line+1).join(`
  23. `).replace(/^- \d{2}:\d{2}\s*/,``).replace(/^- \[.\]\s*\d{2}:\d{2}\s*/,``).replace(/^- \[.\]\s*/,``).replace(/^- /,``).replace(/\s?\[pinned::[^\]]+\]/g,``).replace(/\s?\[visibility::[^\]]+\]/g,``).replace(/\s?\[archived::[^\]]+\]/g,``).replace(/\s?\[deleted::[^\]]+\]/g,``).replace(/\s?\[webId::[^\]]+\]/g,``).replace(/\s\^([0-9a-zA-Z-]+)($|\s|\n)/g,``).trim(),r=qo(i,e,a);if(r===1)return P(`✅ Found memo by exact content match at line ${n.position.start.line}`),n;r>s&&r>.8&&e.startsWith(i.split(`
  24. `)[0])&&(o=n,s=r)}return o&&s>.8?(P(`✅ Found memo by best content match (score: ${s.toFixed(2)}) at line ${o.position.start.line}`),o):(console.warn(`⚠️ Could not find memo by content for memo ${r.slice(-6)} (best score: ${s.toFixed(2)})`),null)}function Ko(e){let t=e.split(/\s+/).filter(e=>e.length>3),n=[...new Set(t)].slice(0,5).join(` `);return`${e.substring(0,30)}|${e.length>30?e.substring(e.length-30):``}|${n}`}function qo(e,t,n){if(e===t)return 1;if(n===Ko(t))return .95;let r=Math.min(e.length,t.length)/Math.max(e.length,t.length);if(r<.5)return 0;let i=new Set(e.toLowerCase().split(/\s+/)),a=new Set(t.toLowerCase().split(/\s+/)),o=new Set([...i].filter(e=>a.has(e))),s=new Set([...i,...a]),c=o.size/s.size,l=e.length>20&&t.includes(e.substring(0,Math.min(50,e.length)))?.3:0;return Math.max(c,l)*r}function Jo(e,t){let n=/%%(.*?)%%/,r=e.match(n);if(!r)return e;let i=r[1].trim(),a={};i.split(` `).forEach(e=>{let[t,n]=e.slice(1,-1).split(`::`);a[t]=n});for(let e of Object.keys(t))if(e!==`id`&&e!==$65){if(e===$c7&&t.rowStatus===$07){a.archived=$0q;continue}else if(e===$c7&&t.rowStatus===$0b){delete a.archived;continue}e===$lw&&t.deleted?a.deleted=(0,d.moment)().format($08):typeof t[e]==$2s?t[e]?a[e]=$0q:delete a[e]:t[e]&&(typeof t[e]==$q||typeof t[e]==$2s)&&(a[e]=t[e])}let o=Object.entries(a).map(([e,t])=>`[${e}::${t}]`).join(` `);return e.replace(n,`%% ${o} %%`)}async function Yo(e,t){if(!e.sourceType||e.sourceType!==$0g)return e;let{vault:n,fileManager:r}=L.getState().dailyNotesState.app,i=n.getAbstractFileByPath(e.path);if(!(i instanceof d.TFile))return e;let a=(0,d.moment)();if(P(t),Y.markPathPending(i.path),await r.processFrontMatter(i,e=>{(t.pinned!==void 0||t.thinoType||t.rowStatus||t.visibility||t.deleted)&&G.setChangedByMemos(!0),t.id&&(e.id=t.id),t.thinoType&&(e.thinoType=t.thinoType),t.rowStatus&&(e.rowStatus=t.rowStatus),t.visibility&&(e.visibility=t.visibility),t.webId&&(e.webId=t.webId),t.pinned!==void 0&&(e.pinned=t.pinned),t.deleted!==void 0&&(e.deletedAt=t.deleted?a.format($6):``),e.createdAt||=a.format($6),e.updatedAt=a.format($6)}),t.content){let r=await n.read(i),a=r,o=t.content.replace(/\$/g,`$$$$`);a=r.replace(e.content,o),await n.modify(i,a)}return G.setChangedByMemos(!0),{...e,id:t.id||e.id,thinoType:t.thinoType||e.thinoType,createdAt:e.createdAt||a.format($6),updatedAt:(0,d.moment)().format($6),content:t.content||e.content,rowStatus:t.rowStatus||e.rowStatus,visibility:t.visibility||e.visibility,pinned:t.pinned===void 0?e.pinned:t.pinned,webId:t.webId||e.webId,deletedAt:t.deleted?a.format($6):t.deleted===!1?``:e.deletedAt?e.deletedAt:``}}async function Xo(e,t){if(!e.sourceType||e.sourceType!==$0i)return e;let{vault:n}=L.getState().dailyNotesState.app,r=n.getAbstractFileByPath(e.path);if(!(r instanceof d.TFile))return e;let i=(0,d.moment)(),a=``;try{a=await n.read(r)}catch(e){console.error(e),a=await n.cachedRead(r)}let o=a.split(/\r?\n/),s=o.findIndex(t=>t.includes(`id::`+e.id)||t.includes(`Id::`+e.id)||e.webId&&t.includes(e.webId)),c=o[s];if(!c)return e;let l=Jo(c,t);if(P(t,l),!c)return e;let u=l+`
  25. `,f=o.findIndex((e,t)=>t>s&&e.trim()===``),p=``;f===-1&&(p=o.slice(s+1).join(`
  26. `)),f!==-1&&(p=o.slice(s+1,f).join(`
  27. `));let m=p;t?.content&&(m=t.content.split(/\r?\n/).map(e=>`> `+e).join(`
  28. `));let h=u+m,g=h.split(/\r?\n/);P(h,g,s),o.splice(s,f===-1?o.length-s:f-s,...g);let _=o.join(`
  29. `);return Y.markPathPending(r.path),G.setChangedByMemos(!0),await n.modify(r,_),{...e,id:t.id||e.id,thinoType:t.thinoType||e.thinoType,createdAt:e.createdAt||i.format($6),updatedAt:(0,d.moment)().format($6),content:t.content||e.content,rowStatus:t.rowStatus||e.rowStatus,visibility:t.visibility||e.visibility,pinned:t.pinned===void 0?e.pinned:t.pinned,webId:t.webId||e.webId,deletedAt:t.deleted?i.format($6):t.deleted===!1?``:e.deletedAt?e.deletedAt:``}}async function Zo(e,t){if(!e.sourceType||e.sourceType!==$0r)return e;let{vault:n}=L.getState().dailyNotesState.app,r=n.getAbstractFileByPath(e.path);if(!(r instanceof d.TFile))return e;let i=await n.read(r),a=JSON.parse(i),o=a.nodes.find(t=>t.id===e.id);if(!o)return e;t.content&&(o.text=t.content),t.thinoType&&(o.thinoType=t.thinoType),t.rowStatus&&(o.rowStatus=t.rowStatus),t.visibility&&(o.visibility=t.visibility),t.pinned!==void 0&&(o.pinned=t.pinned),t.webId&&(o.webId=t.webId);let s=(0,d.moment)();t.deleted!==void 0&&(o.deletedAt=t.deleted?s.format($6):``),o.updatedAt=s.format($6),Y.markPathPending(r.path),G.setChangedByMemos(!0);let c=JSON.stringify(a,null,2);return await n.modify(r,c),{...e,thinoType:t.thinoType||e.thinoType,createdAt:e.createdAt,updatedAt:(0,d.moment)().format($6),content:t.content??e.content,rowStatus:t.rowStatus??e.rowStatus,visibility:t.visibility??e.visibility,pinned:t.pinned??e.pinned,webId:t.webId??e.webId,deletedAt:t.deleted?s.format($6):t.deleted===!1?``:e.deletedAt?e.deletedAt:``}}function Qo(e,t,n){let r=[];if(!t.find(t=>t.position.start.line===e))return r;let i=(n[e]||``).match(/^(\s*)/),a=i?i[1].length:0,o=e=>/^(\s*)- (\[.\] )?\d{2}:\d{2}/.test(e);for(let i of t){let s=i.position.start.line;if(s<=e)continue;let c=n[s]||``,l=c.match(/^(\s*)/),u=l?l[1].length:0;if(u>a){let i=!0;for(let r of t){let t=r.position.start.line;if(t>e&&t<s){let e=(n[t]||``).match(/^(\s*)/);if((e?e[1].length:0)<=a){i=!1;break}}}i&&r.push(s)}else if(u===a){if(o(c))break}else break}return r}async function $o(e,t){Es()||new d.Notice(F(404));let{vault:n,metadataCache:r}=L.getState().dailyNotesState.app,i=L.getState().dailyNotesState.app,{settings:a}=L.getState().dailyNotesState,o=e.id.toString().slice(0,14),s=(0,d.moment)(e.createdAt,$6).isSame((0,d.moment)(o,$08))?(0,d.moment)(e.createdAt,$6):(0,d.moment)(o,$08),c=(0,d.moment)(e.createdAt,$6).isSame(s,$04),l=e.path,u=n.getAbstractFileByPath(l);if(!(u instanceof d.TFile))return new d.Notice(F(121)),e;let f=(await n.read(u)).split(`
  30. `),p=r.getFileCache(u),m=p?.listItems||[];if(m.length===0&&(P(`⚠️ No list items found for memo ${e.id.slice(-6)}, attempting to refresh file cache...`),await Po(u)&&(p=r.getFileCache(u),m=p?.listItems||[],m.length>0&&P(`✅ File cache refresh successful, found ${m.length} list items`)),m.length===0)){console.warn(`⚠️ No list items found for memo ${e.id.slice(-6)} even after cache refresh. This might be a newly created memo.`);let n={...e,content:t.content||e.content,thinoType:t.thinoType||e.thinoType,updatedAt:(0,d.moment)().format($6),pinned:t.pinned===void 0?e.pinned:t.pinned,rowStatus:t.rowStatus||e.rowStatus,visibility:t.visibility||e.visibility,webId:t.webId||e.webId,deletedAt:t.deleted?(0,d.moment)().format($6):t.deleted===!1?``:e.deletedAt||``};return console.warn(`Returning updated memo without file modification for memo ${e.id.slice(-6)}`),n}let h=parseInt(e.id.slice(14)),g=h,_=m.find(e=>e.position.start.line===h);if(!_&&e.content&&(P(`🔍 Memo not found at original line ${h}, searching by content...`),_=await Go(m,f,e.content,e.id)),!_&&e.hasId&&(P(`🔍 Searching by block ID: ${e.hasId}`),_=m.find(t=>t.position?f.slice(t.position.start.line,t.position.end.line+1).join(`
  31. `).includes(`^${e.hasId}`):!1)),!_){console.warn(`⚠️ List item not found after all search strategies for memo ${e.id.slice(-6)}. Original line: ${h}. This might indicate a line number mismatch.`);let n={...e,content:t.content||e.content,thinoType:t.thinoType||e.thinoType,updatedAt:(0,d.moment)().format($6),pinned:t.pinned===void 0?e.pinned:t.pinned,rowStatus:t.rowStatus||e.rowStatus,visibility:t.visibility||e.visibility,webId:t.webId||e.webId,deletedAt:t.deleted?(0,d.moment)().format($6):t.deleted===!1?``:e.deletedAt||``};return console.warn(`Returning updated memo without file modification for memo ${e.id.slice(-6)}`),n}let v=_.position.start.line;v!==h&&P(`📍 Memo location corrected: ${h} → ${v} for memo ${e.id.slice(-6)}`);let y=new Set(wo(v,m)),b=e.content.trim().split(`
  32. `).length,x=v+(b>1?b:0);g=To(v,m,f.length,x);let S=m.find(e=>{let t=e.position.start.line;if(t<=v||y.has(t))return!1;let n=f[t]||``;return/^(\s*)- (\[.\] )?\d{2}:\d{2}/.test(n)});S&&g>=S.position.start.line&&(console.warn(`⚠️ Limiting endLine to prevent including next memo. Original: ${g}, Limited: ${S.position.start.line-1}`),g=S.position.start.line-1);let C=f.slice(v,g+1),w=C.join(`
  33. `),T=w;P(`Original content:`,w);let E=i.vault.getConfig($43)===void 0||i.vault.getConfig($43)===!0,ee=E?1:i.vault.getConfig($bb),te=(E?` `:` `).repeat(ee),ne=w.match(/\s\^([0-9a-zA-Z-]+)($|\s|\n)/),re=t.hasId===void 0?ne?ne[1]:e.hasId||null:t.hasId,ie=_s(C[0]||``),ae;ae=ie.fullTimeMatch?ie.fullTimeMatch:c?(0,d.moment)(e.createdAt,$6).format($17):(parseInt(e.id.toString().slice(10,12))+24).toString()+`:`+e.id.toString().slice(12,14);let oe=ae;!ie.fullTimeMatch&&a.DefaultTimePrefix!==$17&&(oe=(0,d.moment)(e.createdAt,$6).format(a.DefaultTimePrefix));let se={pinned:w.includes($3w),deleted:w.match(/\[deleted::([^\]]+)\]/)?.[1]||``,archived:w.includes($2a),webId:w.match(/\[webId::([^\]]+)\]/)?.[1]||``,visibility:w.match(/\[visibility::"([^"]+)"\]/)?.[1]||``};if(t.content){let n=t.thinoType?t.thinoType===$06?$7k:t.thinoType===$0p?$dl:t.thinoType.startsWith($fu)?`- [${t.thinoType.slice(5)}] `:`- `:e.thinoType===$06?$7k:e.thinoType===$0p?$dl:e.thinoType.startsWith($fu)?`- [${e.thinoType.slice(5)}] `:`- `,r=[];if((t.pinned===void 0?se.pinned:t.pinned)&&r.push($3w),t.deleted||t.deleted!==!1&&se.deleted){let e=t.deleted?(0,d.moment)().format($08):se.deleted;r.push(`[deleted::${e}]`)}(t.rowStatus===$07||t.rowStatus!==$0b&&se.archived)&&r.push($2a),(t.webId===void 0?se.webId:t.webId)&&r.push(`[webId::${t.webId===void 0?se.webId:t.webId}]`),(t.visibility||se.visibility)&&r.push(`[visibility::"${t.visibility||se.visibility}"]`);let i=re?`^${re}`:``,a=t.content.trim().split(`
  34. `).length>1,o=t.content.trim().split(`
  35. `);if(a){let e=o.map(e=>te+e);T=`${n}${oe}${re?` ${i}`:``}\n${e.join(`
  36. `)} ${r.join(` `)}`.trim()}else T=`${n}${oe} ${t.content.trim()} ${r.join(` `)}`.trim()+(i?` ${i}`:``)}else{if(t.thinoType){let e=t.thinoType===$06?$7k:t.thinoType===$0p?$dl:t.thinoType.startsWith($fu)?`- [${t.thinoType.slice(5)}] `:`- `;T=T.replace(/^((- \[.\] )|((-|\*) ))/,e)}if(t.rowStatus&&(t.rowStatus===$07?T.includes($m8)?T=T.replace(/\[archived::(true|false)\]/,$2a):T+=(T.endsWith(` `)?``:` `)+$2a:t.rowStatus===$0b&&(T=T.replace(/\s?\[archived::(true|false)\]/,``))),t.visibility){let e=`[visibility::"${t.visibility}"]`;T.includes(`[visibility::`)?T=T.replace(/\[visibility::"(PUBLIC|PROTECTED)"\]/,e):T+=(T.endsWith(` `)?``:` `)+e}if(t.pinned!==void 0&&(t.pinned?T.includes(`[pinned::`)?T=T.replace(/\[pinned::(true|false)\]/,$3w):T+=(T.endsWith(` `)?``:` `)+$3w:T=T.replace(/\s?\[pinned::(true|false)\]/,``)),t.webId!==void 0&&(T.includes(`[webId::`)?T=t.webId===``?T.replace(/\s?\[webId::([^\]]+)\]/,``):T.replace(/\[webId::([^\]]+)\]/,`[webId::${t.webId}]`):t.webId!==``&&(T+=(T.endsWith(` `)?``:` `)+`[webId::${t.webId}]`)),t.deleted!==void 0){let e=(0,d.moment)();if(t.deleted){let t=`[deleted::${e.format($08)}]`;T.includes($fw)?T=T.replace(/\[deleted::([^\]]+)\]/,t):T+=(T.endsWith(` `)?``:` `)+t}else T=T.replace(/\s?\[deleted::([^\]]+)\]/,``)}if(t.hasId!==void 0||re){let e=t.hasId===void 0?re:t.hasId;if(T=T.replace(/\s\^([0-9a-zA-Z-]+)($|\s|\n)/g,``),e){let t=T.split(`
  37. `);t[0]=t[0].trimEnd()+` ^${e}`,T=t.join(`
  38. `)}}}if(T!==w){let r=g-v+1,i=T.trim().split(`
  39. `);r>10&&i.length<r/2&&console.warn(`⚠️ Safety check: Replacing ${r} lines with ${i.length} lines for memo ${e.id.slice(-6)}. This might indicate content mixing.`);let a=(w.match(/^- \d{2}:\d{2}/gm)||[]).length;if(a>1){console.warn(`⚠️ Safety check: Original content contains ${a} memo-like structures. Limiting replacement to single memo.`);let e=w.match(/^- \d{2}:\d{2}.*$/m);if(e){let t=w.indexOf(e[0]),n=w.substring(t+e[0].length).match(/^- \d{2}:\d{2}/m);if(n){let r=v+w.substring(0,t+e[0].length+w.substring(t+e[0].length).indexOf(n[0])).split(`
  40. `).length-1;g=Math.min(g,r-1),P(`📍 Limited endLine to ${g} to prevent including next memo`)}}}let o=g-v+1;f.splice(v,o,T.trim()),Y.markPathPending(u.path),G.setChangedByMemos(!0),await n.modify(u,f.join(`
  41. `)),P($jt,e,t.deleted);let s=(0,d.moment)();return{...e,thinoType:t.thinoType||e.thinoType,createdAt:e.createdAt,updatedAt:(0,d.moment)().format($6),content:t.content??e.content,rowStatus:t.rowStatus??e.rowStatus,visibility:t.visibility??e.visibility,pinned:t.pinned??e.pinned,webId:t.webId??e.webId,hasId:t.hasId??e.hasId,deletedAt:t.deleted?s.format($6):t.deleted===!1?``:e.deletedAt?e.deletedAt:``}}return e}async function es(e,t,n){let{vault:r,metadataCache:i}=L.getState().dailyNotesState.app||Sn(),a=r.getFileByPath(e);if(!a)return;let o=i.getFileCache(a)?.listItems||[],s=[],c=r.getConfig($43)===void 0||xn().vault.getConfig($43)===!0,l=c?1:r.getConfig($bb),u=(c?` `:` `).repeat(l),f=(0,d.moment)(),p=(await r.read(a)).split(`
  42. `);return t.map(e=>{let t=parseInt(e.id.slice(14)),n=o.find(e=>e.position.start.line===t);if(!n&&e.content&&(P(`🔍 Bulk update: Memo not found at original line ${t}, searching by content...`),n=o.find(t=>{if(!t.position)return!1;let n=p.slice(t.position.start.line,t.position.end.line+1).join(`
  43. `).replace(/^- \d{2}:\d{2}\s*/,``).replace(/^- \[.\]\s*\d{2}:\d{2}\s*/,``).replace(/^- \[.\]\s*/,``).replace(/^- /,``).trim(),r=e.content.trim();return n.includes(r.substring(0,50))})),!n)return console.warn(`⚠️ Bulk update: Could not find memo ${e.id.slice(-6)} at line ${t}`),null;let r=n.position.start.line,i=Qo(r,o,p).map(e=>{let t=o.find(t=>t.position.start.line===e);return t?t.position.end.line:-1}),a=Math.max(...i,n.position.end.line),s=o.find(e=>e.position.start.line>r&&(!e.parent||e.parent<=0));return s&&a>=s.position.start.line&&(console.warn(`⚠️ Bulk update: Limiting endLine to prevent including next block. Original: ${a}, Limited: ${s.position.start.line-1}`),a=s.position.start.line-1),{id:e.id,start:r,end:a}}).filter(Boolean).forEach(e=>{let r=p.slice(e.start,e.end+1).join(`
  44. `),i=r.split(`
  45. `),a=i[i.length-1].trim(),o=r,c=/\[(pinned|archived|deleted|webId|visibility)::[^\]]*\]\s*$/.test(a),l=(e,t)=>e.split(`
  46. `).length>1&&(/```/g.test(a)||!c)?e+`
  47. `+u+t:e+(e.endsWith(` `)?``:` `)+t;if(n===$5v){let e=$fw+f.format($08)+`]`;o=o.replace(/\[deleted::([^\]]+)\]/,``),o=l(o,e)}if(n===$f8&&(o=o.replace(/ ?\[deleted::([^\]]+)\]/,``)),n===$11){let e=$2a;o=o.includes($m8)?o.replace(/\[archived::(true|false)\]/,e):l(o,e)}n===$ec&&(o=o.replace(/ ?\[archived::(true|false)\]/,``)),n===$6u?p.splice(e.start,e.end-e.start+1):p.splice(e.start,e.end-e.start+1,o),s.push({...t.find(t=>t.id===e.id),deletedAt:n===$5v?f.format($6):``,rowStatus:n===$11?$07:$0b})}),Y.markPathPending(a.path),G.setChangedByMemos(!0),await r.modify(a,p.join(`
  48. `)),s}async function ts(e,t){return!e.sourceType||e.sourceType!==$9?e:{...await $o({...e,sourceType:$00},t),sourceType:$9}}function ns(e,t){return{...e,webId:t,updatedAt:(0,d.moment)().format($6)}}async function rs(e,t){let{vault:n}=L.getState().dailyNotesState.app,r=``;try{r=await n.read(e)}catch(t){console.error(t),r=await n.cachedRead(e)}let i=r.split(/\r?\n/),a=[],o=!1;for(let{memo:n,webId:r}of t){let t=i.findIndex(e=>e.includes(`id::`+n.id)||e.includes(`Id::`+n.id)||n.webId&&e.includes(n.webId));t===-1?console.warn(`⚠️ attachWebIdsBulk: metadata line not found for memo ${n.id.slice(-6)} in ${e.path}`):(i[t]=Jo(i[t],{id:n.id,webId:r}),o=!0),a.push(ns(n,r))}return o&&(Y.markPathPending(e.path),G.setChangedByMemos(!0),await n.modify(e,i.join(`
  49. `))),a}async function is(e,t){let{vault:n,metadataCache:r}=L.getState().dailyNotesState.app,i=(await n.read(e)).split(`
  50. `),a=r.getFileCache(e)?.listItems||[];a.length===0&&await Po(e)&&(a=r.getFileCache(e)?.listItems||[]);let o=[],s=!1;for(let{memo:n,webId:r}of t){let t=parseInt(n.id.slice(14)),c=a.find(e=>e.position.start.line===t);if(!c&&n.content&&(c=await Go(a,i,n.content,n.id)),!c&&n.hasId&&(c=a.find(e=>e.position?i.slice(e.position.start.line,e.position.end.line+1).join(`
  51. `).includes(`^${n.hasId}`):!1)),c){let e=c.position.start.line,t=c.position.end?.line;(typeof t!=$0e||t<e)&&(t=e),t>=i.length&&(t=i.length-1);let n=a.find(t=>t.position.start.line>e&&/^(\s*)- (\[.\] )?\d{2}:\d{2}/.test(i[t.position.start.line]||``));n&&t>=n.position.start.line&&(t=Math.max(e,n.position.start.line-1)),Vo(i,e,t,r),s=!0}else console.warn(`⚠️ attachWebIdsBulk: list item not found for memo ${n.id.slice(-6)} in ${e.path}`);o.push(ns(n,r))}return s&&(Y.markPathPending(e.path),G.setChangedByMemos(!0),await n.modify(e,i.join(`
  52. `))),o}async function as(e,t){let{vault:n}=L.getState().dailyNotesState.app,r=await n.read(e),i=JSON.parse(r),a=(0,d.moment)().format($6),o=[],s=!1;for(let{memo:n,webId:r}of t){let t=i.nodes.find(e=>e.id===n.id);t?(t.webId=r,t.updatedAt=a,s=!0):console.warn(`⚠️ attachWebIdsBulk: canvas node not found for memo ${n.id.slice(-6)} in ${e.path}`),o.push(ns(n,r))}return s&&(Y.markPathPending(e.path),G.setChangedByMemos(!0),await n.modify(e,JSON.stringify(i,null,2))),o}async function os(e,t){let{fileManager:n}=L.getState().dailyNotesState.app,r=(0,d.moment)().format($6),{webId:i}=t[t.length-1];return Y.markPathPending(e.path),await n.processFrontMatter(e,e=>{e.webId=i,e.createdAt||=r,e.updatedAt=r}),G.setChangedByMemos(!0),t.map(({memo:e,webId:t})=>ns(e,t))}async function ss(e){let{vault:t}=L.getState().dailyNotesState.app,n=new Map;for(let t of e){let e=t.memo.path;if(!e){console.warn(`⚠️ attachWebIdsBulk: memo ${t.memo.id.slice(-6)} has no path, skipping`);continue}let r=n.get(e)??[];r.push(t),n.set(e,r)}let r=[];for(let[e,i]of n){let n=t.getAbstractFileByPath(e);if(!(n instanceof d.TFile)){console.warn(`⚠️ attachWebIdsBulk: file not found ${e}`);continue}switch(i[0].memo.sourceType){case $00:case $9:r.push(...await is(n,i));break;case $0r:r.push(...await as(n,i));break;case $0g:r.push(...await os(n,i));break;default:r.push(...await rs(n,i));break}}return r}var cs,ls,us=o((()=>{wi(),I(),X(),Os(),zo(),Wo(),Dn(),wn(),Eo(),cs=e=>{switch(e?.sourceType){case $0r:return Zo(e,{id:e.id,pinned:!0});case $00:return $o(e,{id:e.id,pinned:!0});case $0g:return Yo(e,{id:e.id,pinned:!0});case $0i:return Xo(e,{id:e.id,pinned:!0});case $9:return ts(e,{id:e.id,pinned:!0})}},ls=e=>{switch(e?.sourceType){case $0r:return Zo(e,{id:e.id,pinned:!1});case $00:return $o(e,{id:e.id,pinned:!1});case $0g:return Yo(e,{id:e.id,pinned:!1});case $0i:return Xo(e,{id:e.id,pinned:!1});case $9:return ts(e,{id:e.id,pinned:!1})}}}));async function ds(e,t){if(!t)return 0;let{vault:n}=L.getState().dailyNotesState.app,r=e?.DefaultMemoComposition,i=e?.ProcessEntriesBelow&&e?.ProcessContentTarget!==$9j?e?.ProcessEntriesBelow:``,a=e?.ProcessContentTarget===$9j?``:e?.DifferentInsertTarget?e?.InsertAfterForTask?e?.InsertAfterForTask:``:i,o;try{o=await n.read(t)}catch(e){console.error(e),o=await n.cachedRead(t)}let s;s=r!=``&&/{TIME}/g.test(r)&&/{CONTENT}/g.test(r)?`(-|\\*) (\\[(.{1})\\]\\s)?`+r.replace(/{TIME}/g,`((\\<time\\>)?\\d{1,2}:\\d{2}(\\:\\d{2})?)?`).replace(/ {CONTENT}/g,``):`(-|\\*) (\\[(.{1})\\]\\s)?((\\<time\\>)?\\d{1,2}\\:\\d{2}(\\:\\d{2})?)?`;let c=new RegExp(s,`g`),l=(o.match(c)||[]).length,u=new RegExp(i.replace(/([.?*+^$[\]\\(){}|-])/g,`\\$1`),`g`),d=new RegExp(a.replace(/([.?*+^$[\]\\(){}|-])/g,`\\$1`),`g`),f=(o.match(u)||[]).length,p=(o.match(d)||[]).length;return o=null,f||p?l:0}function fs(e,t,n,r,i){let a=L.getState().dailyNotesState.app||Sn(),o=zn(i,$04)||(0,d.moment)(i.stat.ctime),s=ko(i,n,t),c=a?.metadataCache.getFileCache(i),l={frontmatter:c?.frontmatter||{},tags:c?.frontmatter?.tags||[]};for(let t of s){ps(o,t,e);let{rawText:n,memoType:a}=ms(t),{content:s,pinned:c,archived:u,deleted:f,deletedAtStr:p,webId:m,visibility:h}=hs(n,t),g=gs(s);r.push({id:o.format($08)+`${t.index}`,content:s.trim(),createdAt:o.format($6),updatedAt:o.format($6),createdAtTs:o.valueOf(),updatedAtTs:o.valueOf(),thinoType:a,hasId:t.blockId?t.blockId:``,linkId:g,path:i.path,deletedAt:f?(0,d.moment)(p,$08).format($19):``,rowStatus:u?$07:$0b,visibility:h,pinned:c,creatorName:$0h,resourceList:[],sourceType:$00,webId:m,fileInfo:l})}}function ps(e,t,n){let r=_s(t.line);if(r.startHour&&r.startMin)e.hours(parseInt(r.startHour)),e.minutes(parseInt(r.startMin)),r.startSec?e.seconds(parseInt(r.startSec)):e.seconds(0);else{let r=Ss(n.DefaultMemoComposition,t.line),i=Cs(n.DefaultMemoComposition,t.line),a=ws(t.line);e.hours(parseInt(r)),e.minutes(parseInt(i)),a?e.seconds(parseInt(a)):e.seconds(0)}}function ms(e){let t=vs(e.line),n;if(/^\s*[-*]\s(\[(.)\])\s/g.test(e.line)){let r=Ts(e.line);t=ys(e.line),n=xs(r)}else n=$9;return{rawText:t,memoType:n}}function hs(e,t){if(!e)return{content:``,pinned:!1,archived:!1,deleted:!1,deletedAtStr:``,webId:``,visibility:$4k};let n=e.trim().replaceAll(/<br>/g,`
  53. `),r=new RegExp(/\[(pinned|PINNED)::true\]/,`g`).test(e),i=new RegExp(/\[(archived|ARCHIVED)::true\]/,`g`).test(e),a=new RegExp(/\[(deleted|DELETED)::([^\]]*)\]/,`g`).test(e),o=new RegExp(/\[(deleted|DELETED)::([^\]]*)\]/,`g`).exec(e)?.[2],s=new RegExp(/\[(webId|WEBID)::([^\]]*)\]/,`g`).exec(e)?.[2],c=new RegExp(/\[(visibility|VISIBILITY)::("PROTECT"|"PUBLIC")\]/,`g`).test(e)?$1b:$4k;return n=n.replace(/\s?\[pinned::[^\]]+\]/g,``).replace(/\s?\[visibility::[^\]]+\]/g,``).replace(/\s?\[archived::[^\]]+\]/g,``).replace(/\s?\[deleted::[^\]]+\]/g,``).replace(/\s?\[webId::[^\]]+\]/g,``),t.blockId&&(n=n.replace(`^`+t.blockId,``)),{content:n,pinned:r,archived:i,deleted:a,deletedAtStr:o,webId:s,visibility:c}}function gs(e){let t=[],n=/(?:\[\[([^\]|]+)#\^([a-zA-Z0-9-]+)(?:\|[^\]]+)?\]\])|(?:\[.+?\]\(([^)]+)#\^([a-zA-Z0-9-]+)\))/g,r;for(;(r=n.exec(e))!==null;)r[1]&&r[2]?t.push(`${r[1]}#^${r[2]}`):r[3]&&r[4]&&t.push(`${r[3]}#^${r[4]}`);return t}function _s(e){let t=/^\s*(-|\*|\d+\.)\s+(\[.\]\s+)?((\d{1,2}):(\d{2})(:(\d{2}))?)-(\d{1,2}):(\d{2})(:(\d{2}))?/,n=/^\s*(-|\*|\d+\.)\s+(\[.\]\s+)?(\d{1,2}):(\d{2})(:(\d{2}))?/,r=e.match(t);if(r){let e=r[0].replace(/^\s*(-|\*|\d+\.)\s+(\[.\]\s+)?/,``);return{startHour:r[4],startMin:r[5],startSec:r[7],endHour:r[8],endMin:r[9],endSec:r[11],fullTimeMatch:e}}let i=e.match(n);if(i){let e=i[0].replace(/^\s*(-|\*|\d+\.)\s+(\[.\]\s+)?/,``);return{startHour:i[3],startMin:i[4],startSec:i[6],fullTimeMatch:e}}return{startHour:``,startMin:``,fullTimeMatch:``}}function vs(e){let t=_s(e);return t.fullTimeMatch?e.replace(RegExp(`^(-|\\*|\\d\\.) (${t.fullTimeMatch})\\s(.*)`),`$3`):e.replace(/^(-|\*|\d\.) (\d{1,2}:\d{2}(:\d{2})?)\s(.*)/g,`$4`)}function ys(e){return Ds(e)}async function bs(e,t=!1){let n=L.getState().dailyNotesState.app,r=n.vault.getFileByPath(e.path);if(r&&e.hasId)return t?`!`+n.fileManager.generateMarkdownLink(r,``,`#^`+e.hasId,e.id):e.hasId?n.fileManager.generateMarkdownLink(r,``,`#^`+e.hasId,e.id):`[@THINO](${e.id})`;let i=R.randomId(6);return await $o(e,{id:e.id,hasId:i}),r?t?`!`+n.fileManager.generateMarkdownLink(r,``,`#^`+i,e.id):n.fileManager.generateMarkdownLink(r,``,`#^`+i,e.id):`[@THINO](${e.id})`}var xs,Ss,Cs,ws,Ts,Es,Ds,Os=o((()=>{wi(),rr(),I(),No(),Ia(),us(),wn(),xs=e=>{let t;switch(e){case` `:t=$06;break;case`x`:case`X`:t=$0p;break;default:t=`TASK-`+e;break}return t},Ss=(e,t)=>{let n=_s(t);if(n.startHour)return n.startHour;let r;return r=e!=``&&/{TIME}/g.test(e)&&/{CONTENT}/g.test(e)?$2o+e.replace(/{TIME}/g,$2y).replace(/{CONTENT}/g,`(.*)`):$0u,new RegExp(r,``).exec(t)?.[6]},Cs=(e,t)=>{let n=_s(t);if(n.startMin)return n.startMin;let r;return r=e!=``&&/{TIME}/g.test(e)&&/{CONTENT}/g.test(e)?$2o+e.replace(/{TIME}/g,$2y).replace(/{CONTENT}/g,`(.*)`):$0u,new RegExp(r,``).exec(t)?.[7]},ws=e=>{let t=_s(e);return t.startSec?t.startSec:RegExp(`^\\s*(\\-|\\*|(\\d{1,}\\.))\\s(\\[(.{1})\\]\\s?)?(\\d{1,2})\\:(\\d{2})\\:(\\d{2})(.*)`,``).exec(e)?.[7]},Ts=e=>/^\s*[-*]\s(\[(.{1})\])\s(.*)/.exec(e)?.[2],Es=()=>Mn()?!0:(new d.Notice(F(111)),!1),Ds=e=>{let t=_s(e);return t.fullTimeMatch?RegExp(`^(-|\\*|\\d\\.)\\s+\\[.\\]\\s(${t.fullTimeMatch})\\s([\\w\\W]*)`).exec(e)?.[3]:RegExp(`^(-|\\*|\\d\\.)\\s+\\[.\\]\\s(\\d{1,2}:\\d{2}(:\\d{2})?)\\s([\\w\\W]*)`,``).exec(e)?.[4]}}));function ks(){return window.__THINO_PERF__||(window.__THINO_PERF__={records:{}}),window.__THINO_PERF__}var As,js,Ms=o((()=>{Dn(),As=()=>typeof performance<`u`?performance.now():Date.now(),js={start(e){try{let t=ks();t.records[e]={label:e,start:As()}}catch{}},end(e,t){try{let n=ks().records[e];if(!n)return;n.end=As(),n.duration=n.end-n.start,P(`[THINO][PERF] ${e}: ${n.duration.toFixed(1)}ms`,t||``)}catch{}},mark(e){this.start(e),this.end(e)}}}));function Ns(){return``}function Ps(e){let t;try{t=new URL(e)}catch{return null}return t.username||t.password||t.search||t.hash||!(t.protocol===`https:`||t.protocol===`http:`&&Bs.has(t.hostname))?null:`${t.origin}${t.pathname.replace(/\/+$/,``)}`}function Fs(){let e=Ns();if(!e)return Rs;let t=Ps(e);if(t===null)throw new zs(`Invalid sync server "${e}": use https:// (http:// is only allowed for localhost)`);return t}function Is(e){let t=2166136261,n=1523705862;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r);t=Math.imul(t^i,16777619)>>>0,n=Math.imul(n^i,16777619)>>>0}return t.toString(16).padStart(8,`0`)+n.toString(16).padStart(8,`0`)}function Ls(){let e=Ns(),t=e?Ps(e)??e:Rs;return t===$a4?``:Is(t)}var Rs,zs,Bs,Vs=o((()=>{wi(),Rs=$a4,zs=class extends Error{constructor(e){super(e),this.name=`InvalidSyncServerError`}},Bs=new Set([$i0,$80,`[::1]`])}));function Hs(e){let t=Ls();return t?`${e}-${t}`:e}function Us(e){return btoa(String.fromCharCode(...e))}function Ws(e){let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length));for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}async function Gs(e,t){let n=e.secretStorage.getSecret(Hs(oc))||``;return!n&&t&&(n=Us(crypto.getRandomValues(new Uint8Array(32))),e.secretStorage.setSecret(Hs(oc),n)),n?crypto.subtle.importKey(`raw`,Ws(n),$lm,!1,[`encrypt`,`decrypt`]):null}function Ks(e){let t=e.secretStorage.getSecret(cc);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}function qs(e){return e?.secretStorage.getSecret(Hs(ic))||``}function Js(e,t){e.secretStorage.setSecret(Hs(ic),t)}function Ys(e){e.secretStorage.setSecret(Hs(ic),``)}async function Xs(e){let t=e.secretStorage.getSecret(Hs(ac));if(!t)return null;try{let n=JSON.parse(t);if(n.version!==1||!n.iv||!n.ciphertext)return null;let r=await Gs(e,!1);if(!r)return null;let i=await crypto.subtle.decrypt({name:$lm,iv:Ws(n.iv),additionalData:uc},r,Ws(n.ciphertext)),a=JSON.parse(new TextDecoder().decode(i));return typeof a.account!=$q||typeof a.password!=$q?null:{account:a.account,password:a.password}}catch{return null}}async function Zs(e,t){let n=await Gs(e,!0);if(!n)throw Error(`Unable to initialize credential encryption`);let r=crypto.getRandomValues(new Uint8Array(12)),i=new TextEncoder().encode(JSON.stringify(t)),a=await crypto.subtle.encrypt({name:$lm,iv:r,additionalData:uc},n,i),o={version:1,iv:Us(r),ciphertext:Us(new Uint8Array(a))};e.secretStorage.setSecret(Hs(ac),JSON.stringify(o))}function Qs(e,t){e.secretStorage.setSecret(Hs(sc),t)}function $s(e){Ys(e),e.secretStorage.setSecret(Hs(ac),``),e.secretStorage.setSecret(Hs(oc),``),e.secretStorage.setSecret(Hs(sc),``)}function ec(e,t){return Ks(e)[t]||``}function tc(e,t,n){let r=Ks(e);r[t]=n,e.secretStorage.setSecret(cc,JSON.stringify(r))}function nc(e,t){let n=Ks(e);return n[t]?(delete n[t],e.secretStorage.setSecret(cc,JSON.stringify(n)),!0):!1}function rc(e,t){let n=e.loadLocalStorage(lc);if(!e.secretStorage.getSecret(ic)&&typeof n==$q&&n&&e.secretStorage.setSecret(ic,n),n!=null&&e.saveLocalStorage(lc,``),Object.keys(t).length===0)return!1;let r=Ks(e);return e.secretStorage.setSecret(cc,JSON.stringify({...t,...r})),!0}var ic,ac,oc,sc,cc,lc,uc,dc=o((()=>{Vs(),ic=`thino-web-api-key`,ac=`thino-web-credentials`,oc=`thino-web-credential-key`,sc=`thino-web-session-cookie`,cc=`thino-legacy-verification-tokens`,lc=`tokenForSync`,uc=new TextEncoder().encode(`thino-web-sync-credentials-v1`)}));async function fc(e,t){if(!e)return t;let n=L.getState().dailyNotesState.app||Sn();if(!await n.vault.adapter.exists(e.path))return t;let r=L.getState().dailyNotesState.settings,i=await jo(e,n),a=r.IgnoreFolderForMultiType;if(new Set(a.filter(e=>e!==``)).has(e.parent?.path))return t;let o=(0,d.moment)(e.stat.ctime).format($6),s=n?.metadataCache.getFileCache(e),c={frontmatter:s?.frontmatter||{},tags:s?.frontmatter?.tags||[]};await n.fileManager.processFrontMatter(e,n=>{if(n.id||=R.randomId(16),n.createdAt?o=(0,d.moment)(n.createdAt,$6).isValid()?n.createdAt:o:n.createdAt=o,!i.trim())return t;let r=!!n.pinned,a=n.rowStatus&&n.rowStatus===$07,s=!!n.deletedAt,l=n.deletedAt?n.deletedAt:``,u=n.visibility?n.visibility:$4k,f=n.thinoType?n.thinoType:$9,p=n.webId?n.webId:``,m=n.id?n.id:``,h=n.hasId?n.hasId:``,g=n.linkId?n.linkId:``,_=e.path,v={id:m,content:i,createdAt:o,updatedAt:o,deletedAt:s?(0,d.moment)(l,$08).format($19):``,pinned:r,rowStatus:a?$07:$0b,visibility:u,thinoType:f,hasId:h,linkId:g,path:_,creatorName:`Memo`,sourceType:$0g,resourceList:[],webId:p,fileInfo:c};return R.stampMemoTimestamps(v),t.push(v),t})}async function pc(e,t){if(!e||!await(L.getState().dailyNotesState.app||Sn()).vault.adapter.exists(e.path))return t;let{vault:n,metadataCache:r}=L.getState().dailyNotesState.app||Sn(),i;try{i=await n.read(e)}catch{return t}if(!i)return;let a=(0,d.moment)(e.stat.ctime).format($6),o=(0,d.moment)(e.stat.mtime).format($6),s=e.path,c=[],l=[],u=r.getFileCache(e),f={frontmatter:u?.frontmatter||{},tags:u?.frontmatter?.tags||[]},p=Mo(i);for(let e of p){let n=e.metadata.match(/\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}/g);if(!n)continue;let r=e.metadata.match(/id::([^\]]*)/g)?.[0]?.replace(`id::`,``);if(!r)continue;let i=n?n[0]:a,u=n?n[0]:o,p=e.metadata.match(/webId::([^\]]*)/g)?e.metadata.match(/webId::([^\]]*)/g)?.[0]?.replace(`webId::`,``):``,m=e.metadata.contains($3w),h=e.metadata.contains($2a),g=e.metadata.contains($fw),_=new RegExp(/\[(deleted|DELETED)::([^\]]*)\]/,`g`).exec(e.metadata)?.[2],v=new RegExp(/\[(visibility|VISIBILITY)::("PROTECT"|"PUBLIC")\]/,`g`).test(e.metadata)?$1b:$4k,y=new RegExp(/\[(thinoType|THINOTYPE)::([^\]]*)\]/,`g`).exec(e.metadata)?.[2],b={id:r,content:e.content,createdAt:i,updatedAt:u,deletedAt:g?(0,d.moment)(_,$08).format($19):``,pinned:m,rowStatus:h?$07:$0b,visibility:v,thinoType:y||$9,hasId:``,linkId:c,path:s,creatorName:$0h,sourceType:$0i,resourceList:l,webId:p,fileInfo:f};R.stampMemoTimestamps(b),t.push(b)}return t}async function mc(e,t){if(!e)return[];let n=L.getState().dailyNotesState.app||Sn();if(!await n.vault.adapter.exists(e.path))return t;let r=L.getState().dailyNotesState.settings,{vault:i}=n;if(await ds(r,e)===0)return;let a;try{a=await i.read(e)}catch{return t}let{content:o,startLine:s}=Oo(a,r?.ProcessContentTarget===$9j?``:r.ProcessEntriesBelow),c=``,l=0;if(r.DifferentInsertTarget&&r?.ProcessContentTarget!==$9j&&r.InsertAfterForTask&&!o.includes(r.InsertAfterForTask)){let{content:e,startLine:t}=Oo(a,r.InsertAfterForTask);c=e,l=t}let u=[];fs(r,o,s,u,e),r.DifferentInsertTarget&&c&&fs(r,c,l,u,e),u.length!==0&&t.push(...u.sort((e,t)=>e.createdAt>t.createdAt?-1:1))}async function hc(e,t){let n=L.getState().dailyNotesState.app||Sn();if(!(e instanceof d.TFile))return;if(!await n.vault.adapter.exists(e.path))return t;let r;try{r=await n.vault.read(e)}catch(t){console.error(t),r=await n.vault.cachedRead(e)}if(!r)return;let i=JSON.parse(r)?.nodes;for(let n of i){if(n.type===$gt||n.createdAt===void 0||n.text.trim()===``)continue;let r=(0,d.moment)(n?.createdAt,$08),i=(0,d.moment)(n?.updatedAt,$08),a=r.format($19),o=i.format($19),s=n?.deletedAt?(0,d.moment)(n?.deletedAt,$08).format($19):``,c=!!n?.pinned,l=n?.archived?$07:$0b,u=n?.visibility?n?.visibility:$4k,f=n?.thinoType?n?.thinoType:$9,p=n?.text?n?.text:``,m=n?.id?n?.id:``,h=n?.hasId?n?.hasId:``,g=n?.linkId?n?.linkId:``,_=e.path,v=[],y=n?.webId?n?.webId:void 0;t.push({id:m,content:p,createdAt:a,updatedAt:o,createdAtTs:r.valueOf(),updatedAtTs:i.valueOf(),deletedAt:s,pinned:c,rowStatus:l,visibility:u,thinoType:f,hasId:h,linkId:g,path:_,creatorName:`Memo`,sourceType:$0r,resourceList:v,webId:y,fileInfo:{frontmatter:{},tags:[]}})}}async function gc(e=[]){let t=[],n=[],r=L.getState().dailyNotesState.app||xn(),{vault:i}=r,{settings:a}=L.getState().dailyNotesState,o=qs(r),s=async(e,n)=>{for(let r of e)try{await n(r,t,a)}catch(e){console.error(e),new d.Notice(e)}};try{if(e.includes($0r)){let e=_c(i),n=t.length;js.start($9b),await s(e,hc),js.end($9b,{files:e.length,memosAdded:t.length-n})}}catch(e){console.error(e)}try{if(e.includes($0g)){let e=vc(i,r,a),n=t.length;js.start($aa),await s(e,fc),js.end($aa,{files:e.length,memosAdded:t.length-n})}}catch(e){console.error(e)}try{if(e.includes($00)){let e=await yc(i),n=t.length;js.start($a9),await s(e,mc),js.end($a9,{files:e.length,memosAdded:t.length-n})}}catch(e){console.error(e)}try{if(e.includes($0i)||o){let e=bc(i,r,a),n=t.length;js.start($aq),await s(e,pc),js.end($aq,{files:e.length,memosAdded:t.length-n})}}catch(e){console.error(e)}try{if(e.includes($9)){let e=xc(i,a),n=t.length;js.start($8u),await s(e,Sc),js.end($8u,{files:e.length,memosAdded:t.length-n})}}catch(e){console.error(e)}return{memos:t,commentMemos:n}}function _c(e){return e.getAllLoadedFiles().filter(e=>e instanceof d.TFile&&e.extension===$4o&&e.name.includes($3s))}function vc(e,t,n){let r=e.getMarkdownFiles(),i=r.filter(e=>e.parent?.path.includes(n.MemoOtherSaveLocation.MemoDefaultMultiFilePath.trim())&&!e.path?.endsWith(`thino.md`)),a=n.TagForMultiTypeFiles?r.filter(e=>!(e.parent?.path.includes(n.MemoOtherSaveLocation.MemoDefaultMultiFilePath.trim())&&!e.path?.endsWith(`thino.md`))&&(0,d.getAllTags)(t.metadataCache.getFileCache(e))?.contains(`#`+n.TagForMultiTypeFiles.replace(`#`,``))):[];return P(`MULTI FILES`,i,a),[...i,...a]}async function yc(e){let t=Oa();t===void 0&&new d.Notice(F(121)+`folder path is empty or undefined`),e.getAbstractFileByPath((0,d.normalizePath)(t))instanceof d.TFolder||new d.Notice(F(278));let n=Un();return Object.values(n).filter(e=>e instanceof d.TFile&&e.extension===`md`)}function bc(e,t,n){let r=e.getMarkdownFiles(),i=r.filter(e=>e.name.trim().includes($0c)),a=n.TagForFileTypeFiles?r.filter(e=>!e.name.trim().includes($0c)&&(0,d.getAllTags)(t.metadataCache.getFileCache(e))?.contains(`#`+n.TagForFileTypeFiles.replace(`#`,``))):[];return[...i,...a]}function xc(e,t){let n=t?.JournalSettings?.granularity||$04,r=t?.JournalSettings;if(r?.useIndependentSettings){let e={day:r.daily,week:r.weekly,month:r.monthly,year:r.yearly}[n];e&&(e.folder||e.format||e.template)&&On(n,e)}try{let e=Wn(n);return Object.values(e).filter(e=>e instanceof d.TFile)}catch(e){return console.error(`Failed to get journal files:`,e),[]}}async function Sc(e,t){if(!e||!await(L.getState().dailyNotesState.app||Sn()).vault.adapter.exists(e.path))return t;let n=L.getState().dailyNotesState.settings;return(n?.JournalSettings?.granularity||$04)===$04?Cc(e,t,n):wc(e,t,n)}async function Cc(e,t,n){let r=[];await mc(e,r);for(let e of r)e.sourceType=$9,t.push(e);return t}async function wc(e,t,n){let{vault:r,metadataCache:i}=L.getState().dailyNotesState.app||Sn(),a;try{a=await r.read(e)}catch{return t}if(!a)return t;let o=i.getFileCache(e),s={frontmatter:o?.frontmatter||{},tags:o?.frontmatter?.tags||[]},c=a.split(/\r?\n/),l=[];for(let e=0;e<c.length;e++){let t=c[e].match(/^##\s+(.+)$/);t&&(l.length>0&&(l[l.length-1].endLine=e-1),l.push({heading:t[1].trim(),startLine:e,endLine:c.length-1}))}let u=/^(\d{1,2}):(\d{2})(?::(\d{2}))?(?:\s|$)/,f=n?.JournalSettings?.headingDateFormat||$02;for(let n of l){let r=(0,d.moment)(n.heading,f,!1);if(!r.isValid()){let e=n.heading.match(/(\d{4})[/-](\d{1,2})[/-](\d{1,2})/);e&&(r=(0,d.moment)(`${e[1]}-${e[2]}-${e[3]}`,`YYYY-M-D`,!0))}if(!(!r||!r.isValid()))for(let i=n.startLine+1;i<=n.endLine;i++){let a=c[i];if(!a)continue;let o=a.match(/^(\s*)(-|\*|\d+\.)\s+(\[(.)\]\s+)?(.*)/);if(!o||o[1].length>0)continue;let l=o[4],f=o[5]||``,p=r.clone(),m=f,h=f.match(u);h&&(p.hours(parseInt(h[1])).minutes(parseInt(h[2])),h[3]&&p.seconds(parseInt(h[3])),m=f.slice(h[0].length));let g=m,_=``,v=0;for(let e=i+1;e<=n.endLine;e++){let t=c[e];if(t&&/^(-|\*|\d+\.)\s/.test(t)||t&&/^##\s/.test(t))break;if(!t||t.trim()===``){v++;continue}if(!_){let e=t.match(/^(\s+)/);_=e?e[0]:``}for(let e=0;e<v;e++)g+=`
  54. `;v=0;let n=_?t.replace(RegExp(`^`+_),``):t;g+=`
  55. `+n}let y=/\[(pinned|PINNED)::true\]/.test(g),b=/\[(archived|ARCHIVED)::true\]/.test(g),x=/\[(deleted|DELETED)::([^\]]*)\]/.test(g),S=/\[(deleted|DELETED)::([^\]]*)\]/.exec(g)?.[2],C=/\[(webId|WEBID)::([^\]]*)\]/.exec(g)?.[2],w=/\[(id|ID)::([^\]]*)\]/.exec(g)?.[2],T=/\[(visibility|VISIBILITY)::("PROTECT"|"PUBLIC")\]/.test(g)?$1b:$4k,E=g.replace(/\s?\[pinned::[^\]]+\]/g,``).replace(/\s?\[visibility::[^\]]+\]/g,``).replace(/\s?\[archived::[^\]]+\]/g,``).replace(/\s?\[deleted::[^\]]+\]/g,``).replace(/\s?\[webId::[^\]]+\]/g,``).replace(/\s?\[id::[^\]]+\]/g,``).trim(),ee=$9;l!==void 0&&(ee=l===` `?$06:l===`x`?$0p:`TASK-${l}`);let te={id:w||p.format($08)+`${i}`,content:E,createdAt:p.format($6),updatedAt:p.format($6),createdAtTs:p.valueOf(),updatedAtTs:p.valueOf(),deletedAt:x?(0,d.moment)(S,$08).format($19):``,thinoType:ee,hasId:``,linkId:[],path:e.path,pinned:y,rowStatus:b?$07:$0b,visibility:T,creatorName:$0h,resourceList:[],sourceType:$9,webId:C,fileInfo:s};R.stampMemoTimestamps(te),t.push(te)}}return t}var Tc=o((()=>{rr(),wi(),I(),Ia(),No(),Os(),Ms(),dc(),wn(),Dn()})),Ec,Dc=o((()=>{wi(),mo(),Ec=async(e,t,n)=>{let r=await uo(L.getState().dailyNotesState.app)||[],i=r.find(t=>t.id===e),a={...i,title:t,querystring:n},o=r.findIndex(t=>t.id===e);return r[o]=a,await fo(L.getState().dailyNotesState.app,r),[i]}}));function Oc(){return`${Fs()}/v1`}function kc(e){return e.substring(e.lastIndexOf(`.`)+1)}function Ac(e){return{id:e.id,createdAt:Date.now().toString(),filename:e.id,type:`${kc(e.url)}`,size:e.size.toString()}}function jc(e){let t=e?.matchAll(bl);return t?Array.from(t).map(e=>Ac({url:e.groups?.link,id:yl,size:0,mtime:``})).filter(e=>e.type!==$jn):[]}function Mc(e){if(e instanceof Date)return e.getTime();if(typeof e==$0e)return e;let t=Number(e);return Number.isFinite(t)&&t>0?t:new Date(e).getTime()}function Nc(e){return/^\s*[-*]\s+\[[xX]\]/m.test(e)?$0p:/^\s*[-*]\s+\[ \]/m.test(e)?$06:$9}function Pc(e){let t=e.mdContent||``,n=Mc(e.ctime),r=Mc(e.mtime),i=e.rowStatus===$10;return{id:String(e.id),createdAt:(0,d.moment)(n).format($6),updatedAt:(0,d.moment)(r).format($6),createdAtTs:n,updatedAtTs:r,deletedAt:i?(0,d.moment)(r).format($6):``,rowStatus:e.rowStatus,content:t,pinned:e.pinned,resourceList:jc(t),creatorName:$0c,sourceType:e.thinoType||$0i,visibility:$1b,deleted:!!e.dtime,thinoType:Nc(t)}}function Fc(){let e=L.getState().dailyNotesState.app;if(!e)throw new ml(`APP_UNAVAILABLE`,`Obsidian app is unavailable`);return e}function Ic(){return qs(Fc())}function Lc(e){return{Authorization:`Bearer ${e}`,"Content-Type":$0d}}function Rc(e){let t=e.json||{},n=typeof t.error==$0j?t.error:void 0,r=n?.message||(typeof t.error==$q?t.error:``)||t.message||e.text||`HTTP ${e.status}`;return new ml(n?.code||t.code||`HTTP_${e.status}`,r,e.status)}function zc(e,t){let n=Object.entries(e.headers||{}).find(([e])=>e.toLowerCase()===`set-cookie`)?.[1],r=(Array.isArray(n)?n:typeof n==$q?[n]:[]).flatMap(e=>e.split(/[\r\n]+|,(?=\s*(?:__Secure-|__Host-)?[\w.-]+=)/)).map(e=>e.trim().split(`;`,1)[0]).filter(Boolean);if(r.length>0)return r.join(`; `);if(t){let e=encodeURIComponent(t);return`thino.session_token=${e}; __Secure-thino.session_token=${e}`}throw new ml($h9,`Thino Web did not return a login session`)}async function Bc(e,t){let n=await(0,d.requestUrl)({url:`${Oc()}/auth/sign-in`,method:$25,contentType:$0d,headers:{"Content-Type":$0d,Origin:Fs()},body:JSON.stringify({emailOrPhone:e,password:t}),throw:!1});if(n.status<200||n.status>=300)throw Rc(n);let r=n.json;return{sessionCookie:zc(n,r?.token),user:r?.user}}async function Vc(e){let t=await(0,d.requestUrl)({url:`${Oc()}/auth/api-key/create`,method:$25,contentType:$0d,headers:{"Content-Type":$0d,Origin:Fs(),Cookie:e},body:JSON.stringify({name:`Obsidian Thino Sync`,prefix:$0c}),throw:!1});if(t.status<200||t.status>=300)throw Rc(t);let n=t.json;if(!n?.key)throw new ml($h0,`Thino Web did not return an API key`);return n.key}async function Hc(e,t){let{sessionCookie:n}=await Bc(e,t),r=await Vc(n);if(!await Xc(r))throw new ml($8y,`Thino Web returned an invalid API key`);return{apiKey:r,sessionCookie:n}}async function Uc(e,t,n){let r=t.trim();if(!r||!n)throw new ml($br,`Account and password are required`);let{apiKey:i,sessionCookie:a}=await Hc(r,n);await Zs(e,{account:r,password:n}),Qs(e,a),Js(e,i)}async function Wc(e=!1,t=``){if(xl!==null)return xl;let n=Fc(),r=qs(n);return r&&(!e||t&&r!==t)?r:(xl=(async()=>{let e=await Xs(n);if(!e)throw new ml(`CREDENTIALS_MISSING`,`Thino Web credentials are missing`);let{apiKey:t,sessionCookie:r}=await Hc(e.account,e.password);return Qs(n,r),Js(n,t),t})().finally(()=>{xl=null}),xl)}async function Gc(e,t,n,r){let i={url:e,method:t,headers:Lc(n),throw:!1};return r!==void 0&&(i.contentType=$0d,i.body=JSON.stringify(r)),(0,d.requestUrl)(i)}async function Kc(e,t,n,r=Oc()){let i=`${r}${e}`,a=await Wc(),o=await Gc(i,t,a,n);if((o.status===401||o.status===403)&&(a=await Wc(!0,a),o=await Gc(i,t,a,n)),o.status>=400){let e;try{e=o.json}catch{e=o.text}throw console.error(`[Thino Sync] ${t} ${i} -> ${o.status}`,{requestBody:n,responseBody:e}),Rc(o)}let s=o.json;if(e===$75&&P(`[Thino Sync] memo page exchange`,{request:n,httpStatus:o.status,response:s}),s&&typeof s==$0j&&$ir in s&&(s.status??0)>=400)throw new ml(s.name||s.code||`API_${s.status}`,s.message||`Thino Web returned status ${s.status}`,s.status);return s&&typeof s==$0j&&`payload`in s?s.payload:s}function qc(e){let t=[{column:$c7,operator:`equals`,value:e,relation:$81}];return e===$07?{id:0,name:`Archived`,filterItems:t}:e===$10?{id:2,name:`Deleted`,filterItems:t}:{id:vl,name:`Normal`,filterItems:t}}async function Jc(e,t){let n=await Kc($75,$25,{limit:hl,cursor:t,sortBy:`mtime`,sortOrder:$9w,filter:qc(e)});return P(`[Thino Sync] page ${e}: got=${n.thinos?.length??0} total=${n.totalCount??`?`} nextCursor=${n.nextCursor?`yes`:`no`}`),n}async function Yc(e){let t=new Set,n=Array.from(new Set(e.filter(Boolean)));for(let e=0;e<n.length;e+=_l){let r=await Kc(`/thinos/get-thinos-by-ids`,$25,{thinoIds:n.slice(e,e+_l)}),i=Array.isArray(r)?r:r?.thinos??[];for(let e of i)t.add(String(e.id))}return t}async function Xc(e){if(!e)return!1;try{if(await sl())return(await(0,d.requestUrl)({url:`${al()}/status`,headers:Lc(e),throw:!1})).status===200;let t=await(0,d.requestUrl)({url:`${Oc()}/auth/api-key/verify`,method:$25,contentType:$0d,headers:{"Content-Type":$0d},body:JSON.stringify({key:e}),throw:!1}),n=t.json;return t.status>=200&&t.status<300&&n?.valid===!0}catch{return!1}}async function Zc(e){if(e!==void 0)return Xc(e);let t=Ic();if(await Xc(t))return!0;try{return Xc(await Wc(!0,t))}catch{return!1}}async function Qc(e,t){let n=[$0b,$07,$10],r=e?Number(e):void 0,i=new Map,a=0;for(let e of n){let n,o=0,s=0;for(;;){let c=await Jc(e,n);s+=1;let l=!1;for(let e of c.thinos){if(r!==void 0&&Mc(e.mtime)<=r){l=!0;continue}i.set(String(e.id),e),o+=1}if(a+=c.thinos.length,t?.({processed:a,total:Math.max(a,i.size)}),l||!c.nextCursor||c.thinos.length===0)break;n=c.nextCursor}P(`[Thino Sync] pull ${e} since=${r??$ml} -> ${o} new (pages=${s})`)}return Array.from(i.values()).map(Pc)}async function $c(e){let t=await Kc(`/thinos/create-single-thino`,$25,{mdContent:e.content,thinoType:e.thinoType||$0i,source:d.Platform.isMobile?$dr:$ax,pinned:!1,rowStatus:$0b,encrypted:!1,contentType:$0c});if(!t.newThino)throw Error(`Thino Web did not return the created Thino`);return Pc(t.newThino)}function el(e){return{mdContent:e.content,ctime:new Date((0,d.moment)(e.createdAt,$6).valueOf()).toISOString(),mtime:new Date((0,d.moment)(e.updatedAt,$6).valueOf()).toISOString(),scheduledAt:new Date((0,d.moment)(e.createdAt,$6).valueOf()).toISOString(),rowStatus:e.deletedAt?$10:e.rowStatus,pinned:e.pinned,encrypted:!1,source:d.Platform.isMobile?$dr:$ax,thinoType:e.sourceType===$00||e.sourceType===$9?$00:$0i,contentType:$0c}}async function tl(e,t){let n=[],r=new Set,i=e.filter(e=>{if((e.content??``).trim().length===0||e.deletedAt||e.rowStatus===$10)return!1;if(e.id){if(r.has(e.id))return!1;r.add(e.id)}return!0}),a=e.length-i.length;a>0&&console.warn(`[Thino Sync] Skipping ${a} memo(s) before upload (blank / trashed / duplicate)`);for(let e=0;e<i.length;e+=gl){let r=i.slice(e,e+gl),a=await Kc(`/thinos/create-batch-thinos`,$25,r.map(el));if(a.newThinos.length!==r.length)throw Error(`Thino Web returned ${a.newThinos.length} of ${r.length} created records`);a.newThinos.forEach((e,t)=>{n.push({...Pc(e),localId:r[t]?.id})}),t?.({processed:Math.min(e+r.length,i.length),total:i.length})}return n}async function nl(e){let t=await Kc(`/thinos/update-single-thino/${e.id}`,$25,{content:null,...e.content!==void 0&&{mdContent:e.content},...e.rowStatus!==void 0&&{rowStatus:e.rowStatus},...e.pinned!==void 0&&{pinned:e.pinned},...e.thinoType!==void 0&&{thinoType:e.thinoType},source:d.Platform.isMobile?$dr:$ax});if(!t.newThino)throw Error(`Thino Web did not return the updated Thino`);return Pc(t.newThino)}function rl(e){return nl({id:e,rowStatus:$0b})}async function il(e){return nl({id:e,rowStatus:$10})}function al(){return`${Fs()}/v2/sync`}function ol(e){if(e.status!==401)return!1;try{let t=e.json?.error,n=typeof t==$0j?t?.code:void 0;return n===$kq||n===$8y}catch{return!1}}function sl(){let e=Fs(),t=wl.get(e);if(t&&Date.now()-t.at<Cl)return t.ok;let n=(0,d.requestUrl)({url:`${al()}/status`,throw:!1}).then(ol).catch(()=>!1).then(t=>(t&&wl.set(e,{at:1/0,ok:Promise.resolve(!0)}),t));return wl.set(e,{at:Date.now(),ok:n}),n}function cl(e){let t=e.mtime??e.dtime??e.ctime??0,n=!!e.purged;return{...Pc({id:e.id,ctime:e.ctime??t,mtime:t,dtime:e.dtime,rowStatus:n?$10:e.rowStatus,mdContent:e.mdContent??``,pinned:e.pinned,encrypted:e.encrypted,thinoType:e.thinoType}),deleted:n||!!e.dtime,webSeq:e.seq}}async function ll(e,t=500,n=0){let r=`?cursor=${encodeURIComponent(e)}&limit=${t}${n>0?`&wait=${n}`:``}`;try{return await Kc(`/pull${r}`,$3i,void 0,al())}catch(e){throw e instanceof ml&&e.status===410?new Sl(e.code,e.message,410):e}}async function ul(e){if(e.length===0)return[];let t=await Kc(`/push`,$25,{ops:e},al());if(!Array.isArray(t?.results)||t.results.length!==e.length)throw Error(`Sync server returned ${t?.results?.length??0} results for ${e.length} ops`);return t.results}function dl(e,t){let n=(0,d.moment)(e.createdAt,$6).valueOf();return{op:$nt,cid:t,mdContent:e.content,...Number.isFinite(n)&&{ctime:n},rowStatus:e.deletedAt?$10:e.rowStatus||$0b,pinned:!!e.pinned,thinoType:e.sourceType===$00||e.sourceType===$9?$00:$0i,source:d.Platform.isMobile?$dr:$ax}}function fl(e,t,n){return{op:$nt,cid:n,mdContent:e,thinoType:t,source:d.Platform.isMobile?$dr:$ax}}function pl(e,t,n){let r=Date.now();return Pc({id:String(e.id),ctime:e.ctime??r,mtime:e.mtime??r,dtime:null,rowStatus:$0b,mdContent:t,pinned:!1,encrypted:!1,thinoType:n})}var ml,hl,gl,_l,vl,yl,bl,xl,Sl,Cl,wl,Tl=o((()=>{wi(),dc(),Dn(),Vs(),ml=class extends Error{constructor(e,t,n){super(t),this.code=e,this.status=n,this.name=`ThinoWebAuthError`}},hl=50,gl=50,_l=100,vl=999999999,yl=$bf,bl=/!\[(?<content>[^\]]+)\]\((?<link>[^)]+)\)/g,xl=null,Sl=class extends ml{},Cl=600*1e3,wl=new Map}));function El(e){return!!e.deletedAt||e.rowStatus===$10}function Dl(e,t,n){let r=0,i=new Promise((e,i)=>{r=window.setTimeout(()=>i(Error(n)),t)});return Promise.race([e,i]).finally(()=>window.clearTimeout(r))}function Ol(e){return e.sourceType===$00||e.sourceType===$9?$00:$0i}var kl,Al,jl,Ml,Nl,Pl,Fl,Il,Ll,Rl,zl,Bl,Vl,Hl,Ul,q,Wl=o((()=>{to(),Tl(),dc(),Dn(),kl=`v1`,Al=`thinoSyncApiVersion`,jl=`thinoLastUpdated`,Ml=60*1e3,Nl=10*1e3,Pl=50,Fl=`thinoSyncCursorV2`,Il=`thinoSyncQueueV2`,Ll=500,Rl=25,zl=300,Bl=60*1e3,Vl=60*1e3,Hl=e=>new Promise(t=>window.setTimeout(t,e)),Ul=class{memoService;_pollingInterval=null;_pollingActive=!1;_onFocus=null;_lastFocusPullAt=0;_activePull=null;_activeFlush=null;_flushTimer=null;_flushBackoff=0;_longPollRun=0;_pushChain=Promise.resolve();_listeners=new Set;_status={phase:`idle`,processed:0,total:0,message:``,migration:!1};setMemoService(e){this.memoService=e}subscribe=e=>(this._listeners.add(e),()=>this._listeners.delete(e));getSnapshot=()=>this._status;updateStatus(e){this._status={...this._status,...e},this._listeners.forEach(e=>e())}isSyncEnabled(){let e=W.getState().settings;return!!(this.getToken()&&e?.startSync)}getToken(){return qs(W.getState().app)}isMigrationPending(){return W.getState().app?.loadLocalStorage?.(Al)!==kl}getLastUpdatedTime(){let e=W.getState().app?.loadLocalStorage?.(jl);return e?String(e):``}setLastUpdatedTime(e=Date.now()){W.getState().app?.saveLocalStorage?.(jl,String(e))}resetLastUpdatedTime(){let e=W.getState().app;e?.saveLocalStorage?.(jl,``),e?.saveLocalStorage?.(Al,``),this.setCursorV2(``),this._status={phase:`idle`,processed:0,total:0,message:``,error:void 0,lastSyncedAt:void 0,migration:!0},this._listeners.forEach(e=>e())}markMigrationComplete(e){W.getState().app?.saveLocalStorage?.(Al,kl),typeof e==$0e&&Number.isFinite(e)&&this.setLastUpdatedTime(e)}async pullFromWeb(e,t=!1){if(!(t?!this.getToken():!this.isSyncEnabled()))return this._activePull===null&&(this._activePull=(async()=>await sl()?this.performPullV2():(await this.drainQueueViaV1(),this.performPull(e)))().finally(()=>{this._activePull=null})),this._activePull}storageKey(e){return`${e}@${Fs()}`}getCursorV2(){let e=W.getState().app?.loadLocalStorage?.(this.storageKey(Fl));return e?String(e):``}setCursorV2(e){W.getState().app?.saveLocalStorage?.(this.storageKey(Fl),e)}pushV2(e){let t=this._pushChain.then(()=>Dl(ul(e),Vl,`Sync push timed out`));return this._pushChain=t.catch(()=>void 0),t}cidFor(e){return`${this.deviceKey()}:${e}`}deviceKey(){let e=W.getState().app;return e?.appId||e?.vault?.getName()||`vault`}async performPullV2(){let e=this.getCursorV2(),t=!e,n=t?new Set:null;this.updateStatus({phase:$8q,processed:0,total:0,message:t?$5c:$7n,error:void 0,migration:t});try{await this.flushQueue();let r=this.memoService,i=0;for(;;){let a;try{a=await ll(e,Ll)}catch(r){if(r instanceof Sl&&e){P(`[Thino Sync] cursor expired, full resync`),e=``,t=!0,n=new Set,this.setCursorV2(``);continue}throw r}let o=a.items.map(cl);if(n)for(let e of a.items)n.add(e.id);if(o.length>0&&(this.updateStatus({phase:$dy,total:i+o.length,message:$bo}),await r.applyThinosFromWebBulk(o,e=>this.updateStatus({processed:i+e})),i+=o.length),e=a.cursor,this.setCursorV2(e),!a.hasMore)break}i>0&&r.updateTagsState(),P(`[Thino Sync] v2 pull applied=${i} full=${t} cursor=${e}`),await this.performPushV2(n),t&&this.markMigrationComplete(),this.updateStatus({phase:$3a,processed:i,total:i,message:t?$6b:$9q,error:void 0,lastSyncedAt:Date.now(),migration:!1})}catch(e){let n=e instanceof Error?e.message:String(e);throw this.updateStatus({phase:$12,message:$al,error:n,migration:t}),e}}async performPushV2(e){let t=this.memoService,n=new Map;for(let r of t.getState().memos)El(r)||!(r.content??``).trim()||r.webId&&!(e&&!e.has(r.webId))||n.set(r.id,r);let r=Array.from(n.values());if(r.length===0)return;this.updateStatus({phase:$cj,processed:0,total:r.length,message:$fv});let i=this.deviceKey();for(let e=0;e<r.length;e+=200){let n=r.slice(e,e+200),a=await this.pushV2(n.map(e=>dl(e,`${i}:${e.id}`))),o=[];a.forEach((e,t)=>{let r=n[t];e.status===`ok`&&e.id?o.push({...pl(e,r.content,Ol(r)),localId:r.id}):console.warn(`[Thino Sync] create ${r.id} -> ${e.status}`,e.error??e.code??``)}),o.length>0&&await t.attachWebIdsFromWeb(o),this.updateStatus({processed:Math.min(e+n.length,r.length)})}}loadQueue(){let e=W.getState().app?.loadLocalStorage?.(this.storageKey(Il));if(!e)return[];try{let t=JSON.parse(String(e));return Array.isArray(t)?t:[]}catch{return[]}}saveQueue(e){W.getState().app?.saveLocalStorage?.(this.storageKey(Il),e.length>0?JSON.stringify(e):``)}getPendingChangeCount(){return this.loadQueue().length}enqueue(e,t,n){let r=`id`in e?`id:${e.id}`:`cid:${e.cid}`,i=this.loadQueue(),a=i.find(e=>e.key===r);a?(a.op={...a.op,...t},a.localId=n??a.localId,a.version+=1):i.push({key:r,op:{op:`update`,...e,...t},localId:n,version:1}),this.saveQueue(i)}flushQueue(){return this._activeFlush||=this.performFlush().finally(()=>{this._activeFlush=null}),this._activeFlush}async performFlush(){let e=this.loadQueue();if(e.length===0)return;let t=new Map,n=[];try{for(let r=0;r<e.length;r+=200){let i=e.slice(r,r+200);(await this.pushV2(i.map(e=>e.op))).forEach((e,r)=>{let a=i[r];if(t.set(a.key,a.version),e.status===`not_found`&&a.op.id){let e=a.op.id,t=this.memoService.getState().memos.find(t=>t.webId===e||a.localId&&t.id===a.localId);t&&!El(t)&&(t.content??``).trim()&&n.push(t)}else e.status!==`ok`&&console.warn(`[Thino Sync] change for ${a.key} -> ${e.status}`,e.error??e.code??``)})}this._flushBackoff=0}catch(t){this._flushBackoff=Math.min(Bl,Math.max(2e3,this._flushBackoff*2)),console.warn(`[Thino Sync] ${e.length} change(s) queued, retry in ${this._flushBackoff/1e3}s`,t),this.scheduleFlush(this._flushBackoff)}finally{let e=this.loadQueue().filter(e=>t.get(e.key)!==e.version);this.saveQueue(e)}if(n.length>0){let e=this.deviceKey(),t=await this.pushV2(n.map(t=>dl(t,`${e}:${t.id}:${t.webId||`new`}`))),r=[];t.forEach((e,t)=>{let i=n[t];e.status===`ok`&&e.id&&r.push({...pl(e,i.content,Ol(i)),localId:i.id})}),r.length>0&&await this.memoService.attachWebIdsFromWeb(r)}}async drainQueueViaV1(){let e=this.loadQueue();if(e.length===0)return;let t=this.memoService.getState().memos,n=new Map;for(let r of e){let e=t.find(e=>r.op.id&&e.webId===r.op.id||r.localId&&e.id===r.localId),i=r.op.id??e?.webId;if(!i){n.set(r.key,r.version);continue}try{await nl(e?{id:i,content:e.content,rowStatus:e.deletedAt?$10:e.rowStatus,pinned:e.pinned,thinoType:Ol(e)}:{id:i,content:r.op.mdContent,rowStatus:r.op.rowStatus,pinned:r.op.pinned,thinoType:r.op.thinoType}),n.set(r.key,r.version)}catch(e){e instanceof ml&&e.status===404?n.set(r.key,r.version):console.warn(`[Thino Sync] queued change ${r.key} not sent via v1, will retry`,e)}}this.saveQueue(this.loadQueue().filter(e=>n.get(e.key)!==e.version))}scheduleFlush(e=zl){this._flushTimer!==null&&window.clearTimeout(this._flushTimer),this._flushTimer=window.setTimeout(()=>{this._flushTimer=null,this.flushQueue().catch(console.error)},e)}async sendChangeV2(e,t,n){this.enqueue(e,t,n);try{await this.flushQueue()}catch(e){console.error(`[Thino Sync] flush failed`,e)}}async createNowV2(e,t,n){let r=n?this.cidFor(n):`${this.deviceKey()}:new:${crypto.randomUUID()}`,[i]=await this.pushV2([fl(e,t,r)]);return i?.status!==`ok`||!i.id?(console.warn(`[Thino Sync] create ->`,i?.status,i?.error??i?.code??``),null):pl(i,e,t)}async longPollLoop(e){let t=1e3,n=Date.now();for(;this._pollingActive&&e===this._longPollRun&&this.isSyncEnabled();){if(document.hasFocus()&&(n=Date.now()),Date.now()-n>12e4){await Hl(5e3);continue}try{let n=await ll(this.getCursorV2(),1,Rl);t=1e3,n.items.length>0&&e===this._longPollRun&&await this.pullFromWeb()}catch(e){if(e instanceof Sl){await this.pullFromWeb().catch(console.error);continue}P(`[Thino Sync] long-poll failed, backing off`,e),await Hl(t),t=Math.min(t*2,60*1e3)}}}async performPull(e){let t=this.isMigrationPending(),n=t?void 0:e||this.getLastUpdatedTime()||void 0;this.updateStatus({phase:$8q,processed:0,total:0,message:t?$5c:$7n,error:void 0,migration:t});try{let e=await Qc(n,({processed:e,total:t})=>{this.updateStatus({processed:e,total:t})}),r=e.reduce((e,t)=>{let n=t.updatedAtTs??Date.parse(t.updatedAt);return Number.isFinite(n)?Number.isFinite(e)?Math.max(e,n):n:e},NaN);e.sort((e,t)=>Date.parse(e.updatedAt)-Date.parse(t.updatedAt)),this.updateStatus({phase:$dy,processed:0,total:e.length,message:t?`Applying migrated data`:$bo});let i=this.memoService;await i.applyThinosFromWebBulk(e,e=>{this.updateStatus({processed:e})}),i.updateTagsState();let a=NaN;t?a=await this.performPush(!0):this.isSyncEnabled()&&(a=await this.performPush(!1));let o=[r,a].filter(e=>Number.isFinite(e)),s=o.length>0?Math.max(...o):NaN;t?this.markMigrationComplete(Number.isFinite(s)?s:void 0):Number.isFinite(s)&&this.setLastUpdatedTime(s),P(`[Thino Sync] watermark since=${n??$1i} -> ${Number.isFinite(s)?s:`(unchanged)`}`),this.updateStatus({phase:$3a,processed:e.length,total:e.length,message:t?$6b:$9q,error:void 0,lastSyncedAt:Date.now(),migration:!1})}catch(e){let n=e instanceof Error?e.message:String(e);throw this.updateStatus({phase:$12,message:$al,error:n,migration:t}),e}}async pushToWeb(){if(this.isSyncEnabled())try{await sl()?(await this.flushQueue(),await this.performPushV2(null)):await this.performPush(!1),this.updateStatus({phase:$3a,message:`Local data uploaded`,error:void 0,lastSyncedAt:Date.now(),migration:!1})}catch(e){let t=e instanceof Error?e.message:String(e);throw this.updateStatus({phase:$12,message:`Upload to Thino Web failed`,error:t}),e}}async collectMemosToUpload(e,t){let n=e.filter(e=>!El(e));if(!t)return n.filter(e=>!e.webId);let r=n.filter(e=>e.webId).map(e=>e.webId),i=new Set;try{r.length>0&&(i=await Yc(r))}catch(e){return console.error(`[Thino Sync] Failed to verify existing webIds, skipping stale re-upload`,e),n.filter(e=>!e.webId)}return n.filter(e=>!e.webId||!i.has(e.webId))}async performPush(e){let t=this.memoService,n=t.getState().memos,r=await this.collectMemosToUpload(n,e);this.updateStatus({phase:$cj,processed:0,total:r.length,message:$fv,migration:e});let i=NaN;for(let e=0;e<r.length;e+=Pl){let n=r.slice(e,e+Pl),a=await tl(n);await t.attachWebIdsFromWeb(a);for(let e of a){let t=e.updatedAtTs??Date.parse(e.updatedAt);Number.isFinite(t)&&(!Number.isFinite(i)||t>i)&&(i=t)}this.updateStatus({processed:Math.min(e+n.length,r.length)})}return i}async syncCreate(e,t,n,r){if(!this.isSyncEnabled())return null;try{return await sl()?await this.createNowV2(e,t===$00||t===$9?$00:$0i,r):await $c({content:e,thinoType:t===$00||t===$9?$00:$0i,thinoStatus:n?$9:$06})}catch(e){return console.error(e),null}}async syncCreateForWebId(e,t){if(!this.isSyncEnabled())return``;try{return await sl()?(await this.createNowV2(e,$00))?.id||``:(await $c({content:e,thinoType:$00,thinoStatus:t?$9:$06}))?.id||``}catch(e){return console.error(e),``}}async syncEdit(e){if(this.isSyncEnabled()&&!e?.webId&&e?.id&&!El(e)&&await sl()){await this.sendChangeV2({cid:this.cidFor(e.id)},{mdContent:e.content,pinned:e.pinned,thinoType:Ol(e)},e.id);return}if(!this.isSyncEnabled()||!e?.webId){P(`[Thino Sync] syncEdit SKIP enabled=${this.isSyncEnabled()} webId=${e?.webId??$1i} id=${e?.id}`);return}if(await sl()){await this.sendChangeV2({id:e.webId},{mdContent:e.content,rowStatus:e.deletedAt?$10:e.rowStatus,pinned:e.pinned,thinoType:Ol(e)},e.id);return}try{await nl({id:e.webId,content:e.content,rowStatus:e.deletedAt?$10:e.rowStatus,pinned:e.pinned,thinoType:e.sourceType===$00||e.sourceType===$9?$00:$0i}),P(`[Thino Sync] syncEdit OK webId=${e.webId} id=${e.id} len=${(e.content??``).length}`)}catch(t){if(t instanceof ml&&t.status===404){P(`[Thino Sync] syncEdit 404 -> recreate webId=${e.webId} id=${e.id}`),await this.recreateAfterMissingRemote(e);return}console.error(`[Thino Sync] syncEdit FAILED webId=${e.webId} id=${e.id}`,t)}}async recreateAfterMissingRemote(e){if(!(e.deletedAt||e.rowStatus===$10)&&(e.content??``).trim())try{let t=await $c({content:e.content,thinoType:e.sourceType===$00||e.sourceType===$9?$00:$0i});if(!t?.id)return;await this.memoService.attachWebIdsFromWeb([{...t,localId:e.id}])}catch(e){console.error(`[Thino Sync] Failed to re-create memo after 404`,e)}}async syncDelete(e){if(!(!this.isSyncEnabled()||!e)){if(await sl())return this.sendChangeV2({id:e},{rowStatus:$10});try{await il(e)}catch(e){console.error(e)}}}async syncDeleteUnlinked(e){!this.isSyncEnabled()||!e||!await sl()||await this.sendChangeV2({cid:this.cidFor(e)},{rowStatus:$10},e)}async syncPin(e,t){if(!this.isSyncEnabled()||!e)return null;if(await sl())return await this.sendChangeV2({id:e},{pinned:t}),null;try{return await nl({id:e,pinned:t})}catch(e){return console.error(e),null}}async syncRecover(e){if(!(!this.isSyncEnabled()||!e)){if(await sl())return this.sendChangeV2({id:e},{rowStatus:$0b});try{await rl(e)}catch(e){console.error(e)}}}startPolling(e){if(this._pollingActive||!this.isSyncEnabled()||W.getState().settings?.SyncManually)return;let t=()=>{this.pullFromWeb(this.getLastUpdatedTime()).catch(console.error)};t(),this._pollingInterval=window.setInterval(t,Ml),e.registerInterval(this._pollingInterval),this._onFocus=()=>{if(!this.isSyncEnabled())return;let e=Date.now();e-this._lastFocusPullAt<Nl||(this._lastFocusPullAt=e,t())},window.addEventListener($1a,this._onFocus),this._pollingActive=!0;let n=++this._longPollRun;sl().then(e=>{!e||n!==this._longPollRun||!this._pollingActive||(this.getPendingChangeCount()>0&&this.scheduleFlush(0),this.longPollLoop(n))})}stopPolling(){this._longPollRun+=1,this._pollingInterval!==null&&(window.clearInterval(this._pollingInterval),this._pollingInterval=null),this._onFocus&&=(window.removeEventListener($1a,this._onFocus),null),this._pollingActive=!1}},q=new Ul}));function Gl(e){return e?.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`)||e}function Kl(e,t){return e&&e.replace(/\{\{TIME\|(.*?)\}\}/g,(e,n)=>{try{return t.format(n)}catch(t){return console.error(`Invalid time format:`,n,t),e}})}function ql(e){let t=[],n=e;for(;n.contains(`
  56. `);){let e=n.indexOf(`
  57. `);t.push(n.slice(0,e)),n=n.slice(e+1)}return t.push(n),t}async function Jl({content:e,isList:t,name:n}){let r=L.getState().dailyNotesState.settings,i=(0,d.moment)(),a=R.randomId(16),o=r?.MemoOtherSaveLocation.MemoDefaultMultiFilePath||$0h,s=`${o}/${n||`${i.format(`YYYYMMDD`)}-${a}`}.md`,c={id:a,content:e,deletedAt:``,path:s,createdAt:i.format($6),updatedAt:i.format($6),thinoType:t?$9:$06,hasId:``,linkId:[],pinned:!1,visibility:$1b,rowStatus:$0b,creatorName:$0h,resourceList:[],sourceType:$0g,fileInfo:{tags:[],frontmatter:{}}},l=W.getState().app||Sn(),{vault:u,fileManager:f}=l,p=u.getAbstractFileByPath(o);(!p||!(p instanceof d.TFolder))&&(new d.Notice(F(293)),await u.createFolder(o)),G.setChangedByMemos(!0),Y.markPathPending(s);let m,h=l.vault.getFileByPath(s);if(h){let t=`${o}/${i.format(`YYYYMMDD`)}-${a}.md`;Y.markPathPending(t),m=await u.create(t,e)}else m=await u.create(s,e);await f.processFrontMatter(m,e=>{e.id=a,e.createdAt=i.format($6),e.updatedAt=i.format($6),e.thinoType=t?$9:$06}),(!n||h)&&r?.SetFileNameAfterCreate&&l.fileManager.promptForFileRename(m);let g=l.metadataCache.getFileCache(m),_={tags:g?.frontmatter?.tags||[],frontmatter:g?.frontmatter||{}};return{...c,fileInfo:_}}async function Yl({content:e,isList:t}){let n=L.getState().dailyNotesState.settings,r=(0,d.moment)(),i=R.randomId(16),a=n?.MemoOtherSaveLocation.MemoDefaultSingleFilePath||$5t,o={id:i,content:e,deletedAt:``,path:a,createdAt:r.format($6),updatedAt:r.format($6),thinoType:t?$9:$06,hasId:``,linkId:[],pinned:!1,visibility:$1b,rowStatus:$0b,creatorName:$0h,resourceList:[],sourceType:$0i,fileInfo:{tags:[],frontmatter:{}}},s=W.getState().app,{vault:c}=s,l=c.getAbstractFileByPath(a),u;l instanceof d.TFile?u=l:(new d.Notice(F(277)),u=await c.create(a,``));let f=s.metadataCache.getFileCache(u),p={tags:f?.frontmatter?.tags||[],frontmatter:f?.frontmatter||{}},m=``;try{m=await c.read(u)||await c.cachedRead(u)}catch(e){console.error(e),new d.Notice(F(295))}let h=m.indexOf(`# ${r.format($02)}`),g=m.indexOf(`
  58. #`,h+1);g===-1&&(g=m.length);let _=`\n${`> [!thino] ${r.format($6)} %% [id::${i}] [thinoType::${t?$9:$06}] %%`}\n> ${e.replace(/\n/g,`
  59. > `)}\n`,v;if(h===-1){let e=`# ${r.format($02)}`;v=`${m.substring(0,g)}\n${e}${_}\n${m.substring(g)}`}else v=`${m.substring(0,g)}${_}${m.substring(g)}`;return window.setTimeout(()=>{(async()=>{G.setChangedByMemos(!0),Y.markPathPending(u.path),await c.modify(u,v)})()},200),{...o,fileInfo:p}}function Xl(e,t,n){let r=t.id,i=e.indexOf(`# ${n.format($02)}`),a=e.indexOf(`
  60. #`,i+1);a===-1&&(a=e.length);let o=`\n${`> [!thino] ${n.format($6)} %% [id::${r}] [thinoType::JOURNAL]${t.rowStatus===$07?$eu:``}${t.pinned===!0?$gw:``}${t.deletedAt?` [deleted::${t.deletedAt}]`:``}${t.id?` [webId::${t.id}]`:``} %%`}\n> ${t.content.replace(/\n/g,`
  61. > `)}\n`;if(i===-1){let t=`# ${n.format($02)}`;return`${e.substring(0,a)}\n${t}${o}\n${e.substring(a)}`}return`${e.substring(0,a)}${o}${e.substring(a)}`}async function Zl(e){let t=L.getState().dailyNotesState.settings,n=(0,d.moment)(e.createdAt,$6),r=e.id,i=t?.MemoOtherSaveLocation.MemoDefaultSingleFilePath||$5t,a={id:r,content:e.content,deletedAt:e.deletedAt||``,path:i,createdAt:n.format($6),updatedAt:n.format($6),thinoType:e.thinoType||$9,hasId:``,linkId:[],pinned:e.pinned,visibility:$1b,rowStatus:e.rowStatus||$0b,creatorName:$0h,resourceList:[],sourceType:$0i,webId:e.id,fileInfo:e?.fileInfo},o=W.getState().app,{vault:s}=o,c=s.getAbstractFileByPath(i),l;c instanceof d.TFile?l=c:(new d.Notice(F(277)),l=await s.create(i,``));let u=``;try{u=await s.read(l)||await s.cachedRead(l)}catch(e){console.error(e),new d.Notice(F(295))}let f=o.metadataCache.getFileCache(l),p={tags:f?.frontmatter?.tags||[],frontmatter:f?.frontmatter||{}},m=Xl(u,e,n);return G.setChangedByMemos(!0),Y.markPathPending(l.path),await s.modify(l,m),{...a,fileInfo:p}}async function Ql({content:e,isList:t}){let n=L.getState().dailyNotesState.settings?.MemoOtherSaveLocation.MemoDefaultCanvasPath||$e0,r=(0,d.moment)(),i=R.randomId(16),a={id:i,content:e,deletedAt:``,path:n,createdAt:r.format($6),updatedAt:r.format($6),thinoType:t?$9:$06,hasId:``,linkId:[],pinned:!1,visibility:$1b,rowStatus:$0b,creatorName:$0h,resourceList:[],sourceType:$0r,fileInfo:{tags:[],frontmatter:{}}},o=W.getState().app,{vault:s}=o,c=await Ao(n,o);if(!c||!(c instanceof d.TFile)){new d.Notice(F(277));return}let l=await s.read(c),u=JSON.parse(l);if(u.nodes.find(e=>e.id===a.id))return;let f;u.nodes.length>0&&(f=[...u.nodes].reduce((e,t)=>{if(!e.createdAt)return t;let n=(0,d.moment)(e.createdAt,$6),r=(0,d.moment)(t.createdAt,$6);return n.isAfter(r)?e:t}));let p=f?{x:f.x,y:f.y+100,width:f.width,height:f.height}:{x:0,y:0,width:200,height:100};u.nodes.push({...p,type:$0l,id:i,text:e,deletedAt:``,createdAt:r.format($6),updatedAt:r.format($6),thinoType:t?$9:$06,hasId:``,linkId:[],pinned:!1,visibility:$1b,rowStatus:$0b,creatorName:$0h,resourceList:[]}),G.setChangedByMemos(!0),Y.markPathPending(c.path);let m=JSON.stringify(u,null,2);return await s.modify(c,m),a}async function $l(e,t,n,r){let{vault:i}=L.getState().dailyNotesState.app||Sn(),a=L.getState().dailyNotesState.app||Sn(),o=L.getState().dailyNotesState.settings,s=a.vault.getConfig($43)===void 0||Sn().vault.getConfig($43)===!0,c=s?1:a.vault.getConfig($bb),l=(s?` `:` `).repeat(c),u=e.split(`
  62. `).join(`
  63. `+l),f=n||(0,d.moment)(),{DifferentInsertTarget:p,InsertAfterForTask:m,InsertType:h}=o,g=f.format(o.DefaultTimePrefix||$17),_=``,v=``;o.UseMemoFixedStrings&&(_=Kl(o.MemoFixedPrefix||``,f),v=Kl(o.MemoFixedSuffix||``,f));let y=h===$5q?``:t?o.InsertAfter:p&&m||o.InsertAfter,b=``;!r&&e&&(b=await q.syncCreateForWebId(e,t));let x=_?_+(_.endsWith(` `)?``:` `)+u:u,S=v?x+(x.endsWith(` `)?``:` `)+v:x,C=t?`- `:$7k,w=o?.DefaultMemoComposition?`${C}${o?.DefaultMemoComposition?.replace(/{TIME}/g,g).replace(/{CONTENT}/g,(S.split(`
  64. `).length>1||/^((-|\*|\d\.|>)\s|```)/g.test(S)?`
  65. `+l:``)+S)}${S.split(`
  66. `).length>1&&/((-|\*|\d\.|>)\s|```)/g.test(S.split(`
  67. `)[S.split(`
  68. `).length-1])&&b?`
  69. `+l:` `}${b?`[webId::${b}]`:``}`:`${C}${g} ${S.split(`
  70. `).length>1||/^((-|\*|\d\.|>)\s|```)/g.test(S)?`
  71. `+l:``}${S}${S.split(`
  72. `).length>1&&/((-|\*|\d\.|>)\s|```)/g.test(S.split(`
  73. `)[S.split(`
  74. `).length-1])&&b?`
  75. `+l:` `}${b?`[webId::${b}]`:``}`,T=Gn(f,Un()),E=performance.now(),ee=`fake`+R.randomId(16),te=!1,ne=a.plugins.getPlugin($71),re;if(T?(re=T,P(`[Thino:Perf] daily note exists +${(performance.now()-E).toFixed(1)}ms`)):(ne?.templater&&ne?.settings.trigger_on_file_creation&&(Y.setWaitingForTemplater({origin:e,date:f,isList:t,id:ee,type:b?`web`:$dd}),te=!0),G.setChangedByMemos(!0),re=await R.createDailyNoteCheck(f),Y.markPathPending(re.path),P(`[Thino:Perf] daily note created +${(performance.now()-E).toFixed(1)}ms`)),!re){new d.Notice(F(188));return}if(T||(await W.fechLocalDailyNotes(),P(`[Thino:Perf] fechLocalDailyNotes done +${(performance.now()-E).toFixed(1)}ms`)),ne&&ne?.templater&&ne?.settings.trigger_on_file_creation&&te)return G.setChangedByMemos(!0),{id:ee,content:S,deletedAt:``,createdAt:f.format($6),updatedAt:f.format($6),thinoType:t?$9:$06,path:re.path,hasId:``,linkId:[],webId:b,pinned:!1,visibility:$1b,rowStatus:$0b,creatorName:$0h,resourceList:[],sourceType:$00,fileInfo:{tags:[],frontmatter:{}}};let ie=``;try{ie=await i.read(re)||await i.cachedRead(re)}catch(e){console.error(e),new d.Notice(F(295))}let ae=a.metadataCache.getFileCache(re),oe={tags:ae?.frontmatter?.tags||[],frontmatter:ae?.frontmatter||{}},se=await iu(y,w,ie);P(`[Thino:Perf] insertAfterHandler done +${(performance.now()-E).toFixed(1)}ms`),await i.modify(re,se.content),P(`[Thino:Perf] vault.modify done +${(performance.now()-E).toFixed(1)}ms`);let ce=se.posNum===-1?uu(se.content).length-(w.split(`
  76. `).length-1)-1:se.posNum+1;return G.setChangedByMemos(!0),P(`[Thino:Perf] createMemoInDailyNote return +${(performance.now()-E).toFixed(1)}ms`),{id:f.format($7q)+`00`+ce,content:S,deletedAt:``,createdAt:f.format($6),updatedAt:f.format($6),thinoType:t?$9:$06,path:re.path,hasId:``,linkId:[],webId:b,pinned:!1,visibility:$1b,rowStatus:$0b,creatorName:$0h,resourceList:[],sourceType:$00,fileInfo:oe}}function eu(e,t){let n=L.getState().dailyNotesState.app||Sn(),{DefaultMemoComposition:r,DefaultTimePrefix:i,UseMemoFixedStrings:a,MemoFixedPrefix:o,MemoFixedSuffix:s}=L.getState().dailyNotesState.settings,c=(e.pinned?$gw:``)+(e.rowStatus===$07?$eu:``)+(e.visibility===$4k?` [visibility::"PRIVATE"]`:``);if(e.id){let t=` [webId::`+e.id+`]`;c+=t}let l=(0,d.moment)();if(e.deletedAt){let e=` [deleted::`+l.format($08)+`]`;c+=e}let u=n.vault.getConfig($43)===void 0||n.vault.getConfig($43)===!0,f=u?1:n.vault.getConfig($bb),p=(u?` `:` `).repeat(f),m=e.content.split(`
  77. `).join(`
  78. `+p),h=``,g=``;a&&(h=Kl(o||``,t),g=Kl(s||``,t));let _=h?h+(h.endsWith(` `)?``:` `)+m:m,v=g?_+(_.endsWith(` `)?``:` `)+g:_,y=t.format(i||$17),b=!e.thinoType||e.thinoType===$9?`- `:e.thinoType===$06?$7k:$dl;return r?`${b}${r?.replace(/{TIME}/g,y).replace(/{CONTENT}/g,(v.split(`
  79. `).length>1||/^((-|\*|\d\.|>)\s|```)/g.test(v)?`
  80. `+p:``)+v)}${v.split(`
  81. `).length>1&&/```/g.test(v.split(`
  82. `)[v.split(`
  83. `).length-1])&&c.trim()?`
  84. `+p:` `}${c}`:`${b}${y} ${v.split(`
  85. `).length>1||/^((-|\*|\d\.|>)\s|```)/g.test(v)?`
  86. `+p:``}${v}${v.split(`
  87. `).length>1&&/```/g.test(v.split(`
  88. `)[v.split(`
  89. `).length-1])&&c.trim()?`
  90. `+p:` `}${c}`}async function tu(e){let{vault:t}=L.getState().dailyNotesState.app||Sn(),n=L.getState().dailyNotesState.app||Sn(),{InsertAfter:r,DifferentInsertTarget:i,InsertAfterForTask:a,InsertType:o}=L.getState().dailyNotesState.settings,s=(0,d.moment)(e.createdAt,$6),c=eu(e,s),l=Gn(s,Un()),u=`fake`+R.randomId(16),f=!1,p=n.plugins.getPlugin($71),m;if(l?m=l:(p?.templater&&p?.settings.trigger_on_file_creation&&(Y.setWaitingForTemplater({origin:e.content,date:s,isList:e.thinoType&&e.thinoType===$9,id:u,type:$dd}),f=!0),G.setChangedByMemos(!0),m=await R.createDailyNoteCheck(s),Y.markPathPending(m.path)),!m){new d.Notice(F(188)),new d.Notice(F(621)),await navigator.clipboard.writeText(e.content);let t=n.workspace.getLeavesOfType($0n).first();n.workspace.trigger($ba,e.content,t);return}if(l||await W.fechLocalDailyNotes(),p&&p?.templater&&p?.settings.trigger_on_file_creation&&f)return G.setChangedByMemos(!0),{id:u,content:e.content,deletedAt:e.deletedAt??``,createdAt:s.format($6),updatedAt:s.format($6),thinoType:e.thinoType||$9,path:m.path,hasId:``,linkId:[],pinned:e.pinned??!1,visibility:$1b,rowStatus:e.rowStatus??$0b,webId:e.webId||e.id,creatorName:$0h,resourceList:[],sourceType:$00,fileInfo:e?.fileInfo||{tags:[],frontmatter:{}}};let h=n.metadataCache.getFileCache(m),g={tags:h?.frontmatter?.tags||[],frontmatter:h?.frontmatter||{}},_=``;try{_=await t.read(m)||await t.cachedRead(m)}catch(e){console.error(e),new d.Notice(F(295))}let v=await iu(o===$5q?``:e.thinoType&&i&&a||r,c,_);await t.modify(m,v.content);let y=v.posNum===-1?uu(v.content).length-1:v.posNum+1;return G.setChangedByMemos(!0),{id:s.format($7q)+`00`+y,content:e.content,deletedAt:e.deletedAt??``,createdAt:s.format($6),updatedAt:s.format($6),thinoType:e.thinoType||$9,path:m.path,hasId:``,linkId:[],pinned:e.pinned??!1,visibility:$1b,rowStatus:e.rowStatus??$0b,webId:e.id,creatorName:$0h,resourceList:[],sourceType:$00,fileInfo:g}}async function nu(e){let t=L.getState().dailyNotesState.app||Sn(),{vault:n}=t,{InsertAfter:r,DifferentInsertTarget:i,InsertAfterForTask:a,InsertType:o}=L.getState().dailyNotesState.settings,s=t.plugins.getPlugin($71),c=!!(s?.templater&&s?.settings.trigger_on_file_creation),l=new Map;for(let t of e){let e=(0,d.moment)(t.createdAt,$6).format($02),n=l.get(e)??[];n.push(t),l.set(e,n)}let u=[];for(let[,e]of l){let s=[...e].sort((e,t)=>R.getTimeStampByDate(e.createdAt)-R.getTimeStampByDate(t.createdAt)),l=(0,d.moment)(s[0].createdAt,$6),f=Gn(l,Un());if(!f&&c){for(let e of s){let t=await tu(e);t&&u.push(t)}continue}if(!f){if(G.setChangedByMemos(!0),f=await R.createDailyNoteCheck(l),!f){new d.Notice(F(188));continue}Y.markPathPending(f.path),await W.fechLocalDailyNotes()}let p=t.metadataCache.getFileCache(f),m={tags:p?.frontmatter?.tags||[],frontmatter:p?.frontmatter||{}},h=``;try{h=await n.read(f)||await n.cachedRead(f)}catch(e){console.error(e),new d.Notice(F(295))}for(let e of s){let t=(0,d.moment)(e.createdAt,$6),n=eu(e,t),s=await iu(o===$5q?``:e.thinoType&&i&&a||r,n,h);h=s.content;let c=s.posNum===-1?uu(s.content).length-1:s.posNum+1;u.push({id:t.format($7q)+`00`+c,content:e.content,deletedAt:e.deletedAt??``,createdAt:t.format($6),updatedAt:t.format($6),thinoType:e.thinoType||$9,path:f.path,hasId:``,linkId:[],pinned:e.pinned??!1,visibility:$1b,rowStatus:e.rowStatus??$0b,webId:e.id,creatorName:$0h,resourceList:[],sourceType:$00,fileInfo:m})}Y.markPathPending(f.path),G.setChangedByMemos(!0),await n.modify(f,h)}return u}async function ru(e){let t=L.getState().dailyNotesState.settings?.MemoOtherSaveLocation.MemoDefaultSingleFilePath||$5t,n=W.getState().app,{vault:r}=n,i=r.getAbstractFileByPath(t),a;i instanceof d.TFile?a=i:(new d.Notice(F(277)),a=await r.create(t,``));let o=``;try{o=await r.read(a)||await r.cachedRead(a)}catch(e){console.error(e),new d.Notice(F(295))}let s=n.metadataCache.getFileCache(a),c={tags:s?.frontmatter?.tags||[],frontmatter:s?.frontmatter||{}},l=[...e].sort((e,t)=>R.getTimeStampByDate(e.createdAt)-R.getTimeStampByDate(t.createdAt)),u=[];for(let e of l){let n=(0,d.moment)(e.createdAt,$6);o=Xl(o,e,n),u.push({id:e.id,content:e.content,deletedAt:e.deletedAt||``,path:t,createdAt:n.format($6),updatedAt:n.format($6),thinoType:e.thinoType||$9,hasId:``,linkId:[],pinned:e.pinned,visibility:$1b,rowStatus:e.rowStatus||$0b,creatorName:$0h,resourceList:[],sourceType:$0i,webId:e.id,fileInfo:c})}return G.setChangedByMemos(!0),Y.markPathPending(t),await r.modify(a,o),u}async function iu(e,t,n){let r=RegExp(`(\\s*?)${Gl(e)}(\\s*?)`),i=ql(n),a=i.findIndex(e=>r.test(e)),o=e?.trim()===``?!0:a===-1;o&&P(`unable to find insert after line in file.`);let s=i.slice(a+1).findIndex(e=>/(^#+ |---|^\^[a-zA-Z0-9-]{2,}$)/.test(e)),c=s!==-1;if(c){let e;for(let t=s+a;t>a;t--)if(!/^[\s\n ]*$/.test(i[t])){e=t;break}return e||=a,await au(t,n,o?-1:e,c)}else return await au(t,n,i.length-1,c)}async function au(e,t,n,r){if(n<-1)throw Error(`Invalid position`);if(n===-1)return{content:`${t}\n${e}`,posNum:-1};let i=t.split(`
  91. `),a=i.slice(0,n+1).join(`
  92. `),o=i.slice(n+1).join(`
  93. `),s=o.trim().length>0;return{content:`${a}${!s&&!r||!a.endsWith(`
  94. `)?`
  95. `:``}${e}${(s||r?`
  96. `:``)+o}`,posNum:n}}function ou(e,t,n){let r=n||du[t]||$02;return`## ${e.format(r)}`}function su(e,t){let n=e.findIndex(e=>e.trim()===t);if(n===-1){let t=e.length;for(;t>0&&e[t-1].trim()===``;)t--;return{insertIndex:t,needsNewHeading:!0}}let r=e.length;for(let t=n+1;t<e.length;t++)if(/^##\s/.test(e[t])){r=t;break}let i=r;for(;i>n+1&&e[i-1].trim()===``;)i--;return{insertIndex:i,needsNewHeading:!1}}function cu(e,t){let n=e?.JournalSettings;if(!n?.useIndependentSettings)return;let r={day:n.daily,week:n.weekly,month:n.monthly,year:n.yearly}[t];r&&(r.folder||r.format||r.template)&&On(t,r)}async function lu({content:e,isList:t}){let n=L.getState().dailyNotesState.settings,r=W.getState().app,{vault:i}=r,a=(0,d.moment)(),o=n?.JournalSettings?.granularity||$04;cu(n,o);let s=Kn(a,Wn(o),o);if(!s)try{G.setChangedByMemos(!0),s=await Jn(a,o),Y.markPathPending(s.path)}catch(e){console.error(e),new d.Notice(F(188));return}let c=r.metadataCache.getFileCache(s),l={tags:c?.frontmatter?.tags||[],frontmatter:c?.frontmatter||{}},u=``;try{u=await i.read(s)||await i.cachedRead(s)}catch(e){console.error(e),new d.Notice(F(295))}let f=r.vault.getConfig($43)===void 0||r.vault.getConfig($43)===!0,p=f?1:r.vault.getConfig($bb),m=(f?` `:` `).repeat(p),h=e.split(`
  97. `).join(`
  98. `+m),g=a.format(n?.DefaultTimePrefix||$17),_=``,v=``;n?.UseMemoFixedStrings&&(_=Kl(n.MemoFixedPrefix||``,a),v=Kl(n.MemoFixedSuffix||``,a));let y=_?_+(_.endsWith(` `)?``:` `)+h:h,b=v?y+(y.endsWith(` `)?``:` `)+v:y,x=t?`- `:$7k,S=b.split(`
  99. `).length>1,C=/^((-|\*|\d\.|>)\s|```)/g.test(b),w=n?.DefaultMemoComposition?`${x}${n.DefaultMemoComposition.replace(/{TIME}/g,g).replace(/{CONTENT}/g,(S||C?`
  100. `+m:``)+b)}`:`${x}${g} ${S||C?`
  101. `+m:``}${b}`,T,E;if(o===$04){let e=await iu(n?.InsertType===$5q?``:n?.InsertAfter||``,w,u);T=e.content,E=e.posNum===-1?uu(T).length-1:e.posNum+1}else{let e=ou(a,$04,n?.JournalSettings?.headingDateFormat||``),t=u.split(/\r?\n/),{insertIndex:r,needsNewHeading:i}=su(t,e);if(i){let n=u.trim()?[``,e,``,w]:[e,``,w];t.splice(r,0,...n)}else t.splice(r,0,w);T=t.join(`
  102. `),E=r+(i?3:0)}return window.setTimeout(()=>{(async()=>{G.setChangedByMemos(!0),Y.markPathPending(s.path),await i.modify(s,T)})()},200),{id:a.format($7q)+`00`+E,content:b,deletedAt:``,path:s.path,createdAt:a.format($6),updatedAt:a.format($6),thinoType:t?$9:$06,hasId:``,linkId:[],pinned:!1,visibility:$1b,rowStatus:$0b,creatorName:$0h,resourceList:[],sourceType:$9,fileInfo:l}}var uu,du,fu=o((()=>{rr(),wi(),X(),Ia(),No(),I(),Wl(),Dn(),wn(),uu=e=>e.split(/\r?\n/),du={day:Yn,week:Xn,month:Zn,year:$n}}));async function pu(e){let t=L.getState().dailyNotesState.app,n=t.vault.getAbstractFileByPath(e.path);if(!(n instanceof d.TFile)){new d.Notice(F(294));return}await t.fileManager.trashFile(n)}async function mu(e){let t=L.getState().dailyNotesState.app,n=t.vault.getAbstractFileByPath(e.path);if(!(n instanceof d.TFile)){new d.Notice(F(294));return}let r=(await t.vault.read(n)).split(`
  103. `),i=r.findIndex(t=>t.includes(e.id));if(i===-1){new d.Notice(F(276));return}let a=r.findIndex((e,t)=>t>i&&e.trim()===``);a===-1?r.splice(i,r.length-i):r.splice(i,a-i);let o=r.join(`
  104. `);if(!o){new d.Notice(F(276));return}Y.markPathPending(n.path),G.setChangedByMemos(!0),await t.vault.modify(n,o)}async function hu(e){let t=L.getState().dailyNotesState.app,n=t.metadataCache.getFirstLinkpathDest(``,e.path);if(!n){new d.Notice(F(294));return}let r=await t.vault.read(n),i=JSON.parse(r),a=i.nodes,o=a.findIndex(t=>t.id===e.id);if(o===-1){new d.Notice(F(276));return}a.splice(o,1);let s=i.edges;s.filter(t=>t.fromNode===e.id||t.toNode===e.id).forEach(e=>{let t=s.findIndex(t=>t.id===e.id);t!==-1&&s.splice(t,1)}),Y.markPathPending(n.path),G.setChangedByMemos(!0);let c=JSON.stringify(i,null,2);await t.vault.modify(n,c)}async function gu(e){Es()||new d.Notice(F(404),5e3);let{vault:t}=L.getState().dailyNotesState.app,n=e.path,r=t.getAbstractFileByPath(n);if(!(r instanceof d.TFile)){new d.Notice(F(121));return}let i=await t.read(r);if(!i){new d.Notice(F(276));return}let a=i.split(`
  105. `),o=await Io(r),s=parseInt(e.id.slice(14)),c=o.find(e=>e.position?.start.line===s);if(!c&&e.content&&(P(`[delete] Memo not found at line ${s}, searching by content...`),c=await Go(o,a,e.content,e.id)),!c&&e.hasId&&(c=o.find(t=>t.position?a.slice(t.position.start.line,t.position.end.line+1).join(`
  106. `).includes(`^${e.hasId}`):!1)),!c){console.error(`[delete] Memo ${e.id} not found in ${e.path} after all strategies`),new d.Notice(F(276));return}let l=c.position.start.line;l!==s&&P(`[delete] Memo location corrected: ${s} → ${l}`);let u=To(l,o,a.length);Y.markPathPending(r.path),G.setChangedByMemos(!0),a.splice(l,u-l+1),await t.modify(r,a.join(`
  107. `))}async function _u(e){return gu({...e,sourceType:$00})}var vu=o((()=>{wi(),rr(),fu(),Ia(),I(),X(),Os(),Eo(),zo(),us(),Dn()}));async function yu(e){let t=await uo(L.getState().dailyNotesState.app)||[],n=t.findIndex(t=>t.id===e);t.splice(n,1),await fo(L.getState().dailyNotesState.app,t)}var bu=o((()=>{wi(),mo()})),xu,Su,Cu=o((()=>{wi(),mo(),I(),xu=async e=>{let{app:t}=L.getState().dailyNotesState,n=await uo(t)||[],r=n.find(t=>t.id===e);if(r){let e=(0,d.moment)().format($6);return r.pinnedAt=e,await fo(t,n),e}else{new d.Notice(F(270));return}},Su=async e=>{let{app:t}=L.getState().dailyNotesState,n=await uo(t)||[],r=n.find(t=>t.id===e);if(r){r.pinnedAt=``,await fo(t,n);return}else{new d.Notice(F(270));return}}}));function wu(e,t){let n=Tu[e.sourceType];return n?n(e,t):null}var Tu,Eu=o((()=>{us(),Tu={DAILY:$o,CANVAS:Zo,MULTI:Yo,FILE:Xo,JOURNAL:ts}}));async function Du(e){return await gc(e)}async function Ou(e){return await gc([e])}function ku(e){let t=Y.getMemoById(e);if(t)return wu(t,{id:t.id,deleted:!1})}function Au(e){return _u(e)}function ju(e){return mu(e)}function Mu(e){return pu(e)}function Nu(e){return gu(e)}function Pu(e){return hu(e)}function Fu(){return ho()}async function Iu(e,t){return await vo(e,t)}function Lu(e,t,n){return Ec(e,t,n)}function Ru(e){return yu(e)}function zu(e){return xu(e)}function Bu(e){return Su(e)}var Vu,Hu=o((()=>{go(),yo(),Tc(),Dc(),vu(),bu(),Cu(),Eu(),X(),Vu={getMyMemos:Du,updateSpecificTypeMemo:Ou,restoreMemo:ku,deleteMemoInJournalFile:Au,deleteMemoInSingleFile:ju,deleteMemoInMultiFiles:Mu,deleteMemoInDailyNote:Nu,deleteMemoInCanvas:Pu,getMyQueries:Fu,createQuery:Iu,updateQuery:Lu,deleteQueryById:Ru,pinQuery:zu,unpinQuery:Bu}}));function Uu(e,t,n){let r=t.workspace.getLeavesOfType($54);for(let i of r)if(i.view?.file?.path===e){t.workspace.revealLeaf(i);try{return i.view.setEphemeralState({line:n}),!0}catch(e){return console.error(e),!1}}return!1}var Wu,Gu,Ku,qu,Ju=o((()=>{to(),I(),Wu=async e=>{let t=W.getState().app,n=t.workspace.getLeavesOfType($54);for(let r of n)if(r.view?.file?.path===e){t.workspace.revealLeaf(r);return}let r=t.metadataCache.getFirstLinkpathDest(``,e);if(!r){new d.Notice(F(294));return}await t.workspace.getLeaf(!0).openFile(r)},Gu=async(e,t)=>{let{app:n}=W.getState(),r=parseInt(e.slice(14));if(Uu(t,n,r))return;let i=n.metadataCache.getFirstLinkpathDest(``,t);if(!d.Platform.isMobile)await n.workspace.getLeaf(!0).openFile(i,{eState:{line:r}});else{let e=n.workspace.getMostRecentLeaf();e===null&&(e=n.workspace.getLeaf(!0)),await e.openFile(i,{eState:{line:r}})}},Ku=async(e,t)=>{let n=W.getState().app,r=n.metadataCache.getFirstLinkpathDest(``,t);if(!r){new d.Notice(F(294));return}let i=``;try{i=await n.vault.read(r)}catch(e){console.error(e),i=await n.vault.cachedRead(r)}let a=i.split(/\r?\n/).findIndex(t=>t.contains(e)),o=n.workspace.getLeavesOfType($54);for(let e of o)if(e.view?.file?.path===r.path){n.workspace.revealLeaf(e);try{e.view.editor?.setCursor({line:a,ch:1});return}catch(e){console.error(e)}}let s=n.workspace.getLeaf(!0);await s.openFile(r,{eState:{line:a}});try{s.view.editor?.setCursor({line:a,ch:1})}catch(e){console.error(e)}},qu=async(e,t)=>{let n=W.getState().app,r=(e,t)=>{let n=Array.from(e.nodes.values())?.find(e=>e.id===t);return n?(e.selectOnly(n),e.zoomToSelection(),!0):!1},i=n.workspace.getLeavesOfType($4o);for(let a of i){let i=a.view;if(i?.file?.path===t&&(n.workspace.revealLeaf(a),r(i.canvas,e)))return}let a=n.metadataCache.getFirstLinkpathDest(``,t);if(!a){new d.Notice(F(294));return}let o=n.workspace.getLeaf(!0);await o.openFile(a),window.setTimeout(()=>{r(o.view?.canvas,e)},10)}}));function Yu(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Xu(e){let t=new Date(e);return t.setDate(t.getDate()-t.getDay()),t.setHours(0,0,0,0),t}function Zu(e){let t=new Date(e);return t.setDate(t.getDate()+(6-t.getDay())),t.setHours(23,59,59,999),t}function Qu(e){let t=new Date(e);return t.setDate(1),t.setHours(0,0,0,0),t}function $u(e){let t=new Date(e);return t.setFullYear(t.getFullYear(),t.getMonth()+1,0),t.setHours(23,59,59,999),t}function ed(e){let t=new Date(e);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function td(e){let t=new Date(e);return t.setFullYear(t.getFullYear(),11,31),t.setHours(23,59,59,999),t}function nd(e,t){let n=new Date(e);return n.setDate(n.getDate()-t),n}function rd(e,t){let n=new Date(e),r=n.getDate(),i=new Date(n.getTime());return i.setMonth(n.getMonth()+t+1,0),r>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),r),n)}function id(e,t){return rd(e,-t)}function ad(e,t){return rd(e,-t*12)}function od(e,t){let n=new Date(e).getTime(),r=new Date(t.start).getTime(),i=new Date(t.end).getTime();return r<=i?n>=r&&n<=i:!1}function sd(e,t){return new Date(e).getTime()>new Date(t).getTime()}var cd=o((()=>{}));function ld(e){return[Gi,qi,Ki].reduce((t,n)=>((e.match(n)||[]).forEach(e=>{let r=(e?.replace(n,$ff).trim()).split(`/`),i=``;r.forEach(e=>{i+=e,t.add(i),i+=`/`})}),t),new Set)}function ud(e){return e?Array.isArray(e)?e.filter(e=>e).map(e=>e.toString().trim()):typeof e==$q?e.split(/[\s,]+/).filter(Boolean):[]:[]}function dd(e){if(!Array.isArray(e)||e.length===0)return new Set;let t=e.filter(e=>!!e).map(e=>e.toString().trim());if(t.length===0)return new Set;let n=new Set;return t.forEach(e=>{let t=e.split(`/`),r=``;t.forEach((e,t)=>{r+=(t>0?`/`:``)+e,n.add(r)})}),n}function fd(e,t){let n=hd.get(e);if(n)return{from:nd(t,n),to:t};let r=e.startsWith(`last`);if(!r&&!e.startsWith(`this`))return null;switch(e.slice(4)){case`Week`:{let e=r?nd(t,7):t;return{from:Xu(e),to:Zu(e)}}case`Month`:{let e=r?id(t,1):t;return{from:Qu(e),to:$u(e)}}case`Year`:{let e=r?ad(t,1):t;return{from:ed(e),to:td(e)}}default:return null}}function pd(e,t,n){if(!t||typeof t!=$0j||!t.type||!t.value||typeof t.value!=$0j)return!0;let{type:r,value:i}=t,a=i.operator,o=i.value;if(n.skipEmptyValue&&o===``&&r!==$cu&&r!==$5i)return!0;switch(r){case $6o:{let t=typeof o==$q?o:``,r=e=>e===t||e.startsWith(`${t}/`),i=Array.from(ld(e.content)).some(r)||!!n.includeFileTags&&Array.from(dd(ud(e.fileInfo?.tags))).some(r);return a===$0x?i:!i}case`TEXT`:{let t=typeof o==$q?o.toLowerCase():``,r=e.content.toLowerCase(),i=n.fuzzyText?!!(0,d.prepareSimpleSearch)(t)(r):r.includes(t);return a===$0x?i:!i}case $cu:{let t=!1;return(o===$6n&&e.content.match(Gi)===null&&e.content.match(Ki)===null&&e.content.match(qi)===null||o===$dq&&e.content.match(Ji)!==null||o===$i9&&e.content.match(Xi)!==null||o===$bq&&e.content.match(ea)!==null)&&(t=!0),a===$fn?t:!t}case $5i:{let t=e.thinoType===$9?$5i:e.thinoType===$06?$9r:e.thinoType===$0p?$iz:$km;if(n.unknownListPasses&&![$9r,$iz,$5i,$km].includes(o))return!0;let r=t===o;return a===$fn?r:!r}case $du:return a===$fn?e.sourceType===o:e.sourceType!==o;case $ng:{if(!e.path)return a!==$0x;let t=typeof o==$q?o.toLowerCase():``,n=e.path.toLowerCase().includes(t);return a===$0x?n:!n}case $6m:{let t=e.fileInfo?.frontmatter;if(!t)return a!==$0x;let r=typeof o==$0j&&o?o:{name:``,value:``},i=$o9 in r?r.name:``,s=$3o in r?r.value:``;if(!i)return!0;let c=n.metadataSubstring?!!t[i]&&!!t[i]?.toString().includes(s):t[i]===s;return a===$0x?c:!c}case $6p:{if(typeof o!=$q)return!0;let t=fd(o,new Date);if(!t)return!0;let n=new Date(e.createdAt);return a===$nn?od(n,{start:t.from,end:t.to}):a===$i6?n<t.from:!0}case $fi:{let t=null;if(typeof o==$q){let e=new Date(o);if(!isNaN(e.getTime()))t=e;else if(n.naturalDates){let e=xn().plugins.enabledPlugins.has($gc)&&xn().plugins.getPlugin($gc);if(!e)return!0;let n=e.parseDate(o);if(n.date===null)return!0;t=new Date(n.date)}else t=e}else typeof o==$0j&&o&&$3o in o&&(t=new Date(o.value));if(n.naturalDates){if(!t||isNaN(t.getTime()))return!0;let n=sd(new Date(e.createdAt),Yu(t));return a===$0x?n:!n}if(!t)return!0;let r=new Date(e.createdAt);return a===$0x?r>=t:r<t}default:return!0}}function md(e,t,n){if(!Array.isArray(t)||t.length===0)return!0;let r=pd(e,t[0],n);for(let i=1;i<t.length;i++){let a=t[i],o=pd(e,a,n);a.relation===`OR`?r||=o:r&&=o}return r}var hd,gd=o((()=>{ia(),cd(),wn(),hd=new Map([[`7d`,7],[`14d`,14],[`30d`,30],[`90d`,90],[$mt,180],[$mx,365]])}));function _d(e){let t;try{if(t=yd&&(self.URL||self.webkitURL).createObjectURL(yd),!t)throw``;let n=new Worker(t,{name:e?.name});return n.addEventListener($12,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch{return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(vd),{name:e?.name})}}var vd,yd,bd=o((()=>{vd="(function(){function e(e){let t=new Date(e);return t.setDate(t.getDate()-t.getDay()),t.setHours(0,0,0,0),t}function t(e){let t=new Date(e);return t.setDate(t.getDate()+(6-t.getDay())),t.setHours(23,59,59,999),t}function n(e){let t=new Date(e);return t.setDate(1),t.setHours(0,0,0,0),t}function r(e){let t=new Date(e);return t.setFullYear(t.getFullYear(),t.getMonth()+1,0),t.setHours(23,59,59,999),t}function i(e){let t=new Date(e);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function a(e){let t=new Date(e);return t.setFullYear(t.getFullYear(),11,31),t.setHours(23,59,59,999),t}function o(e,t){let n=new Date(e);return n.setDate(n.getDate()-t),n}function s(e,t){let n=new Date(e),r=n.getDate(),i=new Date(n.getTime());return i.setMonth(n.getMonth()+t+1,0),r>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),r),n)}function c(e,t){return s(e,-t)}function l(e,t){return s(e,-t*12)}function u(e,t){let n=new Date(e).getTime(),r=new Date(t.start).getTime(),i=new Date(t.end).getTime();return r<=i?n>=r&&n<=i:!1}let d=/\\s#([^\\u2000-\\u206F\\u2E00-\\u2E7F'!\"#$%&()*+,.:;<=>?@^`{|}~[\\]\\\\\\s]+)/g,f=/(<p>|<br>)#([^\\u2000-\\u206F\\u2E00-\\u2E7F'!\"#$%&()*+,.:;<=>?@^`{|}~[\\]\\\\\\s]+)/g,p=/^#([^\\u2000-\\u206F\\u2E00-\\u2E7F'!\"#$%&()*+,.:;<=>?@^`{|}~[\\]\\\\\\s]+)/gu,m=/(\\s|:|\\(|>|^)((http|ftp|https):\\/\\/([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-]))/g,h=/([^\\s<\\\\*>'(]+\\.(jpeg|jpg|gif|png|svg))(\\]\\])?(\\))?/g,g=/\\[@(.+?)\\]\\((.+?)\\)/g;function _(e){return e?Array.isArray(e)?e.filter(e=>e).map(e=>e.toString().trim()):typeof e==`string`?e.split(/[\\s,]+/).filter(Boolean):[]:[]}function v(e){return[/#([^\\s#]+)/g,/\\n#([^\\s#]+)/g,/^#([^\\s#]+)/g].reduce((t,n)=>((e.match(n)||[]).forEach(e=>{let r=e.replace(n,`$1`).trim().split(`/`),i=``;r.forEach(e=>{i+=e,t.add(i),i+=`/`})}),t),new Set)}function y(e){if(!Array.isArray(e)||e.length===0)return new Set;let t=e.filter(e=>!!e).map(e=>e.toString().trim());if(t.length===0)return new Set;let n=new Set;return t.forEach(e=>{let t=e.split(`/`),r=``;t.forEach((e,t)=>{r+=(t>0?`/`:``)+e,n.add(r)})}),n}function b(e){let t=e.toLowerCase();return e=>e.includes(t)}function x(e,t,n){let{onlyFilterType:r,filterArchived:i=!0,filterDeleted:a=!0,filterDoneTasks:o=!1,filterComments:s=!0,filterTagsInFile:c=!1}=n||{},l=/#([^\\s#]+)/g,u=/^#([^\\s#]+)/g,d=/\\n#([^\\s#]+)/g,f=/\\[(.+?)\\]\\((.+?)\\)/g,p=/!\\[(.+?)\\]\\((.+?)\\)/g,m=/\\[\\[(.+?)\\]\\]/g,h=e;if(r&&r!==`all`)switch(r){case`archived`:h=e.filter(e=>e.rowStatus===`ARCHIVED`&&!e.deletedAt);break;case`deleted`:h=e.filter(e=>e.deletedAt!==``&&e.deletedAt);break;case`doneTasks`:h=e.filter(e=>e.thinoType===`TASK-DONE`);break;case`comments`:h=e.filter(e=>e.content.includes(`comment:`));break}else h=e.filter(e=>!(i&&e.rowStatus===`ARCHIVED`||a&&e.deletedAt||s&&e.content.includes(`comment:`)||o&&e.thinoType===`TASK-DONE`));if(w(t))return h;let{tag:g,duration:x,type:S,text:C,filter:D,path:O,metadata:k}=t,A=C?.toLowerCase()||``,j=!k||Object.keys(k).length===0,M=A?b(A):null;return h.filter(e=>{if(D)try{let n=t.filterContent;if(Array.isArray(n)&&!E(e,n))return!1}catch(e){console.error(`Failed to parse query filters:`,e)}if(!j&&Object.keys(k).some(t=>e.fileInfo?.frontmatter[t]!==k[t])||O&&e.path&&!e.path.toLowerCase().includes(O.toLowerCase()))return!1;if(M){let t=M(e.content.toLowerCase()),n=e.path?e.path.toLowerCase().includes(A):!1;if(e.thinoType===`MULTI`&&e.path){if(!t&&!n)return!1}else if(!t)return!1}if(g){let t=v(e.content),n=c?y(_(e.fileInfo?.tags)):new Set;if(!t.has(g)&&!n.has(g))return!1}if(x&&x.from!==0&&x.to!==0){let t=e.createdAtTs??T(e.createdAt);if(t<x.from||t>x.to)return!1}if(S)switch(S){case`NOT_TAGGED`:if(e.content.match(l)||e.content.match(u)||e.content.match(d))return!1;break;case`LINKED`:if(!e.content.match(f))return!1;break;case`IMAGED`:if(!e.content.match(p))return!1;break;case`CONNECTED`:if(!e.content.match(m))return!1;break}return!0})}let S=new Map([[`7d`,7],[`14d`,14],[`30d`,30],[`90d`,90],[`180d`,180],[`365d`,365]]);function C(s,u){let d=S.get(s);if(d)return{from:o(u,d),to:u};let f=s.startsWith(`last`);if(!f&&!s.startsWith(`this`))return null;switch(s.slice(4)){case`Week`:{let n=f?o(u,7):u;return{from:e(n),to:t(n)}}case`Month`:{let e=f?c(u,1):u;return{from:n(e),to:r(e)}}case`Year`:{let e=f?l(u,1):u;return{from:i(e),to:a(e)}}default:return null}}function w(e){if(!e)return!0;let{tag:t,duration:n,type:r,text:i,filter:a,path:o,metadata:s}=e,c=!s||Object.keys(s).length===0;return!(t||n&&n.from<n.to||r||i||a||o||!c)}function T(e){return new Date(e).getTime()}function E(e,t){if(!Array.isArray(t)||t.length===0)return!0;let n=D(e,t[0]);for(let r=1;r<t.length;r++){let i=t[r],a=D(e,i);i.relation===`OR`?n||=a:n&&=a}return n}function D(e,t){if(!t||typeof t!=`object`||!t.type||!t.value||typeof t.value!=`object`)return!0;let{type:n,value:r}=t,i=r.operator,a=r.value;switch(n){case`TAG`:{let t=typeof a==`string`?a:``,n=v(e.content),r=y(_(e.fileInfo?.tags)),o=Array.from(n).some(e=>e===t||e.startsWith(`${t}/`))||Array.from(r).some(e=>e===t||e.startsWith(`${t}/`));return i===`CONTAIN`?o:!o}case`TEXT`:{let t=typeof a==`string`?a.toLowerCase():``,n=e.content.toLowerCase().includes(t);return i===`CONTAIN`?n:!n}case`TYPE`:{let t=!1;return(a===`NOT_TAGGED`&&e.content.match(d)===null&&e.content.match(f)===null&&e.content.match(p)===null||a===`LINKED`&&e.content.match(m)!==null||a===`IMAGED`&&e.content.match(h)!==null||a===`CONNECTED`&&e.content.match(g)!==null)&&(t=!0),i===`IS`?t:!t}case`DATE`:{let t=typeof a==`string`?new Date(a):typeof a==`object`&&a&&`value`in a?new Date(a.value):null;if(!t)return!0;let n=new Date(e.createdAt);return i===`CONTAIN`?n>=t:n<t}case`LIST`:switch(a){case`TODO`:{let t=e.thinoType===`TASK-TODO`;return i===`IS`?t:!t}case`DONE`:{let t=e.thinoType===`TASK-DONE`;return i===`IS`?t:!t}case`LIST`:{let t=e.thinoType===`JOURNAL`;return i===`IS`?t:!t}case`OTHER`:{let t=![`TASK-TODO`,`TASK-DONE`,`JOURNAL`].includes(e.thinoType);return i===`IS`?t:!t}default:return!0}case`SOURCE`:return i===`IS`?e.sourceType===a:e.sourceType!==a;case`PATH`:{if(!e.path)return i!==`CONTAIN`;let t=typeof a==`string`?a.toLowerCase():``,n=e.path.toLowerCase().includes(t);return i===`CONTAIN`?n:!n}case`METADATA`:{if(!e.fileInfo?.frontmatter)return i!==`CONTAIN`;let t=typeof a==`object`&&a?a:{name:``,value:``},n=`name`in t?t.name:``,r=`value`in t?t.value:``;if(!n)return!0;let o=e.fileInfo.frontmatter[n]===r;return i===`CONTAIN`?o:!o}case`TIME_RANGE`:{if(typeof a!=`string`)return!0;let t=C(a,new Date);if(!t)return!0;let n=new Date(e.createdAt);return i===`WITHIN`?u(n,{start:t.from,end:t.to}):i===`BEFORE`?n<t.from:!0}default:return!0}}let O=e=>{let t=e?.match(/^(\\d{4})[-/](\\d{1,2})[-/](\\d{1,2})/);return t?`${t[1]}/${t[2].padStart(2,`0`)}/${t[3].padStart(2,`0`)}`:``},k=e=>{let t=e?.match(/^(\\d{4})[-/](\\d{1,2})/);return t?`${t[1]}/${t[2].padStart(2,`0`)}`:``},A=e=>{let t=e?.match(/\\s(\\d{1,2}):/);if(!t)return null;let n=parseInt(t[1],10);return Number.isNaN(n)?null:n},j=e=>{let t={};return e.forEach(e=>{let n=O(e.createdAt);n&&(t[n]?t[n]++:t[n]=1)}),Object.keys(t).sort((e,n)=>t[n]-t[e])[0]||``},M=e=>{let t={};return e.forEach(e=>{let n=A(e.createdAt)?.toString().padStart(2,`0`);n&&(t[n]?t[n]++:t[n]=1)}),Object.keys(t).sort((e,n)=>t[n]-t[e])[0]||``},N=(e,t)=>{let n=Math.abs(t.getTime()-e.getTime());return Math.round(n/864e5)+1};function P(e,t){let n=new Set,r={},i=new Map;for(let a of e){if(a.deletedAt!==``&&a.deletedAt||a.rowStatus===`ARCHIVED`)continue;let e=[];if(t.filterTagsInFile&&!i.has(a.path)){let t=(Array.isArray(a?.fileInfo?.tags)?a.fileInfo.tags:typeof a?.fileInfo?.tags==`string`?[a.fileInfo.tags]:[]).filter(e=>e).map(e=>e.toString().trim());i.set(a.path,t),e.push(...t)}let o=a.content.replace(/<[^>]*>/g,``).replace(/```(.*)?\\n[\\s\\S]*?\\n```/gm,``).replace(/`([^`].*?)`/g,``),s=[...Array.from(o.match(d)||[]),...Array.from(o.match(p)||[]),...Array.from(o.match(f)||[])];e.push(...s);for(let t of e){if(!t||t===`undefined`)continue;let e=t.replace(d,`$1`).replace(p,`$1`).replace(f,`$2`).trim();e&&!/^\\d+$/.test(e)&&(n.add(e),r[e]=(r[e]||0)+1)}}return{tagsSet:n,counts:r}}self.addEventListener(`message`,e=>{Promise.resolve().then(async()=>{try{let{type:t,data:n}=e.data;if(t===`filter-memos`){let{memos:e,query:t,filterOptions:r}=n,i=x(e,t,r);postMessage({type:`filter-result`,data:i})}else if(t===`build-tag-tree`){let{memos:e,filterOptions:t}=n,{tagsSet:r,counts:i}=P(e,t);postMessage({type:`build-tag-tree-result`,data:{tagsSet:r,counts:i}})}else if(t===`calculate-stats-banner`){let{memos:e,tags:t}=n,r=e.filter(e=>!(e.deletedAt!==``&&e.deletedAt)).length,i=t.length,a=e.length>0?e[e.length-1]:null,o=0;if(a&&a.createdAt){let e=O(a.createdAt).split(`/`);o=N(new Date(parseInt(e[0]),parseInt(e[1])-1,parseInt(e[2])),new Date)}let s=e.filter(e=>!e.deletedAt&&e.rowStatus!==`ARCHIVED`).filter(e=>e.thinoType&&e.thinoType?.startsWith(`TASK`)).length,c=j(e),l=M(e);postMessage({type:`stats-banner-result`,data:{memosLength:r,tagsLength:i,createdDays:o,taskAmount:s,mostActiveDay:c,mostActiveHour:l,earliestMemo:a,lengthOverflow:r>9999||i>999||o>999}})}else if(t===`calculate-stats`){let{memos:e}=n,t=new Date,r=new Date(t),i=[...Array(30)].map((t,n)=>{let i=new Date(r);i.setDate(r.getDate()-(29-n));let a=i.toISOString().split(`T`)[0].replace(/-/g,`/`),o=e.filter(e=>O(e.createdAt)===a).length;return{date:`${(i.getMonth()+1).toString().padStart(2,`0`)}/${i.getDate().toString().padStart(2,`0`)}`,count:o}}),a=t.getMonth(),o=t.getFullYear(),s=new Date(o,a+1,0).getDate(),c=[...Array(s)].map((t,n)=>{let r=new Date(o,a,n+1),i=r.toISOString().split(`T`)[0].replace(/-/g,`/`),s=e.filter(e=>O(e.createdAt)===i).length;return{date:`${(r.getMonth()+1).toString().padStart(2,`0`)}/${r.getDate().toString().padStart(2,`0`)}`,count:s}}),l=[...Array(12)].map((t,n)=>{let r=new Date(o,n,1),i=r.toISOString().slice(0,7).replace(/-/g,`/`),a=e.filter(e=>k(e.createdAt)===i).length;return{date:`${(r.getMonth()+1).toString().padStart(2,`0`)}`,count:a}}),u=[...Array(24)].map((t,n)=>{let r=e.filter(e=>A(e.createdAt)===n).length;return{hour:`${n.toString().padStart(2,`0`)}:00`,count:r}}),d=[{period:`00:00-03:00`,count:0},{period:`03:00-06:00`,count:0},{period:`06:00-09:00`,count:0},{period:`09:00-12:00`,count:0},{period:`12:00-15:00`,count:0},{period:`15:00-18:00`,count:0},{period:`18:00-21:00`,count:0},{period:`21:00-24:00`,count:0}];e.forEach(e=>{let t=A(e.createdAt);t!==null&&(t<3?d[0].count++:t<6?d[1].count++:t<9?d[2].count++:t<12?d[3].count++:t<15?d[4].count++:t<18?d[5].count++:t<21?d[6].count++:d[7].count++)});let f=[{min:0,max:25,label:`0-25`},{min:26,max:50,label:`26-50`},{min:51,max:75,label:`51-75`},{min:76,max:100,label:`76-100`},{min:101,max:200,label:`101-200`},{min:201,max:500,label:`201-500`},{min:501,max:1/0,label:`500+`}].map(t=>({range:t.label,count:e.filter(e=>{let n=e.content.length;return n>=t.min&&n<=t.max}).length}));postMessage({type:`stats-result`,data:{dailyData:i,monthlyData:c,yearlyData:l,hourlyData:u,timeDistData:d,lengthData:f}})}}catch(e){console.error(`Worker failed to process:`,e),postMessage({type:`error`,error:e.message||`Unknown error in worker`})}})})})();",yd=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,vd],{type:`text/javascript;charset=utf-8`})}));function xd(){let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}var Sd=o((()=>{}));function Cd(e){e.worker.terminate(),e.active&&e.active[1].reject(Error($nl)),e.active=void 0}var wd,Td,Ed,Dd,Od,kd,Ad,jd=o((()=>{bd(),Sd(),X(),Dn(),wd=e=>e instanceof Error?e:Error(String(e)),Td={workers:8,utilization:.75,workerName:`Thino Parser Worker`},Ed=function(e){return e[e.HIGH=0]=`HIGH`,e[e.MEDIUM=1]=`MEDIUM`,e[e.LOW=2]=`LOW`,e}(Ed||{}),Dd=function(e){return e.BUILD_TAG_TREE=`BUILD_TAG_TREE`,e.CALCULATE_STATS=`CALCULATE_STATS`,e.CALCULATE_STATS_BANNER=`CALCULATE_STATS_BANNER`,e.FILTER_MEMOS=`FILTER_MEMOS`,e.FILTER_MEMOS_TOP_K=`FILTER_MEMOS_TOP_K`,e}(Dd||{}),Od={[Dd.BUILD_TAG_TREE]:Ed.HIGH,[Dd.CALCULATE_STATS]:Ed.HIGH,[Dd.CALCULATE_STATS_BANNER]:Ed.HIGH,[Dd.FILTER_MEMOS]:Ed.LOW,[Dd.FILTER_MEMOS_TOP_K]:Ed.HIGH},kd=e=>{let t={...e};if(e.filter){let n=lf.getQueryById(e.filter);n&&n.querystring&&(t.filterContent=JSON.parse(n.querystring))}return t},Ad=class extends d.Component{workers;nextWorkerId;shutdown;taskQueue;outstanding;throttle;cacheVersion=0;memoVersions=new Map;app;plugin;constructor(e,t,n,r){super(),this.workers=new Map,this.shutdown=!1,this.nextWorkerId=0,this.throttle=n??(()=>({...Td,workerName:r??Td.workerName})),this.taskQueue=[],this.outstanding=new Map,this.app=e,this.plugin=t}addToQueue(e){this.taskQueue.push(e),this.taskQueue.sort((e,t)=>e.priority===t.priority?e.timestamp-t.timestamp:e.priority-t.priority)}getNextTask(){if(this.taskQueue.length!==0)return this.taskQueue.shift()}async schedule(){if(this.taskQueue.length===0||this.shutdown)return;let e=this.availableWorker();if(!e)return;let t=this.getNextTask();if(t){e.active=[t.memos,t.promise,Date.now(),t.outstandingKey];try{switch(t.type){case Dd.CALCULATE_STATS:e.worker.postMessage({type:`calculate-stats`,data:{memos:t.memos}});break;case Dd.CALCULATE_STATS_BANNER:e.worker.postMessage({type:`calculate-stats-banner`,data:{memos:t.memos,tags:t.tags||[]}});break;case Dd.FILTER_MEMOS:case Dd.FILTER_MEMOS_TOP_K:e.worker.postMessage({type:`filter-memos`,data:{memos:t.memos,query:kd(t.query),filterOptions:t.filterOptions,topK:t.topK,returnIds:!!t.topK}});break;case Dd.BUILD_TAG_TREE:e.worker.postMessage({type:`build-tag-tree`,data:{memos:t.memos,filterOptions:t.filterOptions}});break}}catch(t){P(`Obsidian-Thino: Background processing failed. `+String(t)),e.active=void 0,window.setTimeout(()=>void this.schedule(),0)}}}finish(e,t){if(!e.active){P(`Obsidian-Thino: Received a stale worker message. Ignoring.`,t);return}let[,n,r,i]=e.active;if(t&&typeof t==$0j&&$12 in t?n.reject(wd(t.error)):n.resolve(t),i)this.outstanding.delete(i);else for(let[e,t]of this.outstanding.entries())if(t===n){this.outstanding.delete(e);break}if(this.workers.size>this.throttle().workers)this.workers.delete(e.id),Cd(e);else{let t=Date.now(),n=Math.max(.1,this.throttle().utilization)-1,i=(t-r)*n;e.active=void 0,i<=1e-10?(e.availableAt=t,this.schedule()):(e.availableAt=t+i,window.setTimeout(()=>void this.schedule(),i))}}availableWorker(){let e=Date.now();for(let t of this.workers.values())if(!t.active&&t.availableAt<=e)return t;if(this.workers.size<this.throttle().workers){let e=this.newWorker();return this.workers.set(e.id,e),e}}newWorker(){let e={id:this.nextWorkerId++,availableAt:Date.now(),worker:new _d,name:this.throttle().workerName};return e.worker.onmessage=async t=>await this.handleWorkerMessage(e,t.data),e}onunload(){for(let e of this.workers.values())Cd(e);for(;this.taskQueue.length>0;){let e=this.taskQueue.shift();e&&e.promise.reject(Error($nl))}this.shutdown=!0}getVersionString(e){let t=`_v${this.cacheVersion}`;if(e&&e.length>0){let n=e.slice(0,10).map(e=>`${e.id}:${this.memoVersions.get(e.id)||0}`).join(`;`);t+=`_m${n}_len${e.length}`}return t}enqueue(e,t,n){let r=this.outstanding.get(e);if(r!==void 0&&!t)return r;let i=xd();return this.outstanding.set(e,i),this.addToQueue({...n,promise:i,priority:Od[n.type],timestamp:Date.now(),outstandingKey:e}),this.schedule(),i}async calculateStats(e,t=!1){try{if(!e||e.length===0)return{};let n=t?`_force${Date.now()}`:this.getVersionString(e),r=e.map(e=>e.id).join(`,`)+`_stats`+n;return this.enqueue(r,t,{type:Dd.CALCULATE_STATS,memos:e})}catch(e){return console.error(`Obsidian-Thino: Failed to calculate stats. `+String(e)),Promise.reject(wd(e))}}async calculateStatsBanner(e,t,n=!1){try{if(!e||e.length===0)return{memosLength:0,tagsLength:t?.length||0,createdDays:0,taskAmount:0,mostActiveDay:``,mostActiveHour:``,earliestMemo:null,lengthOverflow:!1};let r=n?`_force${Date.now()}`:this.getVersionString(e),i=e.map(e=>e.id).join(`,`)+`_banner`+r;return this.enqueue(i,n,{type:Dd.CALCULATE_STATS_BANNER,memos:e,tags:t})}catch(e){return console.error(`Obsidian-Thino: Failed to calculate banner stats. `+String(e)),Promise.reject(wd(e))}}async filterMemos(e,t,n={},r,i=!1){try{if(!e||e.length===0)return[];let a=kd(t),o=JSON.stringify(a),s=JSON.stringify({...n,filterTagsInFile:this.plugin.settings.FilterByMetadata}),c=i?`_force${Date.now()}`:this.getVersionString(e),l=e.slice(0,20).map(e=>`${e.id}-${e.updatedAt||e.createdAt}`).join(`|`)+`|total:${e.length}_filter_`+o+`_`+s+(r?`_topK${r}`:``)+c;return this.enqueue(l,i,{type:r?Dd.FILTER_MEMOS_TOP_K:Dd.FILTER_MEMOS,memos:e,query:a,filterOptions:{...n,filterTagsInFile:this.plugin.settings.FilterByMetadata},topK:r})}catch(e){return console.error(`Obsidian-Thino: Failed to filter memos. `+String(e)),Promise.reject(wd(e))}}async buildTagTree(e,t=!1){try{if(!e||e.length===0)return{};let n={filterTagsInFile:this.plugin.settings.FilterByMetadata},r=t?`_force${Date.now()}`:this.getVersionString(e),i=e.map(e=>e.id).join(`,`)+`_tags_`+JSON.stringify(n)+r;return this.enqueue(i,t,{type:Dd.BUILD_TAG_TREE,memos:e,filterOptions:n})}catch(e){return console.error(`Obsidian-Thino: Failed to build tag tree. `+String(e)),Promise.reject(wd(e))}}async handleWorkerMessage(e,t){if(t.type===`stats-result`){e.active&&(P(`[${e.name}] Received stats-result for worker #${e.id}`),this.finish(e,t.data));return}if(t.type===`stats-banner-result`){e.active&&(P(`[${e.name}] Received stats-banner-result for worker #${e.id}`),this.finish(e,t.data));return}if(t.type===`filter-result`){e.active&&(P(`[${e.name}] Received filter-result for worker #${e.id}`,t.data),this.finish(e,t.data));return}if(t.type===`build-tag-tree-result`){e.active&&(P(`[${e.name}] Received build-tag-tree-result for worker #${e.id}`,t.data),this.finish(e,t.data));return}if(t.type===$12){e.active&&(P(`[${e.name}] Error from worker #${e.id}:`,t.error),this.finish(e,{error:t.error}));return}}bumpVersion(e){let t=(this.memoVersions.get(e)||0)+1;return this.memoVersions.set(e,t),t}dropOutstanding(e){let t=[];this.outstanding.forEach((n,r)=>{e(r)&&t.push(r)}),t.forEach(e=>this.outstanding.delete(e))}memoUpdated(e){let t=this.bumpVersion(e);this.dropOutstanding(t=>t.includes(e)),P(`Updated version for memo ${e} to ${t}`)}memosUpdated(e){if(!(!e||e.length===0)){for(let t of e)this.bumpVersion(t);this.dropOutstanding(t=>{let n=t.split(`,`)[0].split(`_`);return e.some(e=>n.includes(e))}),P(`Updated versions for ${e.length} memos`)}}}}));function Md(e){return e.thinoWorkerManager||(e.thinoWorkerManager=new Ad(e.app,e),e.addChild(e.thinoWorkerManager)),e.thinoWorkerManager}function Nd(e,t,n){let{filterArchived:r=!0,filterDeleted:i=!0,filterDoneTasks:a=!1,filterComments:o=!0}=n,s=e.filter(e=>!(r&&e.rowStatus===$07||i&&e.deletedAt||o&&e.content.includes($jh)||a&&e.thinoType===$0p));if(Pd(t))return s;let{tag:c,duration:l,type:u,text:f,filter:p,path:m,metadata:h}=t,g=f?.toLowerCase()||``,_=!h||Object.keys(h).length===0,v=g?(0,d.prepareSimpleSearch)(g):null;return P(`prepared`,v),s.filter(e=>{if(p){let t=lf.getQueryById(p);if(P(`queryFilter`,t),t){let n=JSON.parse(t.querystring);if(Array.isArray(n)&&!Fd(e,n))return!1}}if(!_&&Object.keys(h).some(t=>e.fileInfo?.frontmatter[t]!==h[t])||m&&e.path&&!e.path.toLowerCase().includes(m.toLowerCase()))return!1;if(v){let t=v(e.content.toLowerCase()),n=e.path?e.path.toLowerCase().includes(g):!1;if(e.thinoType===$0g&&e.path){if(!t&&!n)return!1}else if(!t)return!1}if(c){let t=ld(e.content),n=dd(ud(e.fileInfo?.tags));if(!t.has(c)&&!n.has(c))return!1}if(l&&l.from!==0&&l.to!==0){let t=R.getMemoTimestamp(e);if(t<l.from||t>l.to)return!1}if(u)switch(u){case $6n:if(e.content.match(Gi)||e.content.match(Ki)||e.content.match(qi))return!1;break;case $dq:if(!e.content.match(Ji))return!1;break;case $i9:if(!e.content.match(Xi))return!1;break;case $bq:if(!e.content.match(ea))return!1;break}return!0})}function Pd(e){if(!e)return!0;let{tag:t,duration:n,type:r,text:i,filter:a,path:o,metadata:s}=e,c=!s||Object.keys(s).length===0;return!(t||n&&n.from<n.to||r||i||a||o||!c)}function Fd(e,t){return!Array.isArray(t)||t.length===0?!0:t.every(t=>pd(e,t,Ld))}var Id,Ld,Rd=o((()=>{X(),ia(),Ia(),Dn(),gd(),jd(),Id=async({memos:e,query:t={},filterOptions:n={},plugin:r,topK:i,forceRefresh:a=!1})=>{let o={onlyFilterType:$ja,filterArchived:!0,filterDeleted:!0,filterDoneTasks:!!n.filterDoneTasks,filterComments:!0,...n},s={...t};if(!r){let t=Nd(e,s,o);if(i){let e=t.slice(0,i);return{ids:e.map(e=>e.id),total:t.length,partial:e.length<t.length}}return t}try{return await Md(r).filterMemos(e,s,o,i,a)}catch(t){console.error(`Failed to filter memos using worker, falling back to synchronous filtering`,t);let n=Nd(e,s,o);if(i){let e=n.slice(0,i);return{ids:e.map(e=>e.id),total:n.length,partial:e.length<n.length}}return n}},Ld={includeFileTags:!0,unknownListPasses:!0}}));function zd(e,t){switch(t){case $5k:return e.createdAtTs??new Date(e.createdAt).getTime();case $i3:return e.updatedAtTs??new Date(e.updatedAt).getTime();case $ig:return e.content.length;case $6z:return e.sourceType||``;case $cf:return e.thinoType||``;case $eb:return e.pinned?1:0;default:return t in e&&e[t]||``}}function Bd(e,t,n){let r=0;if(typeof e==$0e&&typeof t==$0e)r=e-t;else if(typeof e==$q&&typeof t==$q)r=e.localeCompare(t);else{let n=String(e),i=String(t);r=n.localeCompare(i)}return n===$9w?-r:r}function Vd(e,t){return e.slice().sort((e,n)=>e.pinned===n.pinned?Bd(zd(e,t.field),zd(n,t.field),t.direction):e.pinned?-1:1)}function Hd(){return{field:$5k,direction:$9w,label:$kk}}function Ud(e){try{let t=e?.loadLocalStorage($im);if(t&&typeof t==$q){let e=JSON.parse(t);if(e.field&&e.direction&&e.label)return e}}catch(e){console.warn(`Failed to load sort config:`,e)}return Hd()}var Wd=o((()=>{})),Gd,Kd=o((()=>{fr(),Dr(),Yr(),Wd(),Gd=ur()(Cr(br(Er(e=>({sort:Hd(),setSort:t=>e(e=>e.sort===t?e:{sort:t})}),{name:`memo-sort-store-cache`,storage:Jr.ui,partialize:e=>({sort:e.sort}),version:1}),{name:`memo-sort-store`})))})),qd,Jd=o((()=>{fr(),Dr(),qd=ur()(br((e,t)=>({tagCache:new Map,lastTagQuery:``,lastTagResult:[],quickTagFilter:(n,r)=>{let i=t().tagCache.get(r);if(i)return i;let a=typeof r==$q?r.split(`,`).map(e=>e.trim()).filter(Boolean):[],o=n.filter(e=>{if(e.rowStatus===$07||e.deletedAt||e.content.includes($jh))return!1;if(!a.length)return!0;let t=a.some(t=>{let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return[`^#${n}$`,`^#${n}\\s`,`\\s#${n}\\s`,`\\s#${n}$`,`^#${n}/`,`\\s#${n}/`,`#${n}\\n`,`\\n#${n}`].some(t=>new RegExp(t).test(e.content))}),n=e.fileInfo?.tags,r=[];if(Array.isArray(n))r=n.filter(Boolean).map(String);else if(typeof n==$q)r=n.split(`,`).map(e=>e.trim()).filter(Boolean);else if(n&&typeof n[Symbol.iterator]==$z)try{r=Array.from(n).map(String)}catch{r=[]}let i=r.length>0&&a.some(e=>r.some(t=>t===e||t.startsWith(`${e}/`)));return t||i}),s=new Map(t().tagCache);if(s.size>20){let e=s.keys().next().value;s.delete(e)}return s.set(r,o),e({tagCache:s,lastTagQuery:r,lastTagResult:o}),o},clearCache:()=>{e({tagCache:new Map,lastTagQuery:``,lastTagResult:[]})}})))}));function Yd(e,t){if(!e.activeConversationId)return e.conversations;let n=e.conversations.findIndex(t=>t.id===e.activeConversationId);if(n===-1)return e.conversations;let r=t(e.conversations[n]);if(r===e.conversations[n])return e.conversations;let i=[...e.conversations];return i[n]=r,i}var Xd,J,Zd=o((()=>{fr(),Dr(),Yr(),Xd={enabled:!1,embeddingReady:!1,indexStatus:{totalMemos:0,indexedMemos:0,isIndexing:!1,lastIndexedAt:null,failedMemos:[]},messages:[],isProcessing:!1,conversations:[],activeConversationId:null,searchQuery:``,searchResults:[],isSearching:!1,providers:{},activeEmbeddingProvider:$20,activeCompletionProvider:$20,embeddingModel:$34},J=ur()(Cr(br(Er(e=>{let t=t=>n=>e(e=>e[t]===n?e:{[t]:n});return{...Xd,setEnabled:t(`enabled`),setEmbeddingReady:t(`embeddingReady`),addMessage:t=>e(e=>({messages:[...e.messages,t],conversations:Yd(e,e=>({...e,messages:[...e.messages,t],updatedAt:Date.now()}))})),updateMessage:(t,n)=>e(e=>{let r=e.messages.findIndex(e=>e.id===t),i=r===-1?e.messages:e.messages.map((e,t)=>t===r?{...e,...n}:e),a=Yd(e,e=>e.messages.some(e=>e.id===t)?{...e,messages:e.messages.map(e=>e.id===t?{...e,...n}:e),updatedAt:Date.now()}:e);return i===e.messages&&a===e.conversations?e:{messages:i,conversations:a}}),setIsProcessing:t(`isProcessing`),createConversation:()=>{let t=`conv-${Date.now()}`,n=Date.now();return e(e=>({conversations:[...e.conversations,{id:t,title:`New Chat`,messages:[],createdAt:n,updatedAt:n}],activeConversationId:t,messages:[]})),t},setActiveConversation:t=>e(e=>{if(!t)return{activeConversationId:null,messages:[]};let n=e.conversations.find(e=>e.id===t);return{activeConversationId:t,messages:n?n.messages.map(e=>({...e})):[]}}),deleteConversation:t=>e(e=>{let n=e.conversations.filter(e=>e.id!==t);return e.activeConversationId===t?{conversations:n,activeConversationId:null,messages:[]}:{conversations:n}}),renameConversation:(t,n)=>e(e=>{let r=e.conversations.findIndex(e=>e.id===t);if(r===-1)return e;let i=[...e.conversations];return i[r]={...i[r],title:n},{conversations:i}}),loadExternalMessages:t=>e({activeConversationId:null,messages:t}),setSearchQuery:t(`searchQuery`),setSearchResults:t(`searchResults`),setIsSearching:t(`isSearching`),updateProvider:(t,n)=>e(e=>({providers:{...e.providers,[t]:{...e.providers[t],...n}}})),removeProvider:t=>e(e=>{if(!(t in e.providers))return e;let n={...e.providers};return delete n[t],{providers:n}}),setActiveEmbeddingProvider:t(`activeEmbeddingProvider`),setActiveCompletionProvider:t(`activeCompletionProvider`),reset:()=>e(()=>({...Xd}))}},{name:`super-store-cache`,storage:Jr.ui,partialize:e=>({enabled:e.enabled,providers:e.providers,activeEmbeddingProvider:e.activeEmbeddingProvider,activeCompletionProvider:e.activeCompletionProvider,embeddingModel:e.embeddingModel,conversations:e.conversations,activeConversationId:e.activeConversationId}),onRehydrateStorage:()=>(e,t)=>{t||queueMicrotask(()=>{let e=J.getState();e.activeConversationId&&e.setActiveConversation(e.activeConversationId)})},version:3,migrate:(e,t)=>{let n=e;return t<2&&(n.embeddingModel=$34),t<3&&(n.conversations=n.conversations||[],n.activeConversationId=n.activeConversationId||null),n}}),{name:`super-store`})))})),Qd,$d=o((()=>{fr(),Dr(),Rd(),Ha(),U(),Kd(),Wd(),Jd(),Zd(),Qd=ur()(br((e,t)=>({filteredMemos:[],lastNonEmpty:[],isCalculating:!1,error:null,version:0,lastQuerySig:void 0,lastSortSig:void 0,lastTopKey:void 0,inflightSig:void 0,recompute:async()=>{let n=z.getState().memos,{query:r}=V.getState(),{settings:i,plugin:a}=H.getState(),o=Gd.getState().sort;if(!n||n.length===0){e({isCalculating:!1});return}let s=J.getState().enabled&&r?.text?J.getState().searchResults.map(e=>e.entry.memoId).join(`,`):``,c=JSON.stringify({tag:r?.tag||``,dur:r?.duration?[r.duration.from,r.duration.to]:null,type:r?.type||``,text:r?.text||``,filter:r?.filter||``,path:r?.path||``,metadata:r?.metadata||{},hideDone:!!i?.HideDoneTasks,superResults:s}),l=JSON.stringify(o||null),u=z.getState().memosHash||``,d=t();if(d.lastQuerySig===c&&d.lastSortSig===l&&d.lastMemosSig===u&&!d.error)return;let f=`${c}|${l}|${u}`;if(d.inflightSig===f)return;if(r?.tag&&!r.text&&!r.type&&!r.filter&&!r.path&&(!r.metadata||Object.keys(r.metadata).length===0)&&(!r.duration||r.duration.from===0&&r.duration.to===0)&&!i?.HideDoneTasks){let t=Vd(qd.getState().quickTagFilter(n,r.tag),o);e(e=>{let n=e.version+1;return{filteredMemos:[...t],lastNonEmpty:t.length>0?[...t]:e.lastNonEmpty,isCalculating:!1,error:null,version:n,lastQuerySig:c,lastSortSig:l,lastMemosSig:u,lastTopKey:t.slice(0,5).map(e=>`${e.id}-${e.updatedAt||e.createdAt}`).join(`,`),inflightSig:void 0}});return}let p=J.getState();if(p.enabled&&r?.text&&p.searchResults.length>0&&!p.isSearching){let t=new Map;p.searchResults.forEach((e,n)=>{t.has(e.entry.memoId)||t.set(e.entry.memoId,n)});let o=new Map(n.map(e=>[e.id,e])),s=[];for(let[e]of t){let t=o.get(e);t&&s.push(t)}let d=await Id({memos:s,query:{...r,text:``},filterOptions:{filterDoneTasks:i?.HideDoneTasks||!1},plugin:a});if(!Array.isArray(d))return;let f=new Set(d.map(e=>e.id)),m=s.filter(e=>f.has(e.id)),h=m.slice(0,5).map(e=>`${e.id}-${e.updatedAt||e.createdAt}`).join(`,`);e(e=>{let t=e.version+1;return{filteredMemos:[...m],lastNonEmpty:m.length>0?[...m]:e.lastNonEmpty,isCalculating:!1,error:null,version:t,lastQuerySig:c,lastSortSig:l,lastMemosSig:u,lastTopKey:h,inflightSig:void 0}});return}e({inflightSig:f});try{let t=await Id({memos:n,query:r,filterOptions:{filterDoneTasks:i?.HideDoneTasks||!1},plugin:a});if(!Array.isArray(t))return;let s=Vd(t,o),d=!r?.metadata||Object.keys(r.metadata).length===0,f=!(r?.tag||r?.duration&&r.duration.from<r.duration.to||r?.type||r?.text||r?.filter||r?.path||!d),p=(n?.length||0)>0,m=(s||[]).slice(0,5).map(e=>`${e.id}-${e.updatedAt||e.createdAt}`).join(`,`);e(e=>{if(e.lastQuerySig===c&&e.lastSortSig===l&&e.lastMemosSig===u&&e.lastTopKey===m&&e.filteredMemos.length===s.length)return{isCalculating:!1,error:null,inflightSig:void 0};let t=p&&s.length===0&&f?e.lastNonEmpty.length>0?e.lastNonEmpty:e.filteredMemos:s,n=e.version+1;return{filteredMemos:[...t],lastNonEmpty:s.length>0?[...s]:e.lastNonEmpty,isCalculating:!1,error:null,version:n,lastQuerySig:c,lastSortSig:l,lastMemosSig:u,lastTopKey:m,inflightSig:void 0}})}catch(t){let n=t instanceof Error&&t.message||String(t);e(e=>({isCalculating:!1,error:n,version:e.version+1}))}},setFilteredMemos:t=>e(()=>({filteredMemos:t})),quickInsertMemo:t=>{let{query:n}=V.getState(),{settings:r}=H.getState(),i=Gd.getState().sort;(()=>{if(!n||Object.keys(n).every(e=>!n[e]))return!0;if(n.tag&&!t.content.includes(`#${n.tag}`)||n.text&&!t.content.toLowerCase().includes(n.text.toLowerCase()))return!1;if(n.type)switch(n.type){case $6n:if(t.content.match(/#[^\s#]+/))return!1;break;case $dq:if(!t.content.match(/\[.+?\]\(.+?\)/))return!1;break;case $i9:if(!t.content.match(/!\[.+?\]\(.+?\)/))return!1;break;case $bq:if(!t.content.match(/\[\[.+?\]\]/))return!1;break}return!(r?.HideDoneTasks&&t.thinoType===$0p)})()&&e(e=>{let n=Vd([t,...[...e.filteredMemos]],i);return{filteredMemos:n,version:e.version+1,lastNonEmpty:n.length>0?n:e.lastNonEmpty}})},quickDeleteMemo:t=>{e(e=>{let n=e.filteredMemos.findIndex(e=>e.id===t);if(n===-1)return e;let r=[...e.filteredMemos];return r.splice(n,1),{filteredMemos:r,version:e.version+1,lastNonEmpty:r.length>0?r:[],lastMemosSig:void 0}})},quickDeleteBatch:n=>{n.length!==0&&(n.length<=10?e(e=>{let t=new Set(n),r=e.filteredMemos.filter(e=>!t.has(e.id));return r.length===e.filteredMemos.length||r.length===e.filteredMemos.length&&r.every((t,n)=>t.id===e.filteredMemos[n].id)?e:{filteredMemos:r,version:e.version+1,lastNonEmpty:r.length>0?r:[],lastMemosSig:void 0}}):t().recompute())},quickUpdateBatch:n=>{if(n.length===0)return;let{query:r}=V.getState(),{settings:i}=H.getState(),a=Gd.getState().sort;n.length<=10?e(e=>{let t=n.filter(e=>e.content&&e.content.trim()!==``&&e.rowStatus!==$10&&e.rowStatus!==$07&&!e.deletedAt);if(t.length===0){let t=new Set(n.map(e=>e.id)),r=e.filteredMemos.filter(e=>!t.has(e.id));return{filteredMemos:r,version:e.version+1,lastNonEmpty:r.length>0?r:[],lastMemosSig:void 0}}let o=new Map(t.map(e=>[e.id,e])),s=new Set(n.map(e=>e.id)),c=e.filteredMemos.filter(e=>!s.has(e.id)||o.has(e.id)).map(e=>o.has(e.id)?o.get(e.id):e),l=new Set(e.filteredMemos.map(e=>e.id)),u=t.filter(e=>l.has(e.id)?!1:!r||Object.keys(r).every(e=>!r[e])?!0:!(r.tag&&!e.content.includes(`#${r.tag}`)||r.text&&!e.content.toLowerCase().includes(r.text.toLowerCase())||i?.HideDoneTasks&&e.thinoType===$0p));u.length>0&&(c=[...c,...u]);let d=Vd(c,a);if(d.length===e.filteredMemos.length&&d.every((t,n)=>t.id===e.filteredMemos[n].id))return e;let f=d.length<e.filteredMemos.length;return{filteredMemos:d,version:e.version+1,lastNonEmpty:d.length>0?d:[],lastMemosSig:f?void 0:e.lastMemosSig}}):t().recompute()}})))})),ef,tf,nf=o((()=>{ef=class{cache=new Map;DEFAULT_TTL=300*1e3;set(e,t,n){this.cache.set(e,{data:t,timestamp:Date.now(),ttl:n||this.DEFAULT_TTL})}get(e){let t=this.cache.get(e);return t?Date.now()-t.timestamp>t.ttl?(this.cache.delete(e),null):t.data:null}cleanup(){let e=Date.now();for(let[t,n]of this.cache)e-n.timestamp>n.ttl&&this.cache.delete(t)}},tf=new ef,window.setInterval(()=>{tf.cleanup()},300*1e3)})),rf,af,of,Y,sf=o((()=>{N(),Hu(),Ia(),U(),fu(),us(),Eu(),I(),Tc(),X(),Ju(),ao(),Wl(),Ms(),$d(),Jd(),nf(),Dn(),rf={DAILY:Vu.deleteMemoInDailyNote,CANVAS:Vu.deleteMemoInCanvas,MULTI:Vu.deleteMemoInMultiFiles,FILE:Vu.deleteMemoInSingleFile,JOURNAL:Vu.deleteMemoInJournalFile},af={DAILY:Gu,CANVAS:qu,MULTI:(e,t)=>Wu(t),FILE:Ku,JOURNAL:Gu},of=class{initialized=!1;_pendingWritePaths=new Map;markPathPending(e){let t=this._pendingWritePaths.get(e);t&&window.clearTimeout(t);let n=window.setTimeout(()=>this._pendingWritePaths.delete(e),5e3);this._pendingWritePaths.set(e,n)}releasePathPending(e){let t=this._pendingWritePaths.get(e);t&&window.clearTimeout(t),this._pendingWritePaths.delete(e)}isPathPending(e){return this._pendingWritePaths.has(e)}getState(){return z.getState()}async fetchAllMemos(){let e=W.getState().settings;if(!e)return console.warn(`Settings not initialized yet in fetchAllMemos`),[];R.checkDailyInMulti(e);let t=`all-memos:${e.EnabledLocationList.map(e=>e.value).join(`,`)}`,n=tf.get(t);if(n&&this.initialized)return n.memos.forEach(R.stampMemoTimestamps),n.commentMemos.forEach(R.stampMemoTimestamps),wt(()=>{z.getState().setMemosAndComments(n.memos,n.commentMemos)}),this.fetchFreshMemos(e,t).catch(console.error),n.memos;js.start($a8);let r=await Vu.getMyMemos(e.EnabledLocationList.map(e=>e.value));js.end($a8,{sources:e.EnabledLocationList.map(e=>e.value)});let i=[...r.memos],a=[...r.commentMemos];return tf.set(t,{memos:i,commentMemos:a},300*1e3),i.forEach(R.stampMemoTimestamps),a.forEach(R.stampMemoTimestamps),wt(()=>{z.getState().setMemosAndComments(i,a)}),queueMicrotask(()=>{qd.getState().clearCache()}),this.initialized||(this.initialized=!0,G.setLoaded(!0)),i}async fetchFreshMemos(e,t){let n=await Vu.getMyMemos(e.EnabledLocationList.map(e=>e.value)),r=[...n.memos],i=[...n.commentMemos];tf.set(t,{memos:r,commentMemos:i},300*1e3);let a=z.getState().memosHash;r.forEach(R.stampMemoTimestamps),i.forEach(R.stampMemoTimestamps),R.computeMemosHash(r)!==a&&(wt(()=>{z.getState().setMemosAndComments(r,i)}),queueMicrotask(()=>{qd.getState().clearCache()}))}async updateTypeMemos(e){let t=await Vu.updateSpecificTypeMemo(e),n=this.getState().memos.filter(t=>t.sourceType!==e);z.getState().setMemos([...n,...t.memos])}async removeTypeMemos(e){let t=this.getState().memos.filter(t=>t.sourceType!==e);z.getState().setMemos([...t])}pushMemo(e){z.getState().insertMemo(e),Qd.getState().quickInsertMemo(e),e.path&&this.releasePathPending(e.path)}getMemoById(e){for(let t of this.getState().memos)if(t.id===e)return t;return null}getMemoByWebId(e){for(let t of this.getState().memos)if(t.webId===e||t.id===e)return t;return null}async finishWaitingForTemplaterThinos(){let e=this.getState().preparingUpdateMemo;if(P(`preparingUpdateMemos`,e),e.length!==0)for(let t of e){let e=this.getMemoById(t.id),n=t.type===$dd?await $l(t.origin,t.isList,t.date,!0):await tu(e);await this.replaceOldThinoWithNewThino(t.id,n),z.getState().removeParticularPrepareUpdateThino(t.id)}}async replaceOldThinoWithNewThino(e,t){this.getMemoById(e)&&z.getState().replaceMemoById(e,t)}async updateMemoById(e,t,n,r){let i=r??this.getMemoByWebId(e);if(!i)return;let a=null,o=n?{}:{content:t.content,rowStatus:t.rowStatus,pinned:t.pinned,deleted:!!t.deletedAt,thinoType:t.thinoType||$9},s=ja({...i,deleted:!!t.deletedAt},{...o,webId:t.id});if(P(`[Thino Sync] apply id=${i.id} src=${i.sourceType} contain=${s} webId=${t.id} oldLen=${(i.content??``).length} newLen=${(t.content??``).length}`),s||(a=await wu(i,{id:i.id,webId:t.id,...o}),!a))return i;z.getState().updateMemo(a)}async archiveThinoBulk(e){let t=[];for(let n of e){let e=wu(n,{id:n.id,rowStatus:$07});e&&t.push(await e)}return t.length>0?(z.getState().archiveMemoBulk(t),t):e}async dealWithDailyThinoBulk(e,t,n){let r=await es(e,t,n);return n===$6u?await this.deleteThinosWithIdBulk(r.map(e=>e.id)):this.editMemoBulk(r),r}async deleteThinosWithIdBulk(e){for(let t of e)z.getState().deleteMemoById(t)}async archiveMemo(e){let t=null;if(t=await wu(e,{id:e.id,rowStatus:$07}),!t)return e;z.getState().archiveMemo(t),V.getState().query?.filter===$07?Qd.getState().quickInsertMemo(t):Qd.getState().quickDeleteMemo(t.id);try{W.getState().plugin?.thinoWorkerManager?.memoUpdated(t.id)}catch{}return t}async removePrepareUpdateThino(){z.getState().removePrepareUpdateThino()}async unarchiveThinoBulk(e){let t=[];for(let n of e){let e=wu(n,{id:n.id,rowStatus:$0b});e&&t.push(await e)}return t.length>0?(z.getState().archiveMemoBulk(t),t):e}async unarchiveMemo(e){let t=null;t=await wu(e,{id:e.id,rowStatus:$0b}),z.getState().unarchiveMemo(t),V.getState().query?.filter===$07?Qd.getState().quickDeleteMemo(t.id):Qd.getState().quickInsertMemo(t);try{W.getState().plugin?.thinoWorkerManager?.memoUpdated(t.id)}catch{}return t}async hideMemoById(e){let t=this.getMemoById(e);if(!t)return t;let n=null;if(n=await wu(t,{id:t.id,deleted:!0}),!n)return t;if(n)return n}async restoreMemoById(e){return await Vu.restoreMemo(e)}async deleteMemoById(e,t){let n=this.getMemoById(e);try{await rf[n.sourceType]?.(n),z.getState().deleteMemoById(e),Qd.getState().quickDeleteMemo(e);try{W.getState().plugin?.thinoWorkerManager?.memoUpdated(n.id)}catch{}}catch(e){console.error(e),new d.Notice(F(143))}t!==$dd&&(n.webId?await q.syncDelete(n.webId):await q.syncDeleteUnlinked(n.id))}async removeMemosInFile(e,t){let n=[];try{if(e.path.endsWith($gn)&&!e.path.contains($3s)&&!t){let t=this.getState().memos.filter(t=>t.path.trim()===e.path.trim());n.push(...t)}else if(e.path.contains($lh)){let t=this.getState().memos.filter(t=>t.path.trim()===e.path.trim());n.push(...t)}else if(e?.parent?.path.contains(t)||!e?.parent&&!e?.parent?.path){let t=this.getState().memos.filter(t=>t.path.trim()===e.path.trim());t.length>0&&n.push(...t)}else e.path.endsWith($gn)&&e.path.contains($3s)&&await pc(e,n);let r=n.map(e=>e.id);z.getState().deleteMemoBatch(r),r.length>0&&Qd.getState().quickDeleteBatch(r)}catch(e){console.error(e)}}async removeThinosByPath(e){let t=this.getState().memos.filter(t=>t.path===e).map(e=>e.id);z.getState().deleteMemoBatch(t),t.length>0&&Qd.getState().quickDeleteBatch(t)}async updateMemosInFile(e,t){let n=W.getState().app,r=await n.vault.adapter.exists(e.path);if(P(n,r),!r){let t=this.getState().memos.filter(t=>t.path.trim()===e.path.trim());if(t.length>0){let e=t.map(e=>e.id);z.getState().deleteMemoBatch(e),Qd.getState().quickDeleteBatch(e),this.updateTagsState()}return}let i=[],a=async()=>{if(e.path.endsWith($gn)&&!e.path.contains($3s)&&!t){await mc(e,i);return}else if(e.path.contains($lh)){await hc(e,i);return}else if(e?.parent?.path.contains(t)&&!e.path.endsWith($bj)){await fc(e,i);return}else if(e.path.endsWith($bj)){P(e),await pc(e,i);return}};try{if(await a(),i.length===0){let t=this.getState().memos.filter(t=>t.path.trim()===e.path.trim());if(t.length>0){let e=t.map(e=>e.id);z.getState().deleteMemoBatch(e),Qd.getState().quickDeleteBatch(e),this.updateTagsState();return}}try{let t=this.getState().memos.filter(t=>t.path.trim()===e.path.trim()),n=new Set(i.map(e=>e.id)),r=[];for(let e of t)n.has(e.id)||r.push(e.id);if(r.length>0){P(`ThinoDebug updateMemosInFile: removing missing memos for`,e.path,`count:`,r.length),z.getState().deleteMemoBatch(r);try{Qd.getState().quickDeleteBatch(r)}catch{}}}catch(e){console.error(`[Thino] updateMemosInFile: cleanup diff failed`,e)}if(z.getState().updateMemoBatch(i,e.path),i.length<=10){Qd.getState().quickUpdateBatch(i);let e=W.getState().plugin;e&&e.thinoWorkerManager.memosUpdated(i.map(e=>e.id)),this.updateTagsState()}else this.editMemoBulk(i)}catch(e){console.error(e)}}async updateMemoProperty(e){let t=await Yo(e,{id:R.randomId(16)});z.getState().updateMemo(t),Qd.getState().recompute()}editMemo(e,t=!1){z.getState().updateMemo(e);let n=W.getState().plugin;n&&!t&&n.thinoWorkerManager.memoUpdated(e.id),t||Qd.getState().recompute(),q.syncEdit(e)}editMemoBulk(e){let t=W.getState().plugin;t&&t.thinoWorkerManager.memosUpdated(e.map(e=>e.id));for(let t of e)this.editMemo(t,!0);this.updateTagsState(),e.length<=10?Qd.getState().quickUpdateBatch(e):Qd.getState().recompute()}getThinoViaKeyword(e){let{memos:t}=this.getState();return t.filter(t=>t.content.toLowerCase().includes(e?.toLowerCase()))}updateTagsStateThrottled=R.throttle(()=>{let{memos:e}=this.getState(),{plugin:t}=W.getState();!t||!e||e.length===0||t.thinoWorkerManager.buildTagTree(e).then(({tagsSet:e,counts:t})=>{z.getState().setTags(Array.from(e),t)})},300);updateTagsState(){this.updateTagsStateThrottled()}clearMemos(){z.getState().clearMemos()}async getLinkedMemos(e){let{memos:t}=this.getState();return t.filter(t=>t.content.includes(e))}async getLinkedMemoByBlockId(e,t){let{memos:n}=this.getState();return n.find(n=>n.hasId===e?t&&n.path?n.path.includes(t)||t.includes(n.path):!0:!1)}async getLinkedMemosByLinkId(e,t){let{memos:n}=this.getState(),r=`${t}#^${e}`;return n.filter(n=>n.linkId?n.linkId.some(n=>n===r||t&&n.endsWith(`#^${e}`)):!1)}async getCommentMemos(e){let{memos:t}=this.getState();return t.filter(t=>t.content.includes(`comment: `+e))}async createMemoMultiFile({content:e,isList:t,name:n}){return await Jl({content:e,isList:t,name:n})}async createMemoSingleFile({content:e,isList:t}){return await Yl({content:e,isList:t})}async createMemoJournalFile({content:e,isList:t}){return await lu({content:e,isList:t})}async createOrPatchThinoFromWeb(e){let t=this.getState().memos;if(e.localId&&t?.some(t=>t.id===e.localId))return await this.updateMemoById(e.localId,e,!0),null;if(P($0c,e),t?.some(t=>t.id===e.id)||t?.some(t=>t.webId===e.id))return await this.updateMemoById(e.id,e,!1),P($0c,e),null;let n=e.sourceType,r=W.getState().settings;switch(r&&r?.saveThinoType&&(n=r.saveThinoType===$0i?e.sourceType:r.saveThinoType),n){case $0i:case $0g:case $0r:return await Zl(e);case $00:case $9:return await tu(e);default:return await Zl(e)}}async applyThinosFromWebBulk(e,t){if(e.length===0)return;let n=e=>{let t=(e.content??``).trim();return t?`${t}�${e.createdAt??``}`:``},r=new Map,i=new Map,a=new Map;for(let e of this.getState().memos){r.set(e.id,e),e.webId&&i.set(e.webId,e);let t=n(e);t&&!a.has(t)&&a.set(t,e)}let o=new Set,s=W.getState().settings,c=e.length,l=0,u=0,d=(e=1)=>{l+=e,(l-u>=25||l>=c)&&(u=l,t?.(l))},f=[],p=[];for(let t of e){let e=i.get(t.id)??r.get(t.id)??a.get(n(t)),c=!!t.deleted,l=t.rowStatus===$10&&c,u=t.rowStatus===$10&&!c;if(e){if(u){d();continue}await this.updateMemoById(e.id,t,!1,e),d();continue}if(l||u){d();continue}let m=n(t);if(m){if(o.has(m)){d();continue}o.add(m)}let h=t.sourceType;s?.saveThinoType&&(h=s.saveThinoType===$0i?t.sourceType:s.saveThinoType),h===$00||h===$9?f.push(t):p.push(t)}let m=[];if(f.length>0&&(m.push(...await nu(f)),d(f.length)),p.length>0&&(m.push(...await ru(p)),d(p.length)),m.length>0){z.getState().upsertMemosBulk(m),Qd.getState().recompute();for(let e of new Set(m.map(e=>e.path).filter(Boolean)))this.releasePathPending(e)}}async attachWebIdsFromWeb(e){let t=new Map(this.getState().memos.map(e=>[e.id,e])),n=[],r=[];for(let i of e){let e=i.localId?t.get(i.localId):void 0;if(!e){r.push(i);continue}e.webId!==i.id&&n.push({memo:e,webId:i.id})}if(n.length>0){let e=await ss(n),t=new Map;for(let n of e){let e=t.get(n.path)??[];e.push(n),t.set(n.path,e)}for(let[e,n]of t)z.getState().updateMemoBatch(n,e)}for(let e of r){let t=await this.createOrPatchThinoFromWeb(e);t&&this.pushMemo(t)}}async createMemoCanvas({text:e,isList:t}){return await Ql({content:e,isList:t})}async createMemoDaily(e,t){return await $l(e,t)}setWaitingForTemplater({origin:e,date:t,isList:n,id:r,type:i}){z.getState().setWaitingForTemplater({origin:e,date:t,isList:n,id:r,type:i})}async pinMemoById(e){let t=await cs(this.getMemoById(e));z.getState().pinMemo(t);let n=await q.syncPin(t.webId,!0);n&&this.editMemo(n)}async unpinMemoById(e){let t=await ls(this.getMemoById(e));z.getState().pinMemo(t);let n=await q.syncPin(t.webId,!1);n&&this.editMemo(n)}async importMemos(e,t,n){return await $l(e,t,n)}async createThino({content:e,isList:t,type:n,name:r}){let i=null;switch(n.toLowerCase()){case $4o:i=await Y.createMemoCanvas({text:e,isList:t});break;case`multi`:i=await Y.createMemoMultiFile({content:e,isList:t,name:r});break;case $50:i=await Y.createMemoDaily(e,t);break;case $44:i=await Y.createMemoSingleFile({content:e,isList:t});break;case $b6:i=await Y.createMemoJournalFile({content:e,isList:t});break;default:i=await Y.createMemoDaily(e,t);break}let a=W.getState().plugin;return a&&a.thinoWorkerManager.memoUpdated(i.id),i&&n!==$00&&window.setTimeout(()=>{(async()=>{let r=await q.syncCreate(e,n,t,i.id);r&&await this.updateMemoById(i.id,r,!0)})()},200),i}async openThinoByID(e){let t=this.getMemoById(e);P(t.path),t&&await af[t.sourceType]?.(t.id,t.path)}async updateMemo(e,t,n){let r=this.getMemoById(e);if(!r)return console.warn(`Memo with ID ${e} not found for update`),null;if(r){let e=null;if(e=await wu(r,{id:r.id,content:t,thinoType:n||r.thinoType}),e)return this.editMemo(e),e}return console.warn(`Failed to update memo ${e}: no updated memo returned`),null}},Y=new of})),cf,lf,uf=o((()=>{Hu(),U(),yo(),X(),cf=class{getState(){return La.getState()}async getMyAllQueries(){let e=K.getState().query.filter,t=this.getQueryById(e),n=await Vu.getMyQueries();return La.getState().setQueries([...n,...t?[t]:[]]),n}getQueryById(e){return this.getState().queries.find(t=>t.id===e)}pushQuery(e){La.getState().insertQuery(e)}editQuery(e){La.getState().updateQuery(e)}async deleteQuery(e){await Vu.deleteQueryById(e),La.getState().deleteQueryById(e)}async createQuery(e,t){return await Vu.createQuery(e,t)}createTempQuery(e,t){return _o(e,t)}async updateQuery(e,t,n){return await Vu.updateQuery(e,t,n)}async pinQuery(e){await Vu.pinQuery(e)}async unpinQuery(e){await Vu.unpinQuery(e)}},lf=new cf})),df,ff,pf,mf=o((()=>{rr(),U(),X(),df=class{async upload(e){let{vault:t,fileManager:n}=H.getState().app,r=await e.arrayBuffer(),i=ff(e.type),a=Un(),o=(0,d.moment)(),s=Gn(o,a),c;if(s)s instanceof d.TFile&&(c=await t.createBinary(await t.getAvailablePathForAttachments(`Pasted Image ${(0,d.moment)().format($08)}`,i,s),r));else{let e=await qn(o);c=await t.createBinary(await t.getAvailablePathForAttachments(`Pasted Image ${(0,d.moment)().format($08)}`,i,e),r)}return n.generateMarkdownLink(c,c.path,``,``)}async parseHtml(e){let t=await e.text(),n=new DOMParser().parseFromString(t,$c9),r=Array.from(n.getElementsByClassName($jt));for(let e of r){let t=e.getElementsByClassName($65)[0],n=(0,d.htmlToMarkdown)(t.innerHTML),r=await Y.importMemos(n,!0,(0,d.moment)(e.getElementsByClassName(`time`)[0].innerHTML));Y.pushMemo(r)}}},ff=e=>/^image\/(.+)$/.exec(e)?.[1],pf=new df})),X=o((()=>{to(),ao(),so(),sf(),uf(),mf(),Wl(),q.setMemoService(Y)}));function hf(){return(0,d.getLanguage)()||navigator.language||`en`}function gf(){let e=hf().toLowerCase();return e===`zh`||e.startsWith(`zh-`)}var _f=o((()=>{}));I(),_f();var vf=`thino-changelog-view`;async function yf(e){let{workspace:t}=e,n=t.getLeavesOfType(vf);if(n.length>0){t.revealLeaf(n[0]);return}let r=t.getLeaf(`tab`);await r.setViewState({type:vf,active:!0}),t.revealLeaf(r)}var bf=class extends d.ItemView{component;version;constructor(e,t){super(e),this.version=t}getViewType(){return vf}getDisplayText(){return F(499)}getIcon(){return $da}async onOpen(){let e=this.containerEl.children[1];e.empty(),e.addClass(`thino-changelog-modal`),e.createEl(`h2`,{text:F(499),cls:`thino-changelog-title`}).createDiv({cls:`thino-changelog-version`,text:`${this.version}`});try{e.createEl($6x,{text:F(497)});let t=e.createDiv(`current-change-log`);e.createEl(`hr`),e.createEl($6x,{text:F(498)});let n=e.createDiv(`prev-change-log`),r=await(0,d.requestUrl)($13);this.component=new d.Component;let[i,a]=this.getLatestVersionContent(r.text),o=i,s=a;try{o=gf()?i.replaceAll($n2,$n3).replaceAll($n0,$mz):i,s=gf()?a.replaceAll($n2,$n3).replaceAll($n0,$mz):a}catch(e){console.error(e)}await d.MarkdownRenderer.render(this.app,o,t,``,this.component),await d.MarkdownRenderer.render(this.app,s,n,``,this.component)}catch(t){console.error(t),e.createEl(`p`,{text:F(502)}),e.createEl(`a`,{text:F(503),attr:{href:$13,target:$1l}})}}async onClose(){this.component?.unload()}getLatestVersionContent(e){let t=[...e.matchAll(/^# .+/gm)];if(t.length===0)return[e,``];let n=t[0].index||0,r=e.length;return t.length>1&&(r=t[1].index||e.length),[e.substring(n,r).trim(),e.substring(r).trim()]}},xf=e=>t=>{t&&(0,d.setIcon)(t,e)};Ge();var Sf=0;Array.isArray;function Z(e,t,n,r,i,a){t||={};var o,s,c=t;if(`ref`in c)for(s in c={},t)s==`ref`?o=t[s]:c[s]=t[s];var l={type:e,props:c,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Sf,__i:-1,__u:0,__source:i,__self:a};if(typeof e==$z&&(o=e.defaultProps))for(s in o)c[s]===void 0&&(c[s]=o[s]);return De.vnode&&De.vnode(l),l}N(),N(),X(),I(),U();var Cf=class extends d.Modal{plugin;constructor(e,t,n){super(e),this.version=n,this.plugin=t}onOpen(){super.onOpen(),this.titleEl.setText(F(649)),new d.Setting(this.contentEl).setName(F(650)+`: `+this.version),new d.Setting(this.contentEl).setName(F(651)).setDesc(F(652)).addButton(e=>{e.setButtonText(F(653)).onClick(async()=>{await $N(this.plugin),new d.Notice(F(654)),window.setTimeout(()=>{window.open($1r,$1l),this.close()},100)})}),new d.Setting(this.contentEl).setName(F(655)).setDesc(F(656)).addButton(e=>{e.setButtonText(F(657)).onClick(async()=>{window.open($1r,$1l),this.close()})})}};function wf(e){var t,n,r=``;if(typeof e==$q||typeof e==$0e)r+=e;else if(typeof e==$0j)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=wf(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Tf(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=wf(e))&&(r&&(r+=` `),r+=t);return r}var Ef=e=>{let t=e?.match(/^(\d{4})[-/](\d{1,2})[-/](\d{1,2})/);return t?`${t[1]}/${t[2].padStart(2,`0`)}/${t[3].padStart(2,`0`)}`:``},Df=e=>{let t=e?.match(/\s(\d{1,2}):/);if(!t)return null;let n=parseInt(t[1],10);return Number.isNaN(n)?null:n},Of=e=>{let t={};return e.forEach(e=>{let n=Ef(e.createdAt);n&&(t[n]?t[n]++:t[n]=1)}),Object.keys(t).sort((e,n)=>t[n]-t[e])[0]||``},kf=e=>{let t={};return e.forEach(e=>{let n=Df(e.createdAt)?.toString().padStart(2,`0`);n&&(t[n]?t[n]++:t[n]=1)}),Object.keys(t).sort((e,n)=>t[n]-t[e])[0]||``};I(),X(),N(),sf(),Ia(),U(),ro();var Af=(e,t,n)=>{let r={memosLength:0,tagsLength:0,createdDays:0,taskAmount:0,mostActiveDay:``,mostActiveHour:``,earliestMemo:null,lengthOverflow:!1};if(r.memosLength=e.filter(e=>!(e.deletedAt!==``&&e.deletedAt)).length,r.tagsLength=t.length,r.earliestMemo=e.length>0?e[e.length-1]:null,r.earliestMemo&&r.earliestMemo.createdAt){let e=(0,d.moment)(r.earliestMemo.createdAt,$6);r.createdDays=(0,d.moment)().diff(e,$2b)+1}return r.taskAmount=e.filter(e=>!e.deletedAt&&e.rowStatus!==$07).filter(e=>e.thinoType&&e.thinoType?.startsWith($fu)).length,r.mostActiveDay=Of(e),r.mostActiveHour=kf(e),r.lengthOverflow=r.memosLength>9999||r.tagsLength>999||r.createdDays>999,n&&If({tags:r.tagsLength,memos:r.memosLength,days:r.createdDays},n),r},jf=e=>{if(d.Platform.isIosApp||d.Platform.isSafari){let t=window.setTimeout(e,0);return()=>window.clearTimeout(t)}let t=y(e,{timeout:2e3});return()=>b(t)};function Mf(e,t=1e3){let[n,r]=D(e),i=k(),a=k(),o=k(!0);return O(()=>(o.current=!0,()=>{o.current=!1,i.current&&cancelAnimationFrame(i.current)}),[]),O(()=>{if(!o.current)return;let s=n,c=e-s;if(Math.abs(c)<.01){r(e);return}let l=n=>{if(!o.current)return;a.current||=n;let u=n-a.current,d=Math.min(u/t,1),f=s+c*d;o.current&&r(f),d<1&&o.current?i.current=window.requestAnimationFrame(l):(o.current&&r(e),a.current=void 0)};return i.current=window.requestAnimationFrame(l),()=>{i.current&&cancelAnimationFrame(i.current),a.current=void 0}},[e,t,n]),Math.round(n)}var Nf=({statusType:e})=>{let{memos:t,tags:n}=z(),{pathname:r}=V(),{app:i,plugin:a}=H(),o=k(!0),s=k(null),[c,l]=D({memosLength:0,createdDays:0,tagsLength:0,taskAmount:0,mostActiveDay:``,mostActiveHour:``,earliestMemo:null,lengthOverflow:!1}),[u,f]=D(!1),[p,m]=D(null),h=Mf(c.memosLength),g=Mf(c.createdDays),_=M.useCallback((e,t)=>{if(!o.current)return;if(u&&t===p){K.setMemoFilter(``),f(!1);return}let n=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify([e]));lf.pushQuery(n),K.setMemoFilter(n.id),f(!0),m(t)},[u,p]),v=M.useCallback(()=>{_({type:$5i,value:{operator:$dp,value:$5i},relation:$81},$5i)},[_]),y=M.useCallback(()=>{_({type:$cu,value:{operator:$dp,value:$6n},relation:$81},$cu)},[_]),b=M.useCallback(()=>{G.setShowSiderbarInMobileView(!1),K.setPathname($2j)},[]),x=M.useCallback(()=>{if(!c.mostActiveDay)return;let e=(0,d.moment)(c.mostActiveDay,$6q),t=e.clone().startOf($04).valueOf(),n=e.clone().endOf($04).valueOf();K.setFromAndToQuery(t,n)},[c.mostActiveDay]);return O(()=>(o.current=!0,()=>{o.current=!1}),[]),O(()=>{if(!i||!i.appId||!o.current)return;let e=Ff(i);o.current&&l(t=>({...t,tagsLength:e.tags,memosLength:e.memos,createdDays:e.days}))},[i]),O(()=>{if(!o.current||!Y.initialized||!a?.thinoWorkerManager||!t||r!==`/`)return;let e=!1,s=async()=>{try{let r=await a.thinoWorkerManager.calculateStatsBanner(t,n);if(e||!o.current)return;let s={memosLength:r.memosLength,tagsLength:Math.max(r.tagsLength,n.length),earliestMemo:r.earliestMemo,lengthOverflow:r.lengthOverflow,createdDays:r.createdDays||0,taskAmount:r.taskAmount||0,mostActiveDay:r.mostActiveDay||``,mostActiveHour:r.mostActiveHour||``};o.current&&l(e=>({...e,...s})),i&&o.current&&If({tags:s.tagsLength,memos:s.memosLength,days:s.createdDays},i)}catch(r){if(e||!o.current)return;console.error(`Failed to calculate stats banner:`,r);try{let e=Af(t,n,a.app);o.current&&l(t=>({...t,memosLength:e.memosLength,tagsLength:e.tagsLength,earliestMemo:e.earliestMemo,lengthOverflow:e.lengthOverflow}))}catch(e){console.error(`Fallback calculation also failed:`,e)}}},c=jf(()=>{e||s()});return()=>{e=!0,c()}},[n,t,r,a,i]),O(()=>{if(!o.current||e===$9t||!a?.thinoWorkerManager)return;let r=!1,i=async()=>{try{let e=await a.thinoWorkerManager.calculateStatsBanner(t,n);if(r||!o.current)return;l(t=>({...t,taskAmount:e.taskAmount||0,mostActiveDay:e.mostActiveDay||``,mostActiveHour:e.mostActiveHour||``}))}catch(e){!r&&o.current&&console.error(`Failed to calculate sidebar stats:`,e)}},s=jf(()=>{r||i()});return()=>{r=!0,s()}},[t,n,e,a]),O(()=>{!o.current||!s.current||!c.earliestMemo?.createdAt||(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(s.current,F(144)+` `+R.getDateTimeString(c.earliestMemo?.createdAt??``))},[c.earliestMemo]),Z($0,{className:Tf($ar,c.lengthOverflow?`text-overflow`:``,e),children:e===$9t?Z(E,{children:[Z($0,{className:`status-text memos-text`,children:[Z($8,{className:$8n,children:h}),Z($8,{className:$ci,children:$9g})]}),Z($0,{className:`status-text tags-text`,children:[Z($8,{className:$8n,children:c.tagsLength}),Z($8,{className:$ci,children:F(35)})]}),Z($0,{ref:s,className:`status-text duration-text`,onClick:b,children:[Z($8,{className:$8n,children:g??0}),Z($8,{className:$ci,children:F(36)})]})]}):Z(E,{children:[Z($0,{className:`status-sidebar-header title-text`,children:Z($8,{className:$1k,children:F(487)})}),Z($0,{className:`status-sidebar-wrapper`,children:[[$o8,F(492),h],[$o8,F(486),c.taskAmount??0,v],[`tags-text`,F(488),c.tagsLength,y],[`duration-text`,F(489),g??0,b,s],[`most-active-day-text`,F(490),c.mostActiveDay,x],[`most-active-hour-text`,F(491),c.mostActiveHour]].map(([e,t,n,r,i])=>Z($0,{ref:i,className:`status-text ${e}`,onClick:r,children:[Z($8,{className:$ci,children:t}),Z($8,{className:$8n,children:n})]},e+t))})]})})};function Pf(e){return`userBannerCache:${e}`}function Ff(e){try{if(!e?.appId)return{tags:0,memos:0,days:0};let t=Pf(e.appId),n=no.get([t])[t];return n?JSON.parse(n):{tags:0,memos:0,days:0}}catch(e){return console.error(e),{tags:0,memos:0,days:0}}}function If({tags:e,memos:t,days:n},r){try{if(!r?.appId)return;let i={tags:e,memos:t,days:n},a=Pf(r.appId);no.set({[a]:JSON.stringify(i)})}catch(e){console.error(e)}}function Lf(e,t){let n=e.length,r=0,i=0,a=0;for(let o=0;o<n;o++)r+=e[o]*t[o],i+=e[o]*e[o],a+=t[o]*t[o];let o=Math.sqrt(i)*Math.sqrt(a);return o===0?0:r/o}var Rf=2,zf=5e3,Bf=384,Vf=class{vectors=new Map;memoIndex=new Map;dirty=!1;saveTimer=null;adapter=null;storePath=``;dimensions=Bf;async initialize(e,t){this.adapter=e,this.storePath=`${t}/vectors/index.json`;let n=`${t}/vectors`;if(await e.exists(n)||await e.mkdir(n),await e.exists(this.storePath))try{let t=await e.read(this.storePath),n=JSON.parse(t);if(n.version===Rf){this.dimensions=n.dimensions;for(let[e,t]of Object.entries(n.entries))this.vectors.set(e,t),this.addToMemoIndex(t.memoId,e)}}catch(e){console.warn(`[VectorStore] Failed to load index, starting fresh:`,e)}}async addVectorBatch(e){for(let t of e){if(t.vector.length!==this.dimensions&&this.vectors.size>0){console.warn(`[VectorStore] Dimension mismatch: expected ${this.dimensions}, got ${t.vector.length}`);continue}this.vectors.size===0&&t.vector.length!==this.dimensions&&(this.dimensions=t.vector.length),this.vectors.set(t.id,t),this.addToMemoIndex(t.memoId,t.id)}this.markDirty()}async removeVectorsByMemoId(e){let t=this.memoIndex.get(e);if(t){for(let e of t)this.vectors.delete(e);this.memoIndex.delete(e),this.markDirty()}}search(e,t=10,n=.6){if(this.vectors.size===0)return[];let r=[];for(let t of this.vectors.values()){let i=Lf(e,t.vector);i>=n&&r.push({entry:t,score:i})}return r.sort((e,t)=>t.score-e.score),r.slice(0,t)}async save(){if(!this.dirty||!this.adapter)return;let e={version:Rf,dimensions:this.dimensions,entries:Object.fromEntries(this.vectors)};try{await this.adapter.write(this.storePath,JSON.stringify(e)),this.dirty=!1}catch(e){console.error(`[VectorStore] Failed to save:`,e)}}addToMemoIndex(e,t){let n=this.memoIndex.get(e)||[];n.includes(t)||(n.push(t),this.memoIndex.set(e,n))}markDirty(){this.dirty=!0,this.saveTimer&&window.clearTimeout(this.saveTimer),this.saveTimer=window.setTimeout(()=>{this.save()},zf)}},Hf=class{providers=new Map;activeEmbeddingType=null;activeCompletionType=null;register(e){let t=this.providers.get(e.type);t&&t!==e&&t.dispose(),this.providers.set(e.type,e)}unregister(e){let t=this.providers.get(e);t&&(t.dispose(),this.providers.delete(e),this.activeEmbeddingType===e&&(this.activeEmbeddingType=null),this.activeCompletionType===e&&(this.activeCompletionType=null))}setActiveEmbeddingProvider(e){if(!this.providers.has(e)){console.debug(`[ProviderManager] Embedding provider "${e}" not registered, skipping.`);return}this.activeEmbeddingType=e}setActiveCompletionProvider(e){if(!this.providers.has(e)){console.debug(`[ProviderManager] Completion provider "${e}" not registered, skipping.`);return}this.activeCompletionType=e}getEmbeddingProvider(){return this.activeEmbeddingType?this.providers.get(this.activeEmbeddingType)??null:null}getCompletionProvider(){return this.activeCompletionType?this.providers.get(this.activeCompletionType)??null:null}};async function Uf(e,t,n,r){let i=await(0,d.requestUrl)({url:e,method:$25,headers:{...t,"Content-Type":$0d},body:JSON.stringify(n),throw:!1}),a=i.json;if(i.status>=400)throw Error(`${r}: ${a?.error?.message??`HTTP ${i.status}`}`);return a}var Wf=$a3,Gf=`text-embedding-3-small`,Kf=`gpt-5.2`,qf=class{name=$nf;type=$20;apiKey;baseUrl;embeddingModel;completionModel;maxTokens;constructor(e){this.apiKey=e.apiKey??``,this.baseUrl=(e.baseUrl??Wf).replace(/\/+$/,``).replace(/\/v1$/,``),this.embeddingModel=e.embeddingModel??Gf,this.completionModel=e.completionModel??Kf,this.maxTokens=e.maxTokens??4096}async isAvailable(){return!!this.apiKey&&!!this.baseUrl}async initialize(){if(!this.apiKey)throw Error(`OpenAI provider requires an API key.`);if(!this.baseUrl)throw Error(`OpenAI provider requires a base URL.`)}async embed(e){return e.length===0?[]:[...(await this.post($nx,{model:this.embeddingModel,input:e},$nx))?.data??[]].sort((e,t)=>e.index-t.index).map(e=>({vector:new Float32Array(e.embedding),tokenCount:0}))}async*completeStream(e,t){let n=(await this.post(`chat/completions`,{model:this.completionModel,messages:this.mapMessages(e),max_tokens:t?.maxTokens??this.maxTokens,temperature:t?.temperature??.7,stream:!1,...t?.tools?.length?{tools:this.mapToolDefs(t.tools)}:{}},`completion`))?.choices?.[0]?.message;if(!n)throw Error(`OpenAI completion returned an unexpected response format.`);typeof n.reasoning_content==$q&&n.reasoning_content.length>0&&(yield{content:``,done:!1,reasoning:n.reasoning_content}),typeof n.content==$q&&n.content.length>0&&(yield{content:n.content,done:!1});let r=(Array.isArray(n.tool_calls)?n.tool_calls:[]).map(e=>({id:e.id??``,name:e.function?.name??``,arguments:e.function?.arguments??``}));r.length>0?yield{content:``,done:!0,tool_calls:r}:yield{content:``,done:!0}}dispose(){}post(e,t,n){return Uf(`${this.baseUrl}/v1/${e}`,{Authorization:`Bearer ${this.apiKey}`},t,`OpenAI ${n} request failed`)}mapMessages(e){return e.map(e=>e.role===$ok?{role:$ok,content:e.content,tool_call_id:e.tool_call_id}:e.role===$1u&&e.tool_calls?.length?{role:$1u,content:e.content||null,tool_calls:e.tool_calls.map(e=>({id:e.id,type:$z,function:{name:e.name,arguments:e.arguments}}))}:{role:e.role,content:e.content})}mapToolDefs(e){return e.map(e=>({type:$z,function:{name:e.name,description:e.description,parameters:e.parameters}}))}},Jf=`https://api.anthropic.com`,Yf=`2023-06-01`,Xf=$7g,Zf=class{name=$bn;type=$48;apiKey;baseUrl;completionModel;maxTokens;constructor(e){this.apiKey=e.apiKey??``,this.baseUrl=(e.baseUrl??Jf).replace(/\/+$/,``).replace(/\/v1$/,``),this.completionModel=e.completionModel??Xf,this.maxTokens=e.maxTokens??4096}async isAvailable(){return!!this.apiKey}async initialize(){if(!this.apiKey)throw Error(`Anthropic provider requires an API key.`)}async embed(e){throw Error(`Anthropic does not support embeddings. Use Local or OpenAI provider for embeddings.`)}async*completeStream(e,t){let{system:n,apiMessages:r}=this.prepareMessages(e),i=await Uf(`${this.baseUrl}/v1/messages`,{"x-api-key":this.apiKey,"anthropic-version":Yf},{model:this.completionModel,max_tokens:t?.maxTokens??this.maxTokens,temperature:t?.temperature??.7,...n?{system:n}:{},messages:r,...t?.tools?.length?{tools:this.mapToolDefs(t.tools)}:{}},`Anthropic completion request failed`),a=Array.isArray(i?.content)?i.content:[],o=a.filter(e=>e.type===$0l&&typeof e.text==$q).map(e=>e.text).join(``);o&&(yield{content:o,done:!1});let s=a.filter(e=>e.type===`tool_use`).map(e=>({id:e.id??``,name:e.name??``,arguments:JSON.stringify(e.input??{})}));s.length>0?yield{content:``,done:!0,tool_calls:s}:yield{content:``,done:!0}}dispose(){}prepareMessages(e){let t=e.filter(e=>e.role===$eh),n=e.filter(e=>e.role!==$eh),r=t.length>0?t.map(e=>e.content).join($bh):null,i=[];for(let e of n)if(e.role===$ok)i.push({role:$3n,content:[{type:$8w,tool_use_id:e.tool_call_id,content:e.content}]});else if(e.role===$1u&&e.tool_calls?.length){let t=[];e.content&&t.push({type:$0l,text:e.content});for(let n of e.tool_calls){let e={};try{e=JSON.parse(n.arguments)}catch{}t.push({type:`tool_use`,id:n.id,name:n.name,input:e})}i.push({role:$1u,content:t})}else i.push({role:e.role,content:e.content});return{system:r,apiMessages:i}}mapToolDefs(e){return e.map(e=>({name:e.name,description:e.description,input_schema:e.parameters}))}},Qf=$2q,$f=$3t,ep=[{id:$3t,displayName:`Agent`,description:`Agent model (powerful)`,price:`1`},{id:`04-fast`,displayName:`Fast`,description:`Fast model (naming, etc.)`,price:$ke},{id:$mr,displayName:`Summary`,description:`Summary model`,price:`1`},{id:`01-tag`,displayName:`Tag`,description:`Tag recommendation`,price:$ke},{id:`00-image-desc`,displayName:`Image Desc`,description:`Image description`,price:$ke},{id:$iv,displayName:`Web Summary`,description:`Web summary`,price:$ke},{id:$kf,displayName:`Image Gen`,description:`Image generation`,price:`1`}],tp=ep.filter(e=>e.id===$3t);async function np(e,t=!0){try{let n=(await(0,d.requestUrl)({url:`${Qf}/v1/models`,method:$3i,headers:{Authorization:`Bearer ${e}`}})).json?.data;if(!Array.isArray(n)||n.length===0)return t?tp:ep;let r=new Map(ep.map(e=>[e.id,e])),i=n.filter(e=>/^0[0-6]-/.test(e.id)).map(e=>{let t=r.get(e.id);return{id:e.id,displayName:t?.displayName||e.id.replace(/^\d+-/,``),description:t?.description||e.id,price:t?.price||`1`}});return t?i.filter(e=>e.id===$3t):i}catch{return t?tp:ep}}var rp=class{name=$94;type=$0t;delegate;constructor(e){this.delegate=new qf({...e,type:$20,baseUrl:e.baseUrl||Qf,completionModel:e.completionModel||$f})}isAvailable(){return this.delegate.isAvailable()}initialize(){return this.delegate.initialize()}embed(e){return this.delegate.embed(e)}completeStream(e,t){return this.delegate.completeStream(e,t)}dispose(){this.delegate.dispose()}};function ip(e){let t=e;return t=t.replace(/!\[\[.*?\]\]/g,``),t=t.replace(/!\[.*?\]\(.*?\)/g,``),t=t.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g,`$2`),t=t.replace(/\[\[([^\]]+)\]\]/g,$ff),t=t.replace(/\[([^\]]+)\]\([^)]+\)/g,$ff),t=t.replace(/```[\s\S]*?```/g,`[code]`),t=t.replace(/<[^>]+>/g,``),t=t.replace(/\n{3,}/g,$bh),t=t.trim(),t}function ap(e,t=500){let n=ip(e.content);if(!n)return[];if(n.length<=t)return[{text:n,memoId:e.id,chunkIndex:0}];let r=n.split(/\n\n+/).filter(Boolean),i=[],a=``,o=0;for(let n of r){if(a.length+n.length+2>t&&a.length>0){i.push({text:a.trim(),memoId:e.id,chunkIndex:o}),o++;let t=a.split(/[.!?]\s/).pop()||``;a=t.length<100?t+$bh:``}a+=(a?$bh:``)+n}return a.trim()&&i.push({text:a.trim(),memoId:e.id,chunkIndex:o}),i}U(),Zd(),sf();function op(e,t){let n=t.trimEnd();return e.startsWith(n)?n.length:e.startsWith(t)?t.length:0}function sp(){return z.getState().memos.filter(e=>e.rowStatus!==$07&&!e.deletedAt)}function cp(e,t){return t?{type:$q,description:e,enum:t}:{type:$q,description:e}}function lp(e){return{type:$0e,description:e}}function up(e,t,n,r){return{name:e,description:t,parameters:{type:$0j,properties:n,...r?{required:r}:{}}}}var dp=new class{vectorStore=new Vf;providerManager=new Hf;app=null;plugin=null;memoUnsubscribe=null;initialized=!1;pendingSubagentImages=[];async initialize(e,t){if(this.initialized)return;this.app=e,this.plugin=t;let n=t.manifest.dir||``;await this.vectorStore.initialize(e.vault.adapter,n);let r=J.getState();r.activeEmbeddingProvider===$dd&&r.setActiveEmbeddingProvider($20),this.setupProviders();let i=null;this.memoUnsubscribe=z.subscribe(e=>e.memos,(e,t)=>{J.getState().enabled&&(i&&window.clearTimeout(i),i=window.setTimeout(()=>{i=null,this.handleMemoChanges(e,t)},200))}),this.initialized=!0}async indexMemo(e){let t=await this.buildVectorEntries(e);t.length>0&&(await this.vectorStore.removeVectorsByMemoId(e.id),await this.vectorStore.addVectorBatch(t))}async removeMemoFromIndex(e){await this.vectorStore.removeVectorsByMemoId(e)}async semanticSearch(e,t=10){let n=this.providerManager.getEmbeddingProvider();if(!n)throw Error(`No embedding provider available`);let r=await n.embed([e]);if(r.length===0)return[];let i=Array.from(r[0].vector),a=this.vectorStore.search(i,t),o=z.getState().memos,s=new Map(o.map(e=>[e.id,e]));for(let e of a)e.memo=s.get(e.entry.memoId);let c=new Set;return a.filter(e=>c.has(e.entry.memoId)?!1:(c.add(e.entry.memoId),!0))}textSearch(e,t=20){let n=e.toLowerCase().trim();if(!n)return[];let r=sp(),i=[];for(let e of r){if(i.length>=t)break;e.content.toLowerCase().includes(n)&&i.push({entry:{id:`text-${e.id}`,vector:[],content:e.content,memoId:e.id,chunkIndex:0,updatedAt:e.updatedAt},score:-1,memo:e})}return i}async hybridSearch(e,t=10){let n=[];try{this.providerManager.getEmbeddingProvider()&&(n=await this.semanticSearch(e,t))}catch(e){console.warn(`[SuperService] Semantic search failed, falling back to text:`,e)}let r=this.textSearch(e,t),i=new Set(n.map(e=>e.entry.memoId)),a=[...n];for(let e of r)i.has(e.entry.memoId)||(i.add(e.entry.memoId),a.push(e));return a.slice(0,Math.max(t,a.length))}async*chat(e,t){this.syncCompletionProvider();let n=this.providerManager.getCompletionProvider();if(!n)throw Error(`No completion provider configured. Add an API key in Super settings.`);let r=this.buildToolSystemPrompt(),i=this.getToolDefinitions(),a=[{role:$eh,content:r},...t.filter(e=>e.role!==$eh).slice(-10).map(e=>({role:e.role,content:e.content})),{role:$3n,content:e}],o=``;for(let e=0;e<5;e++){let t=``,r=0,s,c=o.length;for await(let l of n.completeStream(a,{maxTokens:2048,temperature:.7,tools:i})){if(l.reasoning&&(yield{content:``,done:!1,reasoning:l.reasoning}),l.content)if(t+=l.content,e===0||c===0)o+=l.content,r=t.length,yield{content:l.content,done:!1};else{let e=o.slice(0,c),n=e.trimEnd();if(t.length<=n.length&&n.startsWith(t))continue;let i=r||op(t,e),a=t.slice(i);if(a.length>0){let e=a.slice(r>i?r-i:0);if(e.length>0){o+=e,r=t.length,yield{content:e,done:!1};continue}}r=t.length}l.done&&(s=l.tool_calls)}if(e>0&&c>0&&t.length>0&&r===0){let e=o.slice(0,c),n=t.slice(op(t,e));n.trim().length>0&&(o+=n,yield{content:n,done:!1})}if(!s||s.length===0){this.refreshPKMerQuota(),yield{content:``,done:!0};return}a.push({role:$1u,content:t,tool_calls:s});for(let e of s){yield{content:``,done:!1,toolEvent:{type:$gk,toolCallId:e.id,name:e.name,arguments:e.arguments}};let t=await this.executeTool(e.name,e.arguments);this.pendingSubagentImages.length>0&&(yield{content:``,done:!1,subagentImages:this.pendingSubagentImages.splice(0)}),a.push({role:$ok,content:t,tool_call_id:e.id,name:e.name}),yield{content:``,done:!1,toolEvent:{type:$8w,toolCallId:e.id,name:e.name,result:t}}}}this.refreshPKMerQuota(),yield{content:``,done:!0}}getToolDefinitions(){let e=[up($la,`Search through memos using natural language. Uses semantic similarity combined with exact text matching. Best for finding memos about a topic, concept, or theme.`,{query:cp(`Natural language search query`),limit:lp(`Max results to return (default 10, max 20)`)},[$pp]),up($l0,`Filter memos by structured criteria: tags, date ranges, and memo type. Use when the user asks about specific tags, time periods, or task status.`,{tag:cp(`Tag to filter by (e.g. "#project")`),from_date:cp(`Start date (e.g. "2025-01-01")`),to_date:cp(`End date (e.g. "2025-12-31")`),type:cp(`Memo type filter`,[$9,$06,$0p]),text:cp(`Text substring to match`),limit:lp(`Max results (default 20, max 50)`)}),up(`get_memo`,`Retrieve a specific memo by its ID. Use when you need the full content of a memo referenced in search results.`,{memo_id:cp(`The memo ID to retrieve`)},[`memo_id`]),up($f3,`Find memos that are linked to, reference, or comment on a given memo.`,{memo_id:cp(`The memo ID to find relations for`),relation_type:cp(`Type of relation (default: all)`,[`linked`,`comments`,$ja])},[`memo_id`])];return this.providerManager.getCompletionProvider()?.type===$0t?[...e,up($a0,`Generate an image from a text description. Use when the user explicitly requests an image, illustration, or visual. Returns the generated image.`,{prompt:cp(`Detailed description of the image to generate`)},[`prompt`]),up($is,`Summarize a long piece of text concisely. Use when you need to condense large amounts of retrieved memo content before presenting it.`,{text:cp(`The text content to summarize`),style:cp(`Output format (default: paragraph)`,[`bullet`,$p6,`headline`])},[$0l]),up($k2,`Fetch and summarize a web page. Use when the user provides a URL and wants its content summarized.`,{url:cp(`The URL of the web page to summarize`)},[`url`]),up($ji,`Delegate a quick, self-contained task to a fast model. Ideal for: generating a title, writing a short label, classifying a single item, or any task where speed matters more than depth.`,{task:cp(`The specific task to perform (be explicit and concise)`)},[$k3])]:e}buildToolSystemPrompt(){let e=sp().length,t=this.providerManager.getCompletionProvider()?.type===$0t,n=[`You are a helpful assistant integrated into Thino, a personal memo/note-taking app.`,`The user has ${e} memos in their collection.`,`You have access to tools for searching and filtering memos.`,`Use these tools to find relevant information before answering questions about the user's notes.`,``,`Guidelines:`,`- Use search_memos for semantic/natural language searches about topics or themes.`,`- Use filter_memos when the user asks about specific tags, date ranges, or task types.`,`- Use get_memo to retrieve full details of a specific memo by ID.`,`- Use get_related_memos to find linked or commented memos.`,`- You may call multiple tools or the same tool multiple times to gather enough context.`,`- If tools return no results, say so honestly rather than guessing.`,`- Be concise and reference specific memos (by date and content) when relevant.`,`- Respond in the same language the user uses.`,`- IMPORTANT: After using tools, do NOT repeat content you already wrote before the tool call. Continue from where you left off and only add new information.`];return t&&n.push(``,`You also have access to specialized subagent tools that delegate to other AI models:`,`- Use generate_image when the user explicitly requests a picture, illustration, or visual output.`,`- Use summarize_text to condense large amounts of text before presenting a final answer.`,`- Use summarize_url when the user provides a URL and wants its content summarized.`,`- Use delegate_fast for quick naming, labeling, or classification subtasks.`,`- Handle creative writing, analysis, and conversation yourself — only delegate when a specialized model is clearly better suited.`,`- Do NOT use generate_image unless the user explicitly requests an image or illustration.`),n.join(`
  108. `)}async callSubagentText(e,t){let n=J.getState().providers.pkmer;if(!n?.apiKey)throw Error(`PKMer API key not available for subagent call`);let r=new qf({type:$20,enabled:!0,apiKey:n.apiKey,baseUrl:n.baseUrl||$2q,completionModel:e,maxTokens:n.maxTokens??4096}),i=[{role:$3n,content:t}],a=``;for await(let e of r.completeStream(i,{maxTokens:4096,temperature:.7}))if(e.content&&(a+=e.content),e.done)break;return a}async executeTool(e,t){try{let n=JSON.parse(t);switch(e){case $la:{let e=Math.min(n.limit??10,20),t=(await this.hybridSearch(n.query,e)).map(e=>e.memo).filter(e=>!!e);return this.formatMemoResults(t)}case $l0:{let e=sp();if(n.tag){let t=n.tag.startsWith(`#`)?n.tag:`#${n.tag}`;e=e.filter(e=>e.content.includes(t))}if(n.from_date&&(e=e.filter(e=>e.createdAt>=n.from_date)),n.to_date&&(e=e.filter(e=>e.createdAt<=n.to_date)),n.type&&(e=e.filter(e=>e.thinoType===n.type)),n.text){let t=n.text.toLowerCase();e=e.filter(e=>e.content.toLowerCase().includes(t))}let t=Math.min(n.limit??20,50),r=e.slice(0,t),i=e.length>t?`\n(Showing ${t} of ${e.length} total matches)`:``;return this.formatMemoResults(r)+i}case`get_memo`:{let e=z.getState().memos.find(e=>e.id===n.memo_id);return e?this.formatSingleMemo(e):`No memo found with ID: ${n.memo_id}`}case $f3:{let e=n.relation_type??$ja,t=[];if(e===`linked`||e===$ja){let e=await Y.getLinkedMemos(n.memo_id);t.push(...e)}if(e===`comments`||e===$ja){let e=await Y.getCommentMemos(n.memo_id);t.push(...e)}return t.length===0?`No related memos found for ID: ${n.memo_id}`:this.formatMemoResults(t)}case $a0:return await this.callSubagentText($kf,n.prompt);case $is:{let e=`Summarize the following text in ${n.style??$p6} format:\n\n${n.text}`;return await this.callSubagentText($mr,e)}case $k2:return await this.callSubagentText($iv,`Summarize the content of this web page: ${n.url}`);case $ji:return await this.callSubagentText(`04-fast`,n.task);default:return`Unknown tool: ${e}`}}catch(e){return`Tool execution error: ${e instanceof Error?e.message:String(e)}`}}formatMemoResults(e){return e.length===0?`No memos found.`:e.map(e=>this.formatSingleMemo(e)).join(`
  109. ---
  110. `)}formatSingleMemo(e){let t=[`[ID: ${e.id}]`,`[Date: ${e.createdAt}]`];return e.thinoType&&e.thinoType!==$9&&t.push(`[Type: ${e.thinoType}]`),e.pinned&&t.push(`[Pinned]`),t.push(e.content),t.join(` `)}refreshPKMerQuota(){this.plugin&&J.getState().activeCompletionProvider===$0t&&this.plugin.pkmerAuth.refreshQuota().then(e=>{if(!e)return;let t=5e5;J.getState().updateProvider($0t,{quotaInfo:{remaining:Math.floor(e.remainingQuota/t),total:Math.floor(e.quota/t)}})}).catch(e=>console.warn(`[SuperService] Failed to refresh PKMer quota:`,e))}syncCompletionProvider(){let e=J.getState(),t=e.activeCompletionProvider,n=e.providers[t];n&&(t===$20?this.providerManager.register(new qf(n)):t===$48?this.providerManager.register(new Zf(n)):t===$0t&&n.apiKey&&this.providerManager.register(new rp(n)),this.providerManager.setActiveCompletionProvider(t))}setupProviders(){let e=J.getState(),t=e.providers.openai||{type:$20,enabled:!1};this.providerManager.register(new qf(t));let n=e.providers.anthropic||{type:$48,enabled:!1};this.providerManager.register(new Zf(n));let r=e.providers.pkmer||{type:$0t,enabled:!1};r.apiKey&&this.providerManager.register(new rp(r)),this.providerManager.setActiveEmbeddingProvider(e.activeEmbeddingProvider),this.providerManager.setActiveCompletionProvider(e.activeCompletionProvider)}async buildVectorEntries(e){let t=ap(e);if(t.length===0)return[];let n=this.providerManager.getEmbeddingProvider();if(!n)return[];let r=t.map(e=>e.text),i=await n.embed(r);return t.map((t,n)=>({id:`${e.id}-${t.chunkIndex}`,vector:Array.from(i[n].vector),content:t.text,memoId:e.id,chunkIndex:t.chunkIndex,updatedAt:e.updatedAt}))}handleMemoChanges(e,t){if(!this.initialized)return;let n=new Map(t.map(e=>[e.id,e])),r=new Map(e.map(e=>[e.id,e]));for(let t of e){let e=n.get(t.id);(!e||e.updatedAt!==t.updatedAt)&&this.indexMemo(t).catch(e=>console.warn(`[SuperService] Incremental index error:`,e))}for(let e of t)r.has(e.id)||this.removeMemoFromIndex(e.id).catch(e=>console.warn(`[SuperService] Remove from index error:`,e))}};I(),gd();var fp=[{text:F($81),value:$81},{text:F(`OR`),value:`OR`}],pp={TAG:{value:$6o,text:F($6o),operators:[{text:F($fm),value:$0x},{text:F($fj),value:$5p}]},TYPE:{value:$cu,text:F($cu),operators:[{value:$fn,text:F($fn)},{value:$dp,text:F($pi)}],values:[{value:$bq,text:F($dq)},{value:$6n,text:F(`NO TAGS`)},{value:$dq,text:F(`HAS LINKS`)},{value:$i9,text:F(`HAS IMAGES`)}]},TEXT:{value:`TEXT`,text:F(`TEXT`),operators:[{value:$0x,text:F($fm)},{value:$5p,text:F($fj)}]},DATE:{value:$fi,text:F($fi),operators:[{value:$5p,text:F($i6)},{value:$0x,text:F(`AFTER`)}]},LIST:{value:$5i,text:F($5i),operators:[{value:$fn,text:F($fn)},{value:$dp,text:F($pi)}],values:[{value:$9r,text:F($9r)},{value:$iz,text:F($iz)},{value:$5i,text:F($9)},{value:$km,text:F($km)}]},SOURCE:{value:$du,text:F($du),operators:[{value:$fn,text:F($fn)},{value:$dp,text:F($pi)}],values:[{value:$00,text:F($00)},{value:$0g,text:F($0g)},{value:$0i,text:F($0i)},{value:$0r,text:F($0r)}]},PATH:{value:$ng,text:F($ng),operators:[{value:$0x,text:F($fm)},{value:$5p,text:F($fj)}]},METADATA:{value:$6m,text:F($6m),operators:[{value:$0x,text:F($fm)},{value:$5p,text:F($fj)}]},TIME_RANGE:{value:$6p,text:F(`TIME RANGE`),operators:[{value:$nn,text:F($nn)},{value:$i6,text:F($i6)}],values:[{value:`7d`,text:F(`7 days`)},{value:`14d`,text:F(`14 days`)},{value:`30d`,text:F(`30 days`)},{value:`90d`,text:F(`3 months`)},{value:$mt,text:F(`6 months`)},{value:$mx,text:F(`1 year`)},{value:$k5,text:F(`This week`)},{value:$i2,text:F(`This month`)},{value:$k6,text:F(`This year`)},{value:$jq,text:F(`Last week`)},{value:$hz,text:F(`Last month`)},{value:$jr,text:F(`Last year`)}]}},mp=pp.TYPE.values,hp=e=>{for(let t of mp)if(t.value===e)return t.text;return``},gp=()=>({type:$6o,value:{operator:$0x,value:``},relation:$81}),_p={skipEmptyValue:!0,fuzzyText:!0,metadataSubstring:!0,naturalDates:!0},vp=(e,t)=>!t||t.length===0?!0:md(e,t,_p);N();var yp=typeof window<`u`?Je:O;N();function bp(e,t,n,r){let i=k(t);yp(()=>{i.current=t},[t]),O(()=>{let t=n?.current||window;if(!(t&&t.addEventListener))return;let a=e=>{i.current(e)};return t.addEventListener(e,a,r),()=>{t.removeEventListener(e,a,r)}},[e,n,r])}function xp(e,t,n=$4b){bp(n,n=>{let r=n.target;!r||!r.isConnected||r.closest($ag)||r.closest(`.menu`)||(Array.isArray(e)?e.every(e=>e.current&&!e.current.contains(r)):e.current&&!e.current.contains(r))&&t(n)})}N();function Sp(e,t,n=[]){let r=k(),i=j(()=>{r.current&&window.clearTimeout(r.current)},[]);return j((...n)=>{i(),r.current=window.setTimeout(()=>{e(...n)},t)},n)}N(),U(),Zd(),X(),I();var Cp=[{value:`7d`,text:F(691)},{value:`14d`,text:F(692)},{value:`30d`,text:F(693)},{value:`90d`,text:F(694)},{value:$mt,text:F(695)},{value:$mx,text:F(696)},{value:$k5,text:F(697)},{value:$i2,text:F(699)},{value:$k6,text:F(701)},{value:$jq,text:F(698)},{value:$hz,text:F(700)},{value:$jr,text:F(702)}];function wp(e){let t=(0,d.moment)(),n,r=t.clone().endOf($04);switch(e){case`7d`:n=t.clone().subtract(7,$2b).startOf($04);break;case`14d`:n=t.clone().subtract(14,$2b).startOf($04);break;case`30d`:n=t.clone().subtract(30,$2b).startOf($04);break;case`90d`:n=t.clone().subtract(90,$2b).startOf($04);break;case $mt:n=t.clone().subtract(180,$2b).startOf($04);break;case $mx:n=t.clone().subtract(365,$2b).startOf($04);break;case $k5:n=t.clone().startOf($22),r=t.clone().endOf($22);break;case $i2:n=t.clone().startOf($0s),r=t.clone().endOf($0s);break;case $k6:n=t.clone().startOf($3b),r=t.clone().endOf($3b);break;case $jq:n=t.clone().subtract(1,$22).startOf($22),r=t.clone().subtract(1,$22).endOf($22);break;case $hz:n=t.clone().subtract(1,$0s).startOf($0s),r=t.clone().subtract(1,$0s).endOf($0s);break;case $jr:n=t.clone().subtract(1,$3b).startOf($3b),r=t.clone().subtract(1,$3b).endOf($3b);break;default:return null}return{from:n.valueOf(),to:r.valueOf()}}var Tp=({isSearching:e,embeddingReady:t,indexStatus:n})=>{if(e)return Z($0,{className:`search-bar-spinner`});if(!t)return Z($0,{className:`search-bar-super-badge loading`,title:$fp,children:Z($0,{className:`search-bar-mini-spinner`})});if(n.isIndexing){let e=n.totalMemos>0?Math.round(n.indexedMemos/n.totalMemos*100):0;return Z($0,{className:`search-bar-super-badge indexing`,title:`Indexing: ${n.indexedMemos}/${n.totalMemos}`,children:Z($0,{className:`search-bar-mini-progress-bar`,children:Z($0,{className:`search-bar-mini-progress-fill`,style:{width:`${e}%`}})})})}return Z($0,{className:`search-bar-super-badge ready`,title:F(1019)})},Ep=({disableSuper:e=!1})=>{let{app:t,view:n}=H(),{query:{type:r,text:i,duration:a}}=V(),o=J(e=>e.enabled),s=J(e=>e.embeddingReady),c=J(e=>e.isSearching),l=J(e=>e.indexStatus),u=o&&!e,f=k(null),p=k(null),m=k(null),h=k(null),[g,_]=D(i||``),[v,y]=D(!1),[b,x]=D(``),[S,C]=D(null),[w,T]=D(),E=!!S,ee=!!(r||a||b);O(()=>{_(i||``)},[i]),O(()=>{a||x(``)},[a]),O(()=>{!p||!n||!t||(n.registerEvent(t.workspace.on($b1,()=>{p.current?.blur()})),n.registerEvent(t.workspace.on($6w,()=>{p.current?.focus()})))},[p,t,n]),Je(()=>{C(f.current?.closest(`#page-wrapper.focus`)||null)},[]),Je(()=>{if(!v||!S)return;let e=()=>{let e=f.current?.querySelector(`.search-bar-inputer`)?.getBoundingClientRect(),t=S.getBoundingClientRect();e&&T({top:e.bottom-t.top+6,left:e.left-t.left})};return e(),window.addEventListener($7w,e),()=>window.removeEventListener($7w,e)},[S,v]),O(()=>{m.current&&(0,d.setIcon)(m.current,$4z)},[]),xp([h,m],()=>{y(!1)});let te=Sp((e,t)=>{if(K.setTextQuery(e),t){let t=J.getState();if(t.setSearchQuery(e),!e.trim()){t.setSearchResults([]),t.setIsSearching(!1);return}t.setIsSearching(!0),dp.hybridSearch(e,20).then(e=>t.setSearchResults(e)).catch(e=>{console.warn(`[SearchBar] Hybrid search error:`,e),t.setSearchResults([])}).finally(()=>t.setIsSearching(!1))}},300,[]),ne=j(e=>{let t=e.currentTarget.value;_(t),te(t,u)},[te,u]),re=j(()=>{if(_(``),K.setTextQuery(``),u){let e=J.getState();e.setSearchQuery(``),e.setSearchResults([])}p.current?.focus()},[u]),ie=j(e=>{let{type:t}=K.getState().query;e===t&&(e=``),K.setMemoTypeQuery(e)},[]),ae=j(e=>{if(b===e)x(``),K.setTimeQuery({from:0,to:0});else{let t=wp(e);t&&(x(e),K.setTimeQuery(t))}},[b]),oe=j(()=>{y(e=>!e)},[]),se=v&&Z($0,{className:`search-bar-filters-panel`,ref:h,style:E?w:void 0,children:[Z($0,{className:$8c,children:[Z($8,{className:$c2,children:F(60)}),Z($0,{className:$9x,children:mp.map(e=>Z($7,{className:`clickable-icon filter-option-chip ${r===e.value?$0v:``}`,onClick:()=>ie(e.value),children:e.text},e.value))})]}),Z($0,{className:$8c,children:[Z($8,{className:$c2,children:F(689)}),Z($0,{className:$9x,children:Cp.map(e=>Z($7,{className:`clickable-icon filter-option-chip ${b===e.value?$0v:``}`,onClick:()=>ae(e.value),children:e.text},e.value))})]})]});return Z($0,{className:`search-bar-container`,ref:f,children:[Z($0,{className:`search-bar-inputer`,children:[Z($8,{ref:xf($oe),className:`btn icon-img`}),Z($09,{ref:p,className:`text-input`,type:$0l,value:g,placeholder:u&&!s?`${F(363)} (${F(1038)})`:F(363),onChange:ne}),u&&Z(Tp,{isSearching:c,embeddingReady:s,indexStatus:l}),g&&Z($7,{className:`search-bar-clear clickable-icon`,onClick:re,title:F(935),children:`×`}),Z($0,{ref:m,className:`search-bar-filter-toggle clickable-icon ${v?$0v:``} ${ee?`has-filter`:``}`,onClick:oe,title:F(1027)})]}),E&&S?Rt(se,S):se]})};N();var Dp=e=>{let{children:t,when:n}=e;return n?Z(E,{children:t}):null};function Op(){let e=createFragment();e.createDiv({cls:`thino-info`}).createDiv({text:F(302)});let t=e.createDiv({cls:`thino-link`}).createDiv({text:F(303)}),n=gf()?`https://pkmer.cn/products/thino/`:$7b;t.createEl(`a`,{text:`PKMer`,attr:{href:n}}),new d.Notice(e,5e3)}var kp=o((()=>{I(),_f()}));function Ap(e){if(!d.Platform.isDesktop)return{};try{let t=window.require;return t(e)}catch{return{}}}var jp=o((()=>{}));function Mp(){return process.platform===$dk?process.arch===`ia32`&&Object.hasOwnProperty.call(process.env,`PROCESSOR_ARCHITEW6432`)?`mixed`:`native`:``}function Np(e){return Rp(`sha256`).update(e).digest($mo)}function Pp(e){switch(process.platform){case`darwin`:return e.split(`IOPlatformUUID`)[1].split(`
  111. `)[0].replace(/=|\s+|"/gi,``).toLowerCase();case $dk:return e.toString().split(`REG_SZ`)[1].replace(/\r+|\n+|\s+/gi,``).toLowerCase();case`linux`:return e.toString().replace(/\r+|\n+|\s+/gi,``).toLowerCase();case`freebsd`:return e.toString().replace(/\r+|\n+|\s+/gi,``).toLowerCase();default:throw Error(`Unsupported platform: ${process.platform}`)}}function Fp(e=!1){return new Promise((t,n)=>{Ip(zp[process.platform],{},(r,i)=>{if(r)return n(Error(`Error while obtaining machine id: ${r.stack}`));let a=Pp(i.toString());return t(e?a:Np(a))})})}var Ip,Lp,Rp,zp,Bp=o((()=>{jp(),{exec:Ip,execSync:Lp}=Ap($b2),{createHash:Rp}=Ap($ih),zp=d.Platform.isDesktop&&{darwin:`ioreg -rd1 -c IOPlatformExpertDevice`,win32:`${{native:`%windir%\\System32`,mixed:`%windir%\\sysnative\\cmd.exe /c %windir%\\System32`}[Mp()]}\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid`,linux:`( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :`,freebsd:`kenv -q smbios.system.uuid || sysctl -n kern.hostuuid`}}));async function Vp(){if(d.Platform.isDesktop)return await Fp()||``;let e=await window.Capacitor?.Plugins?.Device?.getId();return e?.identifier||e?.uuid||``}async function Hp(){return Wp||=Vp().catch(e=>{throw Wp=null,e}),await Wp}async function Up(){let e=H.getState()?.verifyState;if(!e?.appId)return!1;let t=await Hp();return!!t&&e.appId===t}var Wp,Gp=o((()=>{Bp(),U(),Wp=null}));N(),U(),X(),kp(),I(),Gp(),wn();var Kp={list:`align-left`,waterfall:$es,calendar:$1c,minimal:$0y,table:$2x,chat:`message-square`,moments:`aperture`,flow:`workflow`},qp=({className:e})=>{let{app:t,view:n,settings:r}=H(),{manifest:i,isMobileView:a}=B(),o=k(null),s=k(null),[c,l]=D(()=>(Sn()||t)?.loadLocalStorage($bc)||$0y),[u,f]=D(null),p=j(()=>{if(!n?.leaf||n.leaf.height===0||!u?.settings)return;let e=u.settings.MemoListView;if(u.settings.SupportSelectOtherView||e===$2z||e===$4v||e===$jl)return;let t=n.leaf.width>950?e:$0y;l(t),G.setMemoListView(t)},[n,u]);O(()=>{if(!i||!t)return;let e=t.plugins.getPlugin(i.id);if(e){f(e);let t=e.settings?.MemoListView||$0y;l(t),G.setMemoListView(t)}},[i,t]),O(()=>{if(!(!t||!n||!u?.settings))return p(),s.current||(s.current=t.workspace.on($7w,p),n.registerEvent(s.current)),()=>{s.current&&=(t.workspace.offref(s.current),null)}},[t,n,u,p]),O(()=>{if(!o.current||!c)return;let e=Kp[c]||$0y;(0,d.setIcon)(o.current,e),G.setMemoListView(c),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(o.current,F(312))},[c]);let m=A(()=>{let e=[{view:$0y,title:F(31)},{view:$2z,title:F(430)},{view:$4v,title:F(431)},{view:$jl,title:F(964)}];return(!a||r?.SupportSelectOtherView)&&e.push({view:`waterfall`,title:F(432)},{view:$1c,title:F(433)},{view:$2x,title:F(429)}),e},[a,r?.SupportSelectOtherView]),h=j(async e=>{try{if(!await Up()){Op();return}let t=async e=>{c!==e&&(G.setMemoListView(e),u&&(u.settings={...u.settings,MemoListView:e},await u.saveSettings()),l(e))},n=new d.Menu;m.forEach(({view:e,title:r})=>{n.addItem(n=>{n.setChecked(c===e).setIcon(Kp[e]).setTitle(r).onClick(()=>t(e))})}),n.showAtMouseEvent(e.nativeEvent)}catch(e){console.error(`Error handling view switcher click:`,e)}},[c,u,m]);return Z($0,{className:A(()=>`memos-view-switcher-wrapper ${e||``} pro`.trim(),[e]),ref:o,onClick:e=>void h(e)})};N(),I(),X();var Jp=()=>{let e=k(null);return O(()=>{e&&((0,d.setIcon)(e.current,$if),d.setTooltip&&(0,d.setTooltip)(e.current,F(93)))},[e]),Z($0,{className:`memos-review-entry-wrapper`,ref:e,onClick:()=>{K.setPathname($2j)}})};function Yp(e){return e.split(`-`)[0]}function Xp(e){return e.split(`-`)[1]}function Zp(e){return[$4f,$1m].includes(Yp(e))?`x`:`y`}function Qp(e){return e===`y`?$a1:$gu}function $p(e){let{reference:t,floating:n,placement:r}=e,i=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,o;switch(Yp(r)){case $4f:o={x:i,y:t.y-n.height};break;case $1m:o={x:i,y:t.y+t.height};break;case $2i:o={x:t.x+t.width,y:a};break;case $1y:o={x:t.x-n.width,y:a};break;default:o={x:t.x,y:t.y}}let s=Zp(r),c=Qp(s);switch(Xp(r)){case $lc:o[s]=o[s]-(t[c]/2-n[c]/2);break;case $5q:o[s]=o[s]+(t[c]/2-n[c]/2);break}return o}var em=async(e,t,n)=>{let{placement:r=$1m,strategy:i=$dx,middleware:a=[],platform:o}=n,s=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:l}=$p({...s,placement:r}),u=r,d={};for(let n=0;n<a.length;n++){let{name:f,fn:p}=a[n],{x:m,y:h,data:g,reset:_}=await p({x:c,y:l,initialPlacement:r,placement:u,strategy:i,middlewareData:d,rects:s,platform:o,elements:{reference:e,floating:t}});if(c=m??c,l=h??l,d={...d,[f]:g??{}},_){typeof _==$0j&&(_.placement&&(u=_.placement),_.rects&&(s=_.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):_.rects),{x:c,y:l}=$p({...s,placement:u})),n=-1;continue}}return{x:c,y:l,placement:u,strategy:i,middlewareData:d}};function tm(e){return{top:0,right:0,bottom:0,left:0,...e}}function nm(e){return typeof e==$0e?{top:e,right:e,bottom:e,left:e}:tm(e)}function rm(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function im(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=$hb,rootBoundary:l=`viewport`,elementContext:u=$e4,altBoundary:d=!1,padding:f=0}=t,p=nm(f),m=o[d?u===$e4?`reference`:$e4:u],h=await i.getClippingClientRect({element:await i.isElement(m)?m:m.contextElement||await i.getDocumentElement({element:o.floating}),boundary:c,rootBoundary:l}),g=rm(await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:u===$e4?{...a.floating,x:n,y:r}:a.reference,offsetParent:await i.getOffsetParent({element:o.floating}),strategy:s}));return{top:h.top-g.top+p.top,bottom:g.bottom-h.bottom+p.bottom,left:h.left-g.left+p.left,right:g.right-h.right+p.right}}var am=Math.min,om=Math.max;function sm(e,t,n){return om(e,am(t,n))}var cm={left:$2i,right:$1y,bottom:$4f,top:$1m};function lm(e){return e.replace(/left|right|bottom|top/g,e=>cm[e])}function um(e,t){let n=Xp(e)===$lc,r=Zp(e),i=Qp(r),a=r===`x`?n?$2i:$1y:n?$1m:$4f;return t.reference[i]>t.floating[i]&&(a=lm(a)),{main:a,cross:lm(a)}}var dm={start:$5q,end:$lc};function fm(e){return e.replace(/start|end/g,e=>dm[e])}function pm(e){let t=lm(e);return[fm(e),t,fm(t)]}var mm=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o}=t;if((n=i.flip)!=null&&n.skip)return{};let{mainAxis:s=!0,crossAxis:c=!0,fallbackPlacements:l,fallbackStrategy:u=`bestFit`,flipAlignment:d=!0,...f}=e,p=Yp(r),m=[o,...l||(p===o||!d?[lm(o)]:pm(o))],h=await im(t,f),g=[],_=i.flip?.overflows||[];if(s&&g.push(h[p]),c){let{main:e,cross:t}=um(r,a);g.push(h[e],h[t])}if(_=[..._,{placement:r,overflows:g}],!g.every(e=>e<=0)){let e=(i.flip?.index??0)+1,t=m[e];if(t)return{data:{index:e,overflows:_},reset:{placement:t}};let n=$1m;switch(u){case`bestFit`:{let e=_.slice().sort((e,t)=>e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)-t.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0))[0]?.placement;e&&(n=e);break}case`initialPlacement`:n=o;break}return{data:{skip:!0},reset:{placement:n}}}return{}}}};function hm(e){let{placement:t,rects:n,value:r}=e,i=Yp(t),a=[$1y,$4f].includes(i)?-1:1,o=typeof r==$z?r({...n,placement:t}):r,{mainAxis:s,crossAxis:c}=typeof o==$0e?{mainAxis:o,crossAxis:0}:{mainAxis:0,crossAxis:0,...o};return Zp(i)===`x`?{x:c,y:s*a}:{x:s*a,y:c}}var gm=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,fn(t){let{x:n,y:r,placement:i,rects:a}=t,o=hm({placement:i,rects:a,value:e});return{x:n+o.x,y:r+o.y,data:o}}}};function _m(e){return e===`x`?`y`:`x`}var vm=function(e){return e===void 0&&(e={}),{name:$pq,options:e,async fn(t){let{x:n,y:r,placement:i}=t,{mainAxis:a=!0,crossAxis:o=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=e,l={x:n,y:r},u=await im(t,c),d=Zp(Yp(i)),f=_m(d),p=l[d],m=l[f];if(a){let e=d===`y`?$4f:$1y,t=d===`y`?$1m:$2i,n=p+u[e],r=p-u[t];p=sm(n,p,r)}if(o){let e=f===`y`?$4f:$1y,t=f===`y`?$1m:$2i,n=m+u[e],r=m-u[t];m=sm(n,m,r)}let h=s.fn({...t,[d]:p,[f]:m});return{...h,data:{x:h.x-n,y:h.y-r}}}}};function ym(e){return e?.toString()===`[object Window]`}function bm(e){if(e==null)return window;if(!ym(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function xm(e){return bm(e).getComputedStyle(e)}function Sm(e){return ym(e)?``:e?(e.nodeName||``).toLowerCase():``}function Cm(e){return e instanceof bm(e).HTMLElement}function wm(e){return e instanceof bm(e).Element}function Tm(e){return e instanceof bm(e).Node}function Em(e){return e instanceof bm(e).ShadowRoot||e instanceof ShadowRoot}function Dm(e){let{overflow:t,overflowX:n,overflowY:r}=xm(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function Om(e){return[$2x,`td`,`th`].includes(Sm(e))}function km(e){let t=navigator.userAgent.toLowerCase().includes(`firefox`),n=xm(e);return n.transform!==$1i||n.perspective!==$1i||n.contain===`paint`||[`transform`,`perspective`].includes(n.willChange)||t&&n.willChange===$e3||t&&(n.filter?n.filter!==$1i:!1)}var Am=Math.min,jm=Math.max,Mm=Math.round;function Nm(e,t){t===void 0&&(t=!1);let n=e.getBoundingClientRect(),r=1,i=1;return t&&Cm(e)&&(r=e.offsetWidth>0&&Mm(n.width)/e.offsetWidth||1,i=e.offsetHeight>0&&Mm(n.height)/e.offsetHeight||1),{width:n.width/r,height:n.height/i,top:n.top/i,right:n.right/r,bottom:n.bottom/i,left:n.left/r,x:n.left/r,y:n.top/i}}function Pm(e){return((Tm(e)?e.ownerDocument:e.document)||window.document).documentElement}function Fm(e){return ym(e)?{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}:{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Im(e){return Nm(Pm(e)).left+Fm(e).scrollLeft}function Lm(e){let t=Nm(e);return Mm(t.width)!==e.offsetWidth||Mm(t.height)!==e.offsetHeight}function Rm(e,t,n){let r=Cm(t),i=Pm(t),a=Nm(e,r&&Lm(t)),o={scrollLeft:0,scrollTop:0},s={x:0,y:0};if(r||!r&&n!==$9h)if((Sm(t)!==$fy||Dm(i))&&(o=Fm(t)),Cm(t)){let e=Nm(t,!0);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else i&&(s.x=Im(i));return{x:a.left+o.scrollLeft-s.x,y:a.top+o.scrollTop-s.y,width:a.width,height:a.height}}function zm(e){return Sm(e)===$jn?e:e.assignedSlot||e.parentNode||(Em(e)?e.host:null)||Pm(e)}function Bm(e){return!Cm(e)||getComputedStyle(e).position===$9h?null:e.offsetParent}function Vm(e){let t=zm(e);for(;Cm(t)&&![$jn,$fy].includes(Sm(t));)if(km(t))return t;else t=t.parentNode;return null}function Hm(e){let t=bm(e),n=Bm(e);for(;n&&Om(n)&&getComputedStyle(n).position===`static`;)n=Bm(n);return n&&(Sm(n)===$jn||Sm(n)===$fy&&getComputedStyle(n).position===`static`&&!km(n))?t:n||Vm(e)||t}function Um(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Wm(e){let{rect:t,offsetParent:n,strategy:r}=e,i=Cm(n),a=Pm(n);if(n===a)return t;let o={scrollLeft:0,scrollTop:0},s={x:0,y:0};if((i||!i&&r!==$9h)&&((Sm(n)!==$fy||Dm(a))&&(o=Fm(n)),Cm(n))){let e=Nm(n,!0);s.x=e.x+n.clientLeft,s.y=e.y+n.clientTop}return{...t,x:t.x-o.scrollLeft+s.x,y:t.y-o.scrollTop+s.y}}function Gm(e){let t=bm(e),n=Pm(e),r=t.visualViewport,i=n.clientWidth,a=n.clientHeight,o=0,s=0;return r&&(i=r.width,a=r.height,Math.abs(t.innerWidth/r.scale-r.width)<.01&&(o=r.offsetLeft,s=r.offsetTop)),{width:i,height:a,x:o,y:s}}function Km(e){let t=Pm(e),n=Fm(e),r=e.ownerDocument?.body,i=jm(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=jm(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+Im(e),s=-n.scrollTop;return xm(r||t).direction===`rtl`&&(o+=jm(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function qm(e){return[$jn,$fy,`#document`].includes(Sm(e))?e.ownerDocument.body:Cm(e)&&Dm(e)?e:qm(zm(e))}function Jm(e,t){t===void 0&&(t=[]);let n=qm(e),r=n===e.ownerDocument?.body,i=bm(n),a=r?[i].concat(i.visualViewport||[],Dm(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(Jm(zm(a)))}function Ym(e,t){let n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&Em(n)){let n=t;do{if(n&&e===n)return!0;n=n.parentNode||n.host}while(n)}return!1}function Xm(e){let t=Nm(e),n=t.top+e.clientTop,r=t.left+e.clientLeft;return{top:n,left:r,x:r,y:n,right:r+e.clientWidth,bottom:n+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}function Zm(e,t){return t===`viewport`?rm(Gm(e)):wm(t)?Xm(t):rm(Km(Pm(e)))}function Qm(e){let t=Jm(zm(e)),n=[$dx,$9h].includes(xm(e).position)&&Cm(e)?Hm(e):e;return wm(n)?t.filter(e=>wm(e)&&Ym(e,n)&&Sm(e)!==$fy):[]}function $m(e){let{element:t,boundary:n,rootBoundary:r}=e,i=[...n===$hb?Qm(t):[].concat(n),r],a=i[0],o=i.reduce((e,n)=>{let r=Zm(t,n);return e.top=jm(r.top,e.top),e.right=Am(r.right,e.right),e.bottom=Am(r.bottom,e.bottom),e.left=jm(r.left,e.left),e},Zm(t,a));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}var eh={getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:Rm(t,Hm(n),r),floating:{...Um(n),x:0,y:0}}},convertOffsetParentRelativeRectToViewportRelativeRect:e=>Wm(e),getOffsetParent:e=>{let{element:t}=e;return Hm(t)},isElement:e=>wm(e),getDocumentElement:e=>{let{element:t}=e;return Pm(t)},getClippingClientRect:e=>$m(e),getDimensions:e=>{let{element:t}=e;return Um(t)},getClientRects:e=>{let{element:t}=e;return t.getClientRects()}},th=(e,t,n)=>em(e,t,{platform:eh,...n});function nh(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function rh(e){for(;e.firstChild;)e.removeChild(e.firstChild)}async function ih(e,t,n={}){let r=n.padding??8,i=[gm({mainAxis:n.gap??4,crossAxis:n.crossAxis??0}),n.flip===!1?null:mm({padding:r,fallbackPlacements:n.fallbackPlacements}),n.shift===!1?null:vm({padding:r})].filter(Boolean),{x:a,y:o}=await th(t,e,{placement:n.placement??$4y,middleware:i});e.addClass(`thino-anchored-panel`),e.setCssProps({"--thino-anchor-x":`${a}px`,"--thino-anchor-y":`${o}px`})}function ah(e,t,n={}){let r=!1,i=()=>{r||ih(e,t,n)};i();let a=nh(window,$5y,i,!0),o=nh(window,$7w,i);return()=>{r=!0,a(),o()}}N();function oh(e,t,n={}){let r=k(n);r.current=n;let i=k();if(!i.current){let e={elements:{reference:null,popper:null}};i.current={state:e,styles:{popper:{position:$dx,left:`var(--thino-anchor-x, 0)`,top:`var(--thino-anchor-y, 0)`}},attributes:{popper:{}},update:async()=>{let{reference:t,popper:n}=e.elements;if(!t||!n)return;let{placement:i,offset:a,fallbackPlacements:o}=r.current;await ih(n,t,{placement:i,fallbackPlacements:o,crossAxis:a?.[0]??0,gap:a?.[1]??0})}}}let a=i.current,o=k(void 0);return o.current!==e&&(o.current=e,a.state.elements.reference=e),a.state.elements.popper=t,O(()=>{a.update()}),O(()=>{let e=()=>{a.update()};return window.addEventListener($5y,e,!0),window.addEventListener($7w,e),()=>{window.removeEventListener($5y,e,!0),window.removeEventListener($7w,e)}},[]),a}wn();var sh=class extends d.AbstractInputSuggest{inputEl;cb;constructor(e,t){super(xn(),e),this.inputEl=e,this.cb=t}clearInput(){this.inputEl.value=``,this.inputEl.trigger($4n),this.inputEl.trigger($1a),this.inputEl.trigger($09)}destroy(){this.close()}updateCb(e){this.cb=e}},ch=(e,t)=>(e%t+t)%t,lh=class{owner;values;suggestions;selectedItem;containerEl;constructor(e,t,n){this.owner=e,this.containerEl=t,t.on($05,$fg,this.onSuggestionClick.bind(this)),t.on(`mousemove`,$fg,this.onSuggestionMouseover.bind(this)),n.register([],$lo,e=>{if(!e.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),n.register([],$ht,e=>{if(!e.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),n.register([],$28,e=>{if(!e.isComposing)return this.useSelectedItem(e),!1}),n.register([],`Tab`,e=>{if(!e.isComposing)return this.useSelectedItem(e),!1})}onSuggestionClick(e,t){e.preventDefault();let n=this.suggestions.indexOf(t);this.setSelectedItem(n,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,t){let n=this.suggestions.indexOf(t);this.setSelectedItem(n,!1)}setSuggestions(e){this.containerEl.empty();let t=[];e.forEach(e=>{let n=this.containerEl.createDiv(`suggestion-item`);this.owner.renderSuggestion(e,n),t.push(n)}),this.values=e,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(e){let t=this.values[this.selectedItem];t&&this.owner.selectSuggestion(t,e)}setSelectedItem(e,t){let n=ch(e,this.suggestions.length),r=this.suggestions[this.selectedItem],i=this.suggestions[n];r?.removeClass($mg),i?.addClass($mg),this.selectedItem=n,t&&i.scrollIntoView(!1)}},uh=class{inputEl;placement=$4y;detachPanel;scope;suggestEl;suggest;_boundInputChanged;_boundClose;_isOpen=!1;constructor(e){this.inputEl=e,this.scope=new d.Scope,this.suggestEl=createDiv(`suggestion-container`);let t=this.suggestEl.createDiv(`suggestion`);this.suggest=new lh(this,t,this.scope),this.scope.register([],$7m,()=>(this.close(),!1)),this._boundInputChanged=this.onInputChanged.bind(this),this._boundClose=this.close.bind(this),this.inputEl.addEventListener($09,this._boundInputChanged),this.inputEl.addEventListener($1a,this._boundInputChanged),this.inputEl.addEventListener($05,this._boundInputChanged),this.inputEl.addEventListener($4n,this._boundClose),this.suggestEl.on($4b,$ag,e=>{e.preventDefault()})}get isOpen(){return this._isOpen}onInputChanged(){let e=this.getSuggestions(this.inputEl.value);if(!e||e.length===0){this.close();return}this.suggest.setSuggestions(e),this.open()}open(){if(this.suggestEl.setCssStyles({width:`${this.inputEl.getBoundingClientRect().width}px`}),this._isOpen){ih(this.suggestEl,this.inputEl,{placement:this.placement,gap:0});return}xn().keymap.pushScope(this.scope),this.inputEl.ownerDocument.body.appendChild(this.suggestEl),this.detachPanel=ah(this.suggestEl,this.inputEl,{placement:this.placement,gap:0}),this._isOpen=!0}close(){this._isOpen&&=(xn().keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.detachPanel?.(),this.detachPanel=void 0,this.suggestEl.detach(),!1)}destroy(){this.inputEl.removeEventListener($09,this._boundInputChanged),this.inputEl.removeEventListener($1a,this._boundInputChanged),this.inputEl.removeEventListener($05,this._boundInputChanged),this.inputEl.removeEventListener($4n,this._boundClose),this.close()}};X();var dh=e=>{let t=e.metadataCache.getTags();return[...Object.keys(t)].map(e=>e.split(`#`).pop())},fh=class extends sh{fuzzySearchItemsOptimized(e,t){let n=(0,d.prepareFuzzySearch)(e);return t.map(e=>{let t=n(e);return t?{item:e,match:t,score:t.score}:null}).sort((e,t)=>t?.score-e?.score).filter(Boolean)}getSuggestions(e){let{settings:t,app:n}=W.getState(),r=e.toLocaleLowerCase(),i=t.UseVaultTags?dh(n):Y.getState().tags;return this.fuzzySearchItemsOptimized(r,i).map(e=>e.item)}renderSuggestion(e,t){t.toggleClass($8v,!0),t.createSpan({cls:$hn,text:e})}selectSuggestion(e){this.inputEl.value=e,this.cb&&this.cb(e),this.inputEl.dispatchEvent(new Event($e2)),this.inputEl.trigger($e2),this.close()}},ph=class extends d.Component{constructor(e){super(),this.containerEl=e}onload(){this.onMount()}onunload(){this.onUnmount(),rh(this.containerEl)}onMount(){}onUnmount(){}own(e){this.register(e)}mount(e){return this.addChild(e),e}unmount(e){this.removeChild(e)}};ia();function mh(e){let t=new Date(e);return new Date(`${t.getFullYear()}/${t.getMonth()+1}/1`).getTime()}function hh(e){let t=new Date(e),n=new Date(`${t.getFullYear()}/${t.getMonth()+1}/1`),r=n.getMonth()===11?new Date(`${n.getFullYear()+1}/1/1`):new Date(`${n.getFullYear()}/${n.getMonth()+2}/1`);return Math.round((r.getTime()-n.getTime())/Wi)}function gh(e){let t=new Date(mh(e)),n=t.getDay(),r=[];for(let e=0;e<n;e++)r.push({date:0,datestamp:t.getTime()-Wi*(7-e)});let i=hh(t.getTime());for(let e=1;e<=i;e++)r.push({date:e,datestamp:t.getTime()+Wi*(e-1)});return r}function _h(e,t){let n=new Date(mh(e)),r=n.getFullYear(),i=n.getMonth()+1;return i===1&&t===-1?new Date(`${r-1}/12/1`).getTime():i===12&&t===1?new Date(`${r+1}/1/1`).getTime():mh(new Date(`${r}/${i+t}/1`).getTime())}function vh(e,t){return mh(new Date(`${e}/${t}/1`).getTime())}function yh(e){let t=e-e%10;return Array.from({length:10},(e,n)=>`${t+n}`)}I();var bh=class extends ph{monthStamp;selectedDate;headerTextEl;dayContentEl;yearPopupEl=null;monthPopupEl=null;constructor(e,t){super(e),this.options=t,this.monthStamp=mh(t.datestamp),this.selectedDate=t.datestamp}onMount(){this.containerEl.addClasses([...this.options.wrapperCls??[`date-picker-wrapper`],...this.options.cls?[this.options.cls]:[]]);let e=this.containerEl.createDiv({cls:`date-picker-header`}),t=e.createSpan({cls:$7t});(0,d.setIcon)(t,$2v),this.registerDomEvent(t,$05,()=>this.changeMonth(-1)),this.headerTextEl=e.createSpan({cls:$1k});let n=e.createSpan({cls:$7t});(0,d.setIcon)(n,$0z),this.registerDomEvent(n,$05,()=>this.changeMonth(1));let r=this.containerEl.createDiv({cls:`date-picker-day-container`}),i=r.createDiv({cls:`date-picker-day-header`});for(let e of F($4g))i.createSpan({cls:`day-item`,text:e});this.dayContentEl=r.createDiv({cls:`date-picker-day-content`}),this.registerDomEvent(document,$4b,e=>this.onDocumentMouseDown(e)),this.renderHeader(),this.renderDays()}setDatestamp(e){this.options.datestamp=e,this.monthStamp=mh(e),this.selectedDate=e,this.closePopups(),this.renderHeader(),this.renderDays()}changeMonth(e){this.monthStamp=_h(this.monthStamp,e),this.closePopups(),this.renderHeader(),this.renderDays(),this.options.onMonthChange?.(this.monthStamp)}refreshDays(){this.renderDays()}renderHeader(){this.headerTextEl.empty(),this.yearPopupEl=null,this.monthPopupEl=null;let e=new Date(this.monthStamp),t=this.headerTextEl.createSpan({cls:`btn year-btn`});t.createSpan({text:`${e.getFullYear()}`}),t.createSpan({text:F($3b)}),t.onclick=()=>this.toggleYearPopup();let n=this.headerTextEl.createSpan({cls:`btn month-btn`}),r=e.getMonth();n.createSpan({text:`${F(`monthsShort`)[r]??r+1} `}),n.createSpan({text:F($0s)}),n.onclick=()=>this.toggleMonthPopup()}renderDays(){this.dayContentEl.empty();let{currentStamp:e,datestamp:t,dayCls:n,decorateDay:r,onDayHover:i,toggleSelection:a}=this.options,o=e??t;for(let e of gh(this.monthStamp)){if(e.date===0){this.dayContentEl.createSpan({cls:`day-item null`});continue}let t=[`day-item`];e.datestamp===o&&t.push(`current`),e.datestamp===this.selectedDate&&t.push($57);let s=n?.(e);s&&t.push(s);let c=this.dayContentEl.createSpan({cls:t.join(` `)});c.createSpan({cls:`day-item-text`,text:`${e.date}`}),r?.(e,c),c.onclick=t=>{this.selectedDate=a&&this.selectedDate===e.datestamp?null:e.datestamp,this.renderDays(),this.options.onChange(e.datestamp,t)},i&&(c.onmouseover=t=>i(e,t))}}onDocumentMouseDown(e){let t=e.target;t&&(this.yearPopupEl&&!this.yearPopupEl.contains(t)&&this.closeYearPopup(),this.monthPopupEl&&!this.monthPopupEl.contains(t)&&this.closeMonthPopup())}closePopups(){this.closeYearPopup(),this.closeMonthPopup()}closeYearPopup(){this.yearPopupEl?.detach(),this.yearPopupEl=null}closeMonthPopup(){this.monthPopupEl?.detach(),this.monthPopupEl=null}toggleYearPopup(){if(this.yearPopupEl){this.closeYearPopup();return}this.closeMonthPopup();let e=new Date(this.monthStamp).getFullYear(),t=this.headerTextEl.createDiv({cls:`year-picker-wrapper`});this.yearPopupEl=t;let n=t.createDiv({cls:`year-picker-header`}),r=n.createDiv({cls:`year-picker-header-title`}),i=n.createDiv({cls:`year-picker-header-btns`}),a=t.createDiv({cls:`year-picker-body`}).createDiv({cls:`year-picker-body-list`}),o=()=>{r.setText(`${e} ${F($3b)||``}`),a.empty();for(let t of yh(e)){let n=a.createDiv({cls:`year-picker-body-item${t===`${e}`?$hs:``}`,text:t});n.onclick=()=>{let e=new Date(this.monthStamp).getMonth()+1;this.monthStamp=vh(parseInt(t,10),e),this.closeYearPopup(),this.renderHeader(),this.renderDays()}}},s=i.createSpan({cls:`btn`});(0,d.setIcon)(s,$2v),s.onclick=()=>{e-=10,o()};let c=i.createSpan({cls:`btn`});(0,d.setIcon)(c,$0z),c.onclick=()=>{e+=10,o()},o()}toggleMonthPopup(){if(this.monthPopupEl){this.closeMonthPopup();return}this.closeYearPopup();let e=new Date(this.monthStamp).getMonth()+1,t=this.headerTextEl.createDiv({cls:`month-picker-wrapper`});this.monthPopupEl=t;let n=t.createDiv({cls:`month-picker-header`});n.createDiv({cls:`month-picker-header-title`,text:`${e} ${F($0s)||``}`}),n.createDiv({cls:`month-picker-header-btns`});let r=t.createDiv({cls:`month-picker-body`}).createDiv({cls:`month-picker-body-list`});for(let t=1;t<=12;t++){let n=r.createDiv({cls:`month-picker-body-item${t===e?$hs:``}`,text:`${t}`});n.onclick=()=>{this.monthStamp=vh(new Date(this.monthStamp).getFullYear(),t),this.closeMonthPopup(),this.renderHeader(),this.renderDays()}}}};N();var xh=({className:e,datestamp:t,handleDateStampChange:n})=>{let r=k(null),i=k(null),a=k(n);return a.current=n,O(()=>{if(!r.current)return;let e=new bh(r.current,{datestamp:t,onChange:(e,t)=>a.current(e,t)});return i.current=e,e.load(),()=>{e.unload(),i.current=null}},[]),O(()=>{i.current?.setDatestamp(t)},[t]),O(()=>{r.current&&(r.current.className=`date-picker-wrapper ${e??``}`)},[e]),Z($0,{ref:r})};I();function Sh(){let e=e=>(0,d.moment)().subtract(e,$2b).format($02);return[{label:F(364),value:(0,d.moment)().format($02)},{label:F(365),value:e(1)},{label:F(366),value:e(7)},{label:F(367),value:e(30)},{label:F(368),value:e(90)},{label:F(369),value:e(180)},{label:F(370),value:e(365)}]}var Ch=class extends ph{constructor(e,t){super(e),this.options=t}onMount(){let{type:e,onValueChange:t,onDismiss:n}=this.options;if(e===$89){let e=this.containerEl.createDiv({cls:$c5});for(let r of Sh()){let i=e.createDiv({cls:$6d,text:r.label});i.onclick=()=>{t(r.value),n?.()}}}let r=this.containerEl.createDiv();this.mount(new bh(r,{cls:$c1,datestamp:this.options.defaultValue||(0,d.moment)().startOf($04).valueOf(),onChange:r=>{t(e===$89?(0,d.moment)(r).format($02):r.toString()),n?.()}}))}};N(),X();var wh=e=>{let{handleValueChange:t,setShownStatus:n}=e;return Z(E,{children:[e.type===$89&&Z($0,{className:$c5,children:Sh().map((e,r)=>Z($0,{className:$6d,onClick:()=>{t(e.value),n&&n(!1)},children:e.label},r))}),Z(xh,{className:$c1,datestamp:e?.defaultValue||(0,d.moment)().startOf($04).valueOf(),handleDateStampChange:r=>{t(e.type===$89?(0,d.moment)(r).format($02):r.toString()),n&&n(!1)}})]})},Th=e=>{let{handleValueChange:t}=e,[n,r]=M.useState(!1),i=M.useRef(null),a=M.useRef(null),o=oh(a.current,i.current,{placement:$4y});return xp(i,()=>{r(!1)}),Z(E,{children:[Z($8,{ref:t=>{a.current=t,t&&e.type===$89&&(0,d.setIcon)(t,$1c)},className:`btn calendar-btn ${e.type===$89?`icon-btn`:`text-btn`}`,onClick:()=>{!d.Platform.isMobile&&r(!n),!d.Platform.isMobile&&o?.update&&o?.update(),d.Platform.isMobile&&new Eh(W.getState().app,e.type,t).open()},children:e.type===$0l&&e.defaultValue?e.defaultText?e.defaultText:(0,d.moment)(e.defaultValue,`x`).subtract(e.startOrEnd===$5q?1:0,$2b).format($6q):``}),Z($0,{className:`menu-btns-popup ${n?``:$01}`,ref:i,style:o.styles.popper,children:Z(wh,{type:e.defaultText?$89:e.type,handleValueChange:t,setShownStatus:r})})]})},Eh=class extends d.Modal{body=null;type;handleValueChange;constructor(e,t,n){super(e),this.type=t,this.handleValueChange=n}onOpen(){let{contentEl:e}=this;e.empty(),this.body=new Ch(e,{type:this.type,onValueChange:e=>this.handleValueChange(e),onDismiss:()=>this.close()}),this.body.load()}onClose(){this.body?.unload(),this.body=null}};function Dh(e,t){let n=e??100;return t?{margin:0}:{margin:0,height:n,overflow:$5w,display:n===0?$1i:$64}}N(),Ia(),X(),Hi(),I();var Oh=Ot(({memoId:e,showOutgoingLinks:t=!0,showIncomingLinks:n=!0})=>{let[r,i]=D([]),[a,o]=D([]),[s,c]=D(null),[l,u]=D(!1),[d,f]=D(!1),p=k(null);O(()=>{!s&&!l&&!d&&(u(!0),(async()=>{let t=Y.getMemoById(e);t&&c(t),u(!1)})())},[e,s,l,d]),O(()=>{s&&!d&&!l&&(u(!0),(async()=>{try{t&&i(await dg(s.content)),n&&o(await fg(s)),f(!0)}catch(e){console.error($35,e)}u(!1)})())},[s,t,n,d,l]);let m=j(e=>{mg(e)},[]);return Z($0,{className:Tf(`reference-links-group`,l?$ly:`loaded`),ref:p,children:[l&&Z($0,{className:`links-loading`,children:Z($8,{className:$db,children:F(91)})}),d&&Z(E,{children:[t&&r.length>0&&Z($0,{className:`links-section outgoing-links`,children:Z($0,{className:$o6,children:r.map(e=>{let t=zi(Aa(e.content)).replaceAll(`
  112. `,` `);return Z($0,{"aria-label":`${F(766)} ${e.content}`,className:$p3,onClick:()=>m(e),children:[Z($0,{className:$p2,ref:xf(`circle-dot`)}),Z($0,{className:$p1,children:[e.dateStr,`:`]}),Z($0,{className:$l4,children:t})]},e.id)})})}),n&&a.length>0&&Z($0,{className:`links-section incoming-links`,children:Z($0,{className:$o6,children:a.map(e=>{let t=zi(Aa(e.content)).replaceAll(`
  113. `,` `);return Z($0,{"aria-label":`${F(765)} ${e.content}`,className:$p3,onClick:()=>m(e),children:[Z($0,{className:$p2,ref:xf(`circle-dot-dashed`)}),Z($0,{className:$p1,children:[e.dateStr,`:`]}),Z($0,{className:$l4,children:t})]},e.id)})})}),d&&!l&&r.length===0&&a.length===0&&null]})]})},(e,t)=>e.memoId===t.memoId&&e.showIncomingLinks===t.showIncomingLinks&&e.showOutgoingLinks===t.showOutgoingLinks);X(),I(),wn(),Dn();var kh=new Map,Ah=async(e,t=!0)=>{let{vault:n,metadataCache:r}=W.getState().app;if(t&&kh.has(e))return Promise.resolve(kh.get(e));if(e.contains($nu))return e;let i,a=await n.adapter.exists((0,d.normalizePath)(e)),o=``;try{if(!a&&!/(http|https)/g.test(e)&&!e.includes($nu)){let t;if(e.startsWith(`app://`)){let t=(0,d.normalizePath)(decodeURIComponent(e).replace(d.Platform.resourcePathPrefix,``).replace(/\?(.*)$/,``).replace((0,d.normalizePath)(Sn()?.vault.adapter.basePath),``));o=(0,d.normalizePath)(decodeURIComponent(t))}else{if(t=r.getFirstLinkpathDest(e,``),!t){new d.Notice(F(275));return}o=t.path}}else o=e}catch(e){console.error(e)}if(o){if(!/(http|https)/g.test(o)){if(o){let e=await n.adapter.readBinary(o),t=new Uint8Array(e);i=new Blob([t],{type:$14}),P(i)}}else if(o.startsWith($38)){let e=o;e=e.replace($52,``),e=decodeURIComponent(e).replace(/\?(.*)$/,``).replace(Sn()?.vault.adapter.basePath,``),e=(0,d.normalizePath)(decodeURIComponent(e));let t=await n.adapter.readBinary(e),r=new Uint8Array(t);i=new Blob([r],{type:$14})}else try{let t=await(0,d.requestUrl)(e);P(e,t);let n=new Uint8Array(t.arrayBuffer);i=new Blob([n],{type:$14}),P(i)}catch(t){Tn(`error in grabReleaseFileFromRepository`,e,t)}return i?await jh(i,e):``}},jh=(e,t)=>new Promise(n=>{let r=new FileReader;r.onloadend=()=>{let e=r.result;kh.set(t,e),n(e)},r.readAsDataURL(e)});ia();var Mh=class extends d.Modal{bodyEl;children=[];isClosing=!1;constructor(e,t){super(e),this.containerEl.removeClasses([`modal-container`,`mod-dim`]),this.containerEl.addClass(`dialog-wrapper`);for(let e of t.split(` `).filter(Boolean))this.containerEl.addClass(e);this.modalEl.removeClass($55),this.modalEl.addClass(`dialog-container`),this.containerEl.querySelector(`.modal-bg`)?.detach(),this.titleEl.detach(),this.contentEl.detach(),this.modalEl.querySelector(`.modal-close-button`)?.detach(),this.bodyEl=this.modalEl,this.containerEl.addEventListener($05,e=>{e.target===this.containerEl&&this.close()}),this.modalEl.addEventListener($05,e=>e.stopPropagation()),this.scope.register([$gp],`w`,e=>{e.preventDefault(),this.close()})}onOpen(){window.requestAnimationFrame(()=>this.containerEl.addClass(`showup`)),this.onBuild()}mount(e){return this.children.push(e),e.load(),e}onClose(){for(this.onTeardown();this.children.length;)this.children.pop()?.unload();this.bodyEl.empty();for(let e of Array.from(document.body.querySelectorAll(`.domtoimage-thino`)))e.detach()}onTeardown(){}close(){if(this.isClosing){super.close();return}this.isClosing=!0,this.containerEl.removeClass(`showup`),this.containerEl.addClass(`showoff`),window.setTimeout(()=>super.close(),200)}};Ia(),wi(),I();var Nh=1.1,Ph=300,Fh=20,Ih=40,Lh=80,Rh=async e=>{let t=new ClipboardItem({"image/png":e});await window.navigator.clipboard.write([t])},zh=async e=>{e.startsWith($4t)&&(e=await Ah(e));let t=e.split($ls)[1];await Rh(Fa(t,$14)),new d.Notice(F(271))},Bh=async(e,t)=>{let n=await e.vault.adapter.exists(t),r=``;if(n)r=t;else{let n=e.metadataCache.getFirstLinkpathDest(t,``);if(!n){new d.Notice(F(275));return}r=n.path}let i=await e.vault.adapter.readBinary(r),a=new Uint8Array(i);await Rh(new Blob([a],{type:$14}))};function Vh(e){return e>Ph?Ph:e<Fh?Fh:e}var Hh=class extends Mh{imgWidth=-1;currentIndex;currentImgUrl;imgEl=null;loadingEl=null;brokenEl=null;constructor(e){super(L.getState().dailyNotesState.app,`preview-image-dialog`),this.options=e,this.currentIndex=e.currentIndex??0,this.currentImgUrl=e.imgUrl}get allImages(){return this.options.otherIMGEls??[]}onBuild(){let e=this.bodyEl.createEl($7,{cls:$6t});(0,d.setIcon)(e,`x`),e.addEventListener($05,()=>this.close());let t=this.bodyEl.createDiv(`img-container internal-embed image-embed is-loaded`);this.imgEl=t.createEl($6y),this.loadingEl=t.createSpan({cls:$db,text:F(90)}),this.brokenEl=t.createSpan({cls:$db,text:F(92)}),t.addEventListener($05,e=>{e.target!==this.imgEl&&e.target===this.imgEl?.parentElement&&this.close()}),t.addEventListener(`wheel`,e=>this.handleWheel(e,t));let n=this.bodyEl.createDiv(`action-btns-container`);this.allImages.length>1&&(this.addActionBtn(n,$6r,()=>this.step(-1)),this.addActionBtn(n,$eq,()=>this.step(1))),this.addActionBtn(n,`zoom-out`,()=>{this.imgWidth>30&&this.setImgWidth(this.imgWidth-10)}),this.addActionBtn(n,`zoom-in`,()=>this.setImgWidth(this.imgWidth+10)),this.addActionBtn(n,`circle`,()=>this.setImgWidth(Lh)),this.addActionBtn(n,`clipboard`,()=>void this.copyImageToClipboard()),this.loadImage()}addActionBtn(e,t,n){let r=e.createEl($7,{cls:`btn`});(0,d.setIcon)(r,t),r.addEventListener($05,n)}loadImage(){let e=this.currentImgUrl;this.imgEl&&(this.imgEl.src=e),this.setImgWidth(-1),R.getImageSize(e).then(({width:t})=>{if(e!==this.currentImgUrl)return;if(t===0){this.setImgWidth(0);return}let n=L.getState().dailyNotesState.settings?.ZoomImageWhenViewing;this.setImgWidth(n?Lh:Ih)})}setImgWidth(e){this.imgWidth=e,this.imgEl?.toggleClass($01,e<=0),this.imgEl?.setAttribute($a1,`${e}%`),this.loadingEl?.toggleClass($01,e!==-1),this.brokenEl?.toggleClass($01,e!==0)}step(e){let t=this.allImages;t.length&&(this.currentIndex=(this.currentIndex+e+t.length)%t.length,this.currentImgUrl=t[this.currentIndex].src,this.loadImage())}handleWheel(e,t){if(!e.ctrlKey){e.deltaX!==0&&(t.scrollLeft+=e.deltaX);return}e.preventDefault();let n=this.imgEl;if(!n)return;let r=e.offsetX/n.clientWidth,i=e.offsetY/n.clientHeight,a=this.imgWidth,o=Vh(e.deltaY>0?a/Nh:a*Nh);this.setImgWidth(o),t.scrollLeft+=(o-a)*r,t.scrollTop+=(o-a)*i}async copyImageToClipboard(){let{filepath:e,imgUrl:t}=this.options;if(this.currentImgUrl&&!e){await zh(t);return}if(!e)return;let n=this.allImages[this.currentIndex]?.parentElement?.getAttribute($9a);if(!n){await zh(this.currentImgUrl);return}await Bh(this.app,n)}};function Uh({imgUrl:e,filepath:t,otherIMGEls:n,currentIndex:r}){new Hh({imgUrl:e,filepath:t,otherIMGEls:n,currentIndex:r}).open()}X(),I(),kp(),Gp(),Os();var Wh=(e,t,n,r)=>{t.querySelectorAll($i4).forEach(t=>{let i=t,a=i.getAttribute($hw);a&&(e.metadataCache.getFirstLinkpathDest(a,n)||t.classList.add($jp),i.addEventListener($p5,t=>{t.stopPropagation(),e.workspace.trigger($a2,{event:t,source:$0c,hoverParent:r,targetEl:i,linktext:a,sourcePath:i.href})}))})},Gh=e=>{let t=K.getState().query.tag;K.setTagQuery(t.contains(`,`)?t.split(`,`).includes(e)?t.split(`,`).filter(t=>t!==e).join(`,`):t+`,`+e:t===e?``:e)},Kh=async(e,t,n)=>{let r=n.getAttribute($g6),i=n.className;if(i.contains($70))Gh(n.innerText.slice(1));else if(i.contains($jo)){let r=n.getAttribute($hw),i=Y.getMemoById(r??``);i?mg(i):await e.workspace.openLinkText(r,r,!d.Platform.isMobile&&t.navigation!==!0)}else r&&window.open(r,$1l)},qh=(e,t)=>{let n=t?.getAttribute($9a),r=t?.parentElement.getAttribute($9a),i=[...e?.querySelectorAll($6y)||[]],a=i.indexOf(t);Uh({imgUrl:n,filepath:n.startsWith(`app`)?r:void 0,otherIMGEls:i,currentIndex:a})},Jh=e=>{let t=e.dataset?.value,n=Y.getMemoById(t??``);n?mg(n):(new d.Notice(`Thino Not Found`),e.classList.remove($40))},Yh=async(e,t,n,r)=>{let i=e?.AppendDateWhenTaskDone?` ✅ `+(0,d.moment)().format($02):``,a=r.parentElement.dataset?.task===`x`?$iz:$9r,o=[...n?.querySelectorAll($f4)||[]];for(let n of o)if(n===r||n===r.closest($f4)){let r=o.indexOf(n),s=t.content.split(/\n/),c=[];for(let e=0;e<s.length;e++)/^\s*(-|\*|\d+\.)\s\[.\]\s/.test(s[e])&&c.push(e);let l=c[r],u=s[l],d=u.match(/^\s*(-|\*|\d+\.)\s\[.\]\s/)[0],f=u.replace(/^\s*(-|\*|\d+\.)\s\[.\]\s/,d.replace(/\[.\]/,a===$9r?`[x]`:`[ ]`))+(a===$9r?i:``);e.AppendDateWhenTaskDone&&a!==$9r&&(f=f.replace(/ ✅ \d{4}-\d{2}-\d{2}/g,``)),s[l]=f;let p=s.join(`
  114. `).trim();if(t&&t.content!==p){let e=await Y.updateMemo(t.id,p);Y.editMemo(e)}}},Xh=e=>{navigator.clipboard.writeText(e).then(()=>{new d.Notice(F(298))}).catch(()=>{new d.Notice(F(297))})},Zh=async(e,t)=>{let n=await bs(e,t);navigator.clipboard.writeText(n),new d.Notice(F(298))},Qh=async e=>{if(!await Up()){Op();return}e.pinned?await Y.unpinMemoById(e.id):await Y.pinMemoById(e.id)},$h=async e=>{try{let t=await Y.archiveMemo(e);t&&Y.editMemo(t)}catch(e){console.error(e),new d.Notice(e instanceof Error?e.message:String(e))}},eg=(e,t)=>{t?.UseButtonToShowEditor&&t?.DefaultEditorLocation===$3c&&document.querySelector($0w)?.trigger($05),G.setMarkMemoId(e)};N(),U(),I();var tg=new Set,ng=`█`;function rg(e,t){if(!t?.enableSecretMasking||!t?.secretContentRegex)return!1;try{return new RegExp(t.secretContentRegex).test(e)}catch{return!1}}var ig=Ot(e=>{let{app:t,view:n,settings:r,plugin:i}=H(),{memoListView:a}=B(),[o,s]=M.useState(!0),c=Dh(r?.ThinoCollapsedHeight,o),l={type:$7,"aria-expanded":o,style:{display:$64,marginTop:2},onClick:()=>s(e=>!e)},{memo:u,handleMemoContentClick:f,handleMemoDoubleClick:p}=e,m=M.useRef(null),[h]=M.useState(``),g=M.useRef(h),_=M.useRef(0),[v,y]=M.useState(!1),[b,x]=M.useState(!1),[S,C]=M.useState(!1),w=M.useRef([]),T=(0,d.debounce)((e,t,n)=>{for(let r of e){let{height:e}=r.contentRect,i=e>(t?.ThinoMaxHeight||340);y(i),s(!i),n.disconnect()}},500);O(()=>{if(u.content!==g.current){if(r?.OptimizeForCallout&&u.content.split(`> [!`).length>3&&u.content.split(`
  115. `).length>10&&!b){let e=m.current.createEl($7);e.setText(F(665)),e.onclick=async()=>{x(!0),await ee()};let t=m.current.createEl($0o);t.setText(u.content),t.disabled=!0,m.current?.toggleClass([$mk],!0),s(!0),y(!1);return}ee()}},[u.content]),O(()=>{b&&_.current!==r?.ThinoMaxHeight&&(m?.current.hasChildNodes()&&x(!1),ee())},[r?.ThinoMaxHeight]),O(()=>{if(!b)return;let e=m.current;if(!e)return;if(!r?.ThinoMaxHeight){s(!0),y(!1);return}let t=new ResizeObserver(e=>{T(e,r,t)});return t.observe(e),()=>t.disconnect()},[b]),O(()=>{e.lockVersion===void 0||e.lockVersion===0||ne()},[e.lockVersion]);let ee=async()=>{let e=n||i;m.current&&e&&t&&u.content!==g.current&&(m.current.empty(),await d.MarkdownRenderer.render(t,u.content,m.current,u.path??``,e),Wh(t,m.current,u.path,n?n.containerEl:m.current)),g.current=u.content,m.current?.toggleClass([$32],!0),m.current?.toggleClass([$mk],!1),x&&x(!0),_.current=r?.ThinoMaxHeight||340,ne()},te=()=>{if(!r?.enableSecretMasking||!r?.secretContentRegex||!(0,d.requireApiVersion)($ms)||tg.has(u.id))return!1;try{return new RegExp(r.secretContentRegex).test(u.content)}catch{return!1}},ne=()=>{if(!m.current||!te()){C(!1);return}if(C(!0),(r?.secretMaskingStyle||$4n)===$4n)m.current.classList.add($ee);else{let e=m.current.textContent?.length||20;w.current=Array.from(m.current.childNodes),m.current.empty(),m.current.setText(ng.repeat(Math.min(e,80))),m.current.classList.add($df)}},re=async n=>{!S||!t||(n.stopPropagation(),n.preventDefault(),new ag(t,n=>{try{if(n===t.secretStorage.getSecret($6e)){if(tg.add(u.id),C(!1),e.onReveal?.(),!m.current)return;(r?.secretMaskingStyle||$4n)===$4n?m.current.classList.remove($ee):(m.current.empty(),w.current.forEach(e=>m.current?.appendChild(e)),w.current=[],m.current.classList.remove($df))}else new d.Notice(F(813))}catch{new d.Notice(F(813))}}).open())};return Z(E,{children:[v&&a===$4v&&Z(E,{children:[Z($7,{className:$at,...l,children:F(o?661:662)}),!o&&r?.ThinoCollapsedHeight!==0&&Z($0,{className:$72,onDoubleClick:p})]}),Z($0,{style:{position:`relative`},children:[Z($0,{style:c,ref:m,className:$4d,onClick:e=>f(e,u),onDoubleClick:p,onContextMenu:e=>{e.preventDefault()}}),S&&Z($0,{className:`secret-mask-overlay`,onClick:e=>void re(e),"aria-label":F(815),children:Z($8,{className:`secret-mask-icon`,children:`🔒`})})]}),a===$0y&&r?.enableReferenceLinksGroup&&Z(Oh,{memoId:u.id}),v&&a!==$4v&&Z(E,{children:[!o&&r?.ThinoCollapsedHeight!==0&&Z($0,{className:$72,onDoubleClick:p}),Z($7,{className:$at,...l,children:F(o?661:662)})]})]})},(e,t)=>e.memo.content===t.memo.content&&e.lockVersion===t.lockVersion),ag=class extends d.Modal{onSubmit;constructor(e,t){super(e),this.onSubmit=t}onOpen(){let{contentEl:e}=this;this.titleEl.setText(F(809));let t=e.createEl($09,{type:$41,placeholder:F(810),cls:$3h});t.setCssStyles({width:$2n,marginBottom:`12px`});let n=e.createDiv($1p),r=n.createEl($7,{text:F(305)}),i=n.createEl($7,{text:F(791),cls:$2c});r.onclick=()=>this.close(),i.onclick=()=>{this.onSubmit(t.value),this.close()},t.addEventListener($1s,e=>{e.key===$28&&(this.onSubmit(t.value),this.close())}),window.setTimeout(()=>t.focus(),50)}onClose(){this.contentEl.empty()}};N();function og(e){return{render:function(t){zt(t,e)},unmount:function(){Kt(e)}}}function sg(e,t){return Bt(t,e),og(e)}var cg={createRoot:og,hydrateRoot:sg};N();var lg=class extends d.Component{root=null;constructor(e,t,n){super(),this.containerEl=e,this.type=t,this.props=n}onload(){this.containerEl.empty(),this.root=cg.createRoot(this.containerEl),this.type&&this.root.render(C(this.type,this.props))}setProps(e){this.props=e,this.root?.render(C(this.type,this.props))}render(e){this.root?.render(e)}onunload(){let e=this.root;this.root=null,e?.unmount(),this.containerEl.empty()}};N(),ia(),Ia(),X(),Hi(),I(),Os();var ug=e=>({...e,createdAtStr:R.getDateTimeString(e.createdAt),dateStr:R.getDateString(e.createdAt)});async function dg(e){let t=[];for(let n of[...e.matchAll(ea)]){if(n.length!==3)continue;let e=Y.getMemoById(n[2]);e&&t.push(ug(e))}for(let n of gs(e)){let[e,r]=n.split(`#^`);if(!e||!r)continue;let i=await Y.getLinkedMemoByBlockId(r,e);i&&!t.some(e=>e.id===i.id)&&t.push(ug(i))}return t}async function fg(e){let t=await Y.getLinkedMemos(e.id),n=e.hasId&&e.path?await Y.getLinkedMemosByLinkId(e.hasId,e.path):[];return Array.from(new Map([...t,...n].map(e=>[e.id,e])).values()).sort((e,t)=>R.getTimeStampByDate(t.createdAt)-R.getTimeStampByDate(e.createdAt)).map(ug)}var pg=class extends Mh{memo;timeEl=null;contentBridge=null;linkedEls=[];renderToken=0;constructor(e){super(W.getState().app,`memo-card-dialog`),this.memo={...e,createdAtStr:R.getDateTimeString(e.createdAt)}}onBuild(){let e=this.bodyEl.createDiv(`memo-card-container`),t=e.createDiv(`header-container`);this.timeEl=t.createSpan({cls:$cg,text:this.memo.createdAtStr});let n=t.createDiv($1n),r=n.createEl($7,{cls:`btn edit-btn`});(0,d.setIcon)(r,$d4),r.addEventListener($05,()=>{let e=this.memo.id;this.close(),G.setEditMemoId(e)});let i=n.createEl($7,{cls:$6t});(0,d.setIcon)(i,`x`),i.addEventListener($05,()=>this.close());let a=e.createDiv($il).createDiv($4d);e.createDiv(`layer-container`),this.contentBridge=this.mount(new lg(a)),this.renderMemo()}setMemo(e){this.memo={...e,createdAtStr:R.getDateTimeString(e.createdAt)},this.timeEl?.setText(this.memo.createdAtStr),this.renderMemo()}renderMemo(){this.contentBridge?.render(C(ig,{memo:this.memo,handleMemoContentClick:e=>this.handleContentClick(e),handleMemoDoubleClick:()=>void 0}));for(let e of this.linkedEls)e.detach();this.linkedEls=[];let e=++this.renderToken;(async()=>{try{let[t,n]=await Promise.all([dg(this.memo.content),fg(this.memo)]);if(e!==this.renderToken)return;this.renderLinkedGroup(t,`${F(61)} ${t.length} THINO `),this.renderLinkedGroup(n,`${n.length} THINO ${F(95)} THINO`)}catch(e){console.error($35,e)}})()}renderLinkedGroup(e,t){if(!e.length)return;let n=this.bodyEl.createDiv(`linked-memos-wrapper`);this.linkedEls.push(n),n.createSpan({cls:$1k,text:t});for(let t of e){let e=zi(Aa(t.content)).replaceAll(`
  116. `,` `),r=n.createDiv(`linked-memo-container`);r.createSpan({cls:$cg,text:`${t.dateStr} `}),r.appendText(e),r.addEventListener($05,()=>this.setMemo(t))}}handleContentClick(e){let t=e.target;if(t.className!==$40)return;let n=Y.getMemoById(t.dataset?.value??``);n?this.setMemo(n):(new d.Notice(F(276)),t.classList.remove($40))}};function mg(e){new pg(e).open()}wn();var hg=async e=>{if(!e.style.backgroundImage.includes(`url(`)&&!e.style.backgroundImage.includes($4t))return;let t=e.style.backgroundImage.includes(`url(`)?e.style.backgroundImage.slice(5,-2):e.style.backgroundImage;if(t)return t.startsWith($38)&&(t=t.replace($52,``),t=decodeURIComponent(t).replace(/\?(.*)$/,``).replace(Sn()?.vault.adapter.basePath,``),t=(0,d.normalizePath)(decodeURIComponent(t))),await Ah(t)},gg=async e=>{if(e.getAttribute($9a))return e?.src?.startsWith($38)?await Ah(e.getAttribute($46)||(0,d.normalizePath)(e?.parentElement.getAttribute($9a))):await Ah(e.getAttribute($9a))},_g=Ng(),vg=Pg(),yg=Fg(),bg=Ig(),xg={copyDefaultStyles:!0,imagePlaceholder:void 0,cacheBust:!1,useCredentials:!1,httpTimeout:3e4,styleCaching:`strict`,corsImg:void 0},Sg={toCanvas:Eg,impl:{fontFaces:yg,images:bg,util:_g,inliner:vg,urlCache:[],options:{}}},Cg=(typeof Node<`u`?Node.ELEMENT_NODE:void 0)||1,wg=(e,t)=>((e&&e.ownerDocument?e.ownerDocument.defaultView:void 0)||window).getComputedStyle(e,t);function Tg(e,t){let n=Sg.impl.util.getWindow(e);t||={},Dg(t),t.extraCssRules=[];let r=[];return Promise.resolve(e).then(i).then(function(e){return Ag(e,t,null,n)}).then(function(e){return jg(e,t)}).then(Mg).then(s).then(c).then(a).then(o);function i(e){if(e.nodeType===Cg)return e;let t=e,n=e.parentNode,i=document.createElement($8);return n.replaceChild(i,t),i.append(e),r.push({parent:n,child:t,wrapper:i}),i}function a(e){for(;r.length>0;){let e=r.pop();e.parent.replaceChild(e.child,e.wrapper)}return e}function o(e){return Sg.impl.urlCache=[],Wg(),e}function s(e){t.bgcolor&&(e.style.backgroundColor=t.bgcolor),t.width&&(e.style.width=`${t.width}px`),t.height&&(e.style.height=`${t.height}px`),t.style&&Object.keys(t.style).forEach(function(n){e.style[n]=t.style[n]});let n=null;return typeof t.onclone==$z&&(n=t.onclone(e)),Promise.resolve(n).then(function(){return e})}function c(e){let n=t.width||_g.width(e),r=t.height||_g.height(e);return Promise.resolve(e).then(function(e){return e.setAttribute(`xmlns`,$39),new XMLSerializer().serializeToString(e)}).then(_g.escapeXhtml).then(function(e){let t=(_g.isDimensionMissing(n)?` width="100%"`:` width="${n}"`)+(_g.isDimensionMissing(r)?` height="100%"`:` height="${r}"`);return`<svg xmlns="http://www.w3.org/2000/svg"${(_g.isDimensionMissing(n)?``:` width="${n}"`)+(_g.isDimensionMissing(r)?``:` height="${r}"`)}>${i()}<foreignObject${t}>${e}</foreignObject></svg>`}).then(function(e){return`data:image/svg+xml;charset=utf-8,${e}`});function i(){let e=t.extraCssRules||[];if(e.length===0)return``;let n=e.join(`
  117. `).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`);return`<style>${_g.escapeXhtml(n)}</style>`}}}function Eg(e,t){return Og(e,t)}function Dg(e){e.copyDefaultStyles===void 0?Sg.impl.options.copyDefaultStyles=xg.copyDefaultStyles:Sg.impl.options.copyDefaultStyles=e.copyDefaultStyles,e.imagePlaceholder===void 0?Sg.impl.options.imagePlaceholder=xg.imagePlaceholder:Sg.impl.options.imagePlaceholder=e.imagePlaceholder,e.cacheBust===void 0?Sg.impl.options.cacheBust=xg.cacheBust:Sg.impl.options.cacheBust=e.cacheBust,e.corsImg===void 0?Sg.impl.options.corsImg=xg.corsImg:Sg.impl.options.corsImg=e.corsImg,e.useCredentials===void 0?Sg.impl.options.useCredentials=xg.useCredentials:Sg.impl.options.useCredentials=e.useCredentials,e.httpTimeout===void 0?Sg.impl.options.httpTimeout=xg.httpTimeout:Sg.impl.options.httpTimeout=e.httpTimeout,e.styleCaching===void 0?Sg.impl.options.styleCaching=xg.styleCaching:Sg.impl.options.styleCaching=e.styleCaching,Sg.impl.options.requestUrl=e.requestUrl}function Og(e,t){return t||={},Tg(e,t).then(_g.makeImage).then(function(r){let i=typeof t.scale==$0e?t.scale:1,a=n(e,i),o=a.getContext(`2d`);return o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,r&&(o.scale(i,i),o.drawImage(r,0,0)),a});function n(e,n){let r=t.width||_g.width(e),i=t.height||_g.height(e);_g.isDimensionMissing(r)&&(r=_g.isDimensionMissing(i)?300:i*2),_g.isDimensionMissing(i)&&(i=r/2);let a=document.createElement($4o);if(a.width=r*n,a.height=i*n,t.bgcolor){let e=a.getContext(`2d`);e.fillStyle=t.bgcolor,e.fillRect(0,0,a.width,a.height)}return a}}var kg=null;function Ag(e,t,n,r){let i=t.filter;if(e===kg||_g.isHTMLScriptElement(e)||_g.isHTMLStyleElement(e)||_g.isHTMLLinkElement(e)||n!==null&&i&&!i(e))return Promise.resolve();return Promise.resolve(e).then(a).then(function(t){return s(t,o(e))}).then(function(t){return c(t,e)});function a(e){return _g.isHTMLCanvasElement(e)?_g.makeImage(e.toDataURL()):e.cloneNode(!1)}function o(e){return _g.isElementHostForOpenShadowRoot(e)?e.shadowRoot:e}function s(e,n){let i=s(n),a=Promise.resolve();if(i.length!==0){let s=wg(o(n));_g.asArray(i).forEach(function(n){a=a.then(function(){return Ag(n,t,s,r).then(function(t){t&&e.appendChild(t)})})})}return a.then(function(){return e});function o(e){return _g.isShadowRoot(e)?e.host:e}function s(e){return _g.isShadowSlotElement(e)?e.assignedNodes():e.childNodes}}function c(e,r){if(!_g.isElement(e)||_g.isShadowSlotElement(r))return Promise.resolve(e);return Promise.resolve().then(i).then(a).then(o).then(s).then(function(){return e});function i(){a(r,e);function i(e,t){t.font=e.font,t.fontFamily=e.fontFamily,t.fontFeatureSettings=e.fontFeatureSettings,t.fontKerning=e.fontKerning,t.fontSize=e.fontSize,t.fontStretch=e.fontStretch,t.fontStyle=e.fontStyle,t.fontVariant=e.fontVariant,t.fontVariantCaps=e.fontVariantCaps,t.fontVariantEastAsian=e.fontVariantEastAsian,t.fontVariantLigatures=e.fontVariantLigatures,t.fontVariantNumeric=e.fontVariantNumeric,t.fontVariationSettings=e.fontVariationSettings,t.fontWeight=e.fontWeight}function a(e,r){let a=wg(e);if(a.cssText){for(let e=0;e<a.length;e++){let t=a.item(e);r.style.setProperty(t,a.getPropertyValue(t),a.getPropertyPriority(t))}i(a,r.style)}else Rg(t,e,a,n,r),n===null&&([`inset-block`,`inset-block-start`,`inset-block-end`].forEach(e=>r.style.removeProperty(e)),[$1y,$2i,$4f,$1m].forEach(e=>{r.style.getPropertyValue(e)&&r.setCssProps({[e]:`0px`})}))}}function a(){let n=_g.uid();[`:before`,`:after`].forEach(function(e){i(e)});function i(i){let a=wg(r,i),o=a.getPropertyValue($65);if(o===``||o===$1i)return;let s=e.getAttribute($pl)||``;e.setAttribute($pl,`${s} ${n}`),(t.extraCssRules=t.extraCssRules||[]).push(c());function c(){return`${`.${n}:${i}`}{${a.cssText?e():t()}}`;function e(){return`${a.cssText} content: ${o};`}function t(){return`${_g.asArray(a).map(e).join(`; `)};`;function e(e){return`${e}: ${a.getPropertyValue(e)}${a.getPropertyPriority(e)?` !important`:``}`}}}}}function o(){_g.isHTMLTextAreaElement(r)&&(e.textContent=r.value),_g.isHTMLInputElement(r)&&e.setAttribute($3o,r.value)}function s(){_g.isSVGElement(e)&&(e.setAttribute(`xmlns`,$29),_g.isSVGRectElement(e)&&[$gu,$a1].forEach(function(t){let n=e.getAttribute(t);n&&e.style.setProperty(t,n)}))}}}function jg(e,t){return yg.resolveAll().then(function(n){return n!==``&&(t.extraCssRules=t.extraCssRules||[]).push(n),e})}function Mg(e){return bg.inlineAll(e).then(function(){return e})}function Ng(){let e=0;return{escape:C,isDataUrl:_,resolveUrl:y,getAndEncode:S,uid:b,delay:w,asArray:T,escapeXhtml:E,makeImage:x,width:ee,height:te,getWindow:t,isElement:a,isElementHostForOpenShadowRoot:n,isShadowRoot:r,isInShadowRoot:i,isHTMLElement:s,isHTMLCanvasElement:o,isHTMLInputElement:l,isHTMLImageElement:c,isHTMLLinkElement:u,isHTMLScriptElement:d,isHTMLStyleElement:f,isHTMLTextAreaElement:p,isShadowSlotElement:m,isSVGElement:h,isSVGRectElement:g,isDimensionMissing:v};function t(e){let t=e?e.ownerDocument:void 0;return(t?t.defaultView:void 0)||window}function n(e){return a(e)&&e.shadowRoot!==null}function r(e){return e instanceof t(e).ShadowRoot}function i(e){return e!==null&&Object.prototype.hasOwnProperty.call(e,`getRootNode`)&&r(e.getRootNode())}function a(e){return e instanceof t(e).Element}function o(e){return e instanceof t(e).HTMLCanvasElement}function s(e){return e instanceof t(e).HTMLElement}function c(e){return e instanceof t(e).HTMLImageElement}function l(e){return e instanceof t(e).HTMLInputElement}function u(e){return e instanceof t(e).HTMLLinkElement}function d(e){return e instanceof t(e).HTMLScriptElement}function f(e){return e instanceof t(e).HTMLStyleElement}function p(e){return e instanceof t(e).HTMLTextAreaElement}function m(e){return i(e)&&e instanceof t(e).HTMLSlotElement}function h(e){return e instanceof t(e).SVGElement}function g(e){return e instanceof t(e).SVGRectElement}function _(e){return e.search(/^(data:)/)!==-1}function v(e){return isNaN(e)||e<=0}function y(e,t){let n=document.implementation.createHTMLDocument(),r=n.createElement($nq);n.head.appendChild(r);let i=n.createElement(`a`);return n.body.appendChild(i),r.href=t,i.href=e,i.href}function b(){return`u${t()}${e++}`;function t(){return`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4)}}function x(e){return e===`data:,`?Promise.resolve():new Promise(function(t,n){let r=new Image;Sg.impl.options.useCredentials&&(r.crossOrigin=`use-credentials`),r.onload=function(){window&&window.requestAnimationFrame?window.requestAnimationFrame(function(){t(r)}):t(r)},r.onerror=n,r.src=e})}function S(e){let t=Sg.impl.urlCache.find(function(t){return t.url===e});return t||(t={url:e,promise:null},Sg.impl.urlCache.push(t)),t.promise===null&&(Sg.impl.options.cacheBust&&(e+=(/\?/.test(e)?`&`:`?`)+new Date().getTime()),Sg.impl.options.requestUrl&&/^http/.test(e)?t.promise=Sg.impl.options.requestUrl({url:e,method:$3i}).then(e=>new Promise(t=>{let n=new FileReader;n.onload=function(e){t(e.target.result)},n.readAsDataURL(new Blob([e.arrayBuffer],{type:e.headers[`content-type`]}))})).catch(t=>(console.error(`cannot fetch resource: `+e+`, error: `+t),``)):t.promise=new Promise(function(t){let n=Sg.impl.options.httpTimeout,r=new XMLHttpRequest;if(r.onreadystatechange=a,r.ontimeout=o,r.responseType=`blob`,r.timeout=n,Sg.impl.options.useCredentials&&(r.withCredentials=!0),Sg.impl.options.corsImg&&e.indexOf($4t)===0&&e.indexOf(window.location.origin)===-1){let t=(Sg.impl.options.corsImg.method||$3i).toUpperCase()===$25?$25:$3i;r.open(t,(Sg.impl.options.corsImg.url||``).replace(`#{cors}`,e),!0);let n=!1,i=Sg.impl.options.corsImg.headers||{};Object.keys(i).forEach(function(e){i[e].indexOf($0d)!==-1&&(n=!0),r.setRequestHeader(e,i[e])});let a=s(Sg.impl.options.corsImg.data||``);Object.keys(a).forEach(function(t){typeof a[t]==$q&&(a[t]=a[t].replace(`#{cors}`,e))}),r.send(n?JSON.stringify(a):a)}else r.open($3i,e,!0),r.send();let i;if(Sg.impl.options.imagePlaceholder){let e=Sg.impl.options.imagePlaceholder.split(/,/);e&&e[1]&&(i=e[1])}function a(){if(r.readyState!==4)return;if(r.status>=300){i?t(i):c(`cannot fetch resource: ${e}, status: ${r.status}`);return}let n=new FileReader;n.onloadend=function(){t(n.result)},n.readAsDataURL(r.response)}function o(){i?t(i):c(`timeout of ${n}ms occured while fetching resource: ${e}`)}function s(e){try{return JSON.parse(JSON.stringify(e))}catch{c(`corsImg.data is missing or invalid`);return}}function c(e){console.error(e),t(``)}})),t.promise}function C(e){return e.replace(/([.*+?^${}()|[]\/\\])/g,`\\$1`)}function w(e){return function(t){return new Promise(function(n){window.setTimeout(function(){n(t)},e)})}}function T(e){let t=[],n=e.length;for(let r=0;r<n;r++)t.push(e[r]);return t}function E(e){return e.replace(/%/g,`%25`).replace(/#/g,`%23`).replace(/\n/g,`%0A`)}function ee(e){let t=ne(e,$gu);if(!isNaN(t))return t;let n=ne(e,`border-left-width`),r=ne(e,`border-right-width`);return e.scrollWidth+n+r}function te(e){let t=ne(e,$a1);if(!isNaN(t))return t;let n=ne(e,`border-top-width`),r=ne(e,`border-bottom-width`);return e.scrollHeight+n+r}function ne(e,t){if(e.nodeType===Cg){let n=wg(e).getPropertyValue(t);if(n.slice(-2)===`px`)return n=n.slice(0,-2),parseFloat(n)}return NaN}}function Pg(){let e=/url\(['"]?([^'"]+?)['"]?\)/g;return{inlineAll:i,shouldProcess:t,impl:{readUrls:n,inline:r}};function t(t){return t.search(e)!==-1}function n(t){let n=[],r;for(;(r=e.exec(t))!==null;)n.push(r[1]);return n.filter(function(e){return!_g.isDataUrl(e)})}function r(e,t,n,r){return Promise.resolve(t).then(function(e){return n?_g.resolveUrl(e,n):e}).then(r||_g.getAndEncode).then(function(n){return e.replace(i(t),`$1${n}$3`)});function i(e){return RegExp(`(url\\(['"]?)(${_g.escape(e)})(['"]?\\))`,`g`)}}function i(e,i,a){if(o())return Promise.resolve(e);return Promise.resolve(e).then(n).then(function(t){let n=Promise.resolve(e);return t.forEach(function(e){n=n.then(function(t){return r(t,e,i,a)})}),n});function o(){return!t(e)}}}function Fg(){return{resolveAll:e,impl:{readAll:t}};function e(){return t().then(function(e){return Promise.all(e.map(function(e){return e.resolve()}))}).then(function(e){return e.join(`
  118. `)})}function t(){return Promise.resolve(_g.asArray(document.styleSheets)).then(t).then(e).then(function(e){return e.map(n)});function e(e){return e.filter(function(e){return e.type===CSSRule.FONT_FACE_RULE}).filter(function(e){return vg.shouldProcess(e.style.getPropertyValue($9a))})}function t(e){let t=[];return e.forEach(function(e){if(Object.prototype.hasOwnProperty.call(Object.getPrototypeOf(e),`cssRules`))try{_g.asArray(e.cssRules||[]).forEach(t.push.bind(t))}catch(t){console.error(`domtoimage: Error while reading CSS rules from ${e.href}`,t.toString())}}),t}function n(e){return{resolve:function(){let t=(e.parentStyleSheet||{}).href;return vg.inlineAll(e.cssText,t)},src:function(){return e.style.getPropertyValue($9a)}}}}}function Ig(){return{inlineAll:t,impl:{newImage:e}};function e(e){return{inline:t};function t(t){return _g.isDataUrl(e.src)?Promise.resolve():Promise.resolve(e.src).then(t||_g.getAndEncode).then(function(t){return new Promise(function(n){e.onload=n,e.onerror=n,e.src=t})})}}function t(n){if(!_g.isElement(n))return Promise.resolve(n);return r(n).then(function(){return _g.isHTMLImageElement(n)?e(n).inline():Promise.all(_g.asArray(n.childNodes).map(function(e){return t(e)}))});function r(e){let t=[`background`,`background-image`].map(function(t){let n=e.style.getPropertyValue(t),r=e.style.getPropertyPriority(t);return n?vg.inlineAll(n).then(function(n){e.style.setProperty(t,n,r)}):Promise.resolve()});return Promise.all(t).then(function(){return e})}}}function Lg(e,t,n,r){let i=[`background-clip`].indexOf(t)>=0;r?(e.setProperty(t,n,r),i&&e.setProperty(`-webkit-${t}`,n,r)):(e.setProperty(t,n),i&&e.setProperty(`-webkit-${t}`,n))}function Rg(e,t,n,r,i){let a=Sg.impl.options.copyDefaultStyles?Hg(e,t):{},o=i.style;_g.asArray(n).forEach(function(e){let t=n.getPropertyValue(e),i=a[e],s=r?r.getPropertyValue(e):void 0;(t!==i||r&&t!==s)&&Lg(o,e,t,n.getPropertyPriority(e))})}var zg=null,Bg={},Vg=`ADDRESS.ARTICLE.ASIDE.BLOCKQUOTE.DETAILS.DIALOG.DD.DIV.DL.DT.FIELDSET.FIGCAPTION.FIGURE.FOOTER.FORM.H1.H2.H3.H4.H5.H6.HEADER.HGROUP.HR.LI.MAIN.NAV.OL.P.PRE.SECTION.SVG.TABLE.UL.math.svg.BODY.HEAD.HTML`.split(`.`);function Hg(e,t){let n=s(t),r=c(n);if(Bg[r])return Bg[r];let i=Ug(),a=l(i.document,n),o=u(i,a);return d(a),Bg[r]=o,o;function s(e){let t=[];do{if(e.nodeType===Cg){let n=e.tagName;if(t.push(n),Vg.includes(n))break}e=e.parentNode}while(e);return t}function c(t){return e.styleCaching===`relaxed`?t.filter((e,t,n)=>t===0||t===n.length-1).join(`>`):t.join(`>`)}function l(e,t){let n=e.body;do{let r=t.pop(),i=e.createElement(r);n.appendChild(i),n=i}while(t.length>0);return n.textContent=`​`,n}function u(e,t){let n={},r=e.getComputedStyle(t);return _g.asArray(r).forEach(function(e){n[e]=e===$gu||e===$a1?$4l:r.getPropertyValue(e)}),n}function d(e){do{let t=e.parentElement;t!==null&&t.removeChild(e),e=t}while(e&&e.tagName!==`BODY`)}}function Ug(){if(kg)return kg.contentWindow;let e=document.characterSet||`UTF-8`;kg=document.createElement(`iframe`),kg.id=`domtoimage-sandbox-`+_g.uid(),kg.className=`domtoimage-thino`,kg.setCssStyles({visibility:$5w,position:$9h}),document.body.appendChild(kg);let t=document.createElement(`meta`);return t.setAttribute(`charset`,e),kg.contentDocument.head.appendChild(t),kg.contentDocument.title=`domtoimage-sandbox`,kg.contentWindow}function Wg(){kg&&=(document.body.removeChild(kg),null),zg&&window.clearTimeout(zg),zg=window.setTimeout(()=>{zg=null,Bg={}},20*1e3)}async function Gg(e,t,n){return await Sg.toCanvas(e,{width:e.clientWidth,height:e.clientHeight,quality:1,scale:t?2:1,requestUrl:d.requestUrl,type:n})}Dn();var Kg=async(e,t)=>(P(t),(await Gg(e,!0,$o4)).toDataURL());function qg(e,t){let n=e.createDiv(`thino-shadow-host`),r=n.attachShadow({mode:`open`}),i=document.head.querySelector(`link[href="app.css"]`);if(i&&r.appendChild(i.cloneNode(!0)),t){let e=new CSSStyleSheet;e.replaceSync(t),r.adoptedStyleSheets=[...r.adoptedStyleSheets,e]}return{hostEl:n,root:r}}I();var Jg=`memoShareConfigV2`,Yg=[`linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)`,`linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%)`,`linear-gradient(120deg, #d4fc79 0%, #96e6a1 100%)`,`linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%)`,`linear-gradient(to right, #4facfe 0%, #00f2fe 100%)`,`linear-gradient(to right, #fa709a 0%, #fee140 100%)`,`linear-gradient(to right, #6a11cb 0%, #2575fc 100%)`,`linear-gradient(to top, #30cfd0 0%, #330867 100%)`,`linear-gradient(to top, #a8edea 0%, #fed6e3 100%)`,`linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%)`,`linear-gradient(to top, #9890e3 0%, #b1f4cf 100%)`,`linear-gradient(to right, #ff9a9e 0%, #fecfef 99%, #fecfef 100%)`,`linear-gradient(to right, #43e97b 0%, #38f9d7 100%)`],Xg=[{name:`点阵`,value:`radial-gradient(#cbd5e1 1px, transparent 1px)`,size:$47,bg:`#f8fafc`},{name:`网格`,value:`linear-gradient(#e2e8f0 1px, transparent 1px), linear-gradient(90deg, #e2e8f0 1px, transparent 1px)`,size:$47,bg:$4i},{name:`斜线`,value:`repeating-linear-gradient(45deg, transparent, transparent 10px, #e2e8f0 10px, #e2e8f0 11px)`,size:$47,bg:$4i},{name:`交叉`,value:`repeating-linear-gradient(45deg, #e2e8f0 0, #e2e8f0 1px, transparent 0, transparent 50%), repeating-linear-gradient(135deg, #e2e8f0 0, #e2e8f0 1px, transparent 0, transparent 50%)`,size:`16px 16px`,bg:$4i},{name:`波点`,value:`radial-gradient(circle, #d1d5db 2px, transparent 2px)`,size:`24px 24px`,bg:`#fafafa`},{name:`菱形`,value:`linear-gradient(135deg, #e5e7eb 25%, transparent 25%), linear-gradient(225deg, #e5e7eb 25%, transparent 25%), linear-gradient(45deg, #e5e7eb 25%, transparent 25%), linear-gradient(315deg, #e5e7eb 25%, transparent 25%)`,size:$47,bg:$4i},{name:`纸张`,value:`linear-gradient(#f1f5f9 1px, transparent 1px)`,size:`100% 28px`,bg:`#fffef0`},{name:`蓝格`,value:`linear-gradient(#dbeafe 1px, transparent 1px), linear-gradient(90deg, #dbeafe 1px, transparent 1px)`,size:$47,bg:$4i}],Zg={styleVariant:$3f,bgType:$3z,bgValue:Yg[0],bgColor:$4i,bgSize:$47,fontColor:`#334155`,fontFamily:`sans-serif`,fontSize:16,textAlign:$1y,borderRadius:`16px`,shadow:`0 20px 25px -5px rgb(0 0 0 / 0.1)`,padding:40,cardBgColor:`rgba(255, 255, 255, 0.9)`,showAvatar:!0,showAuthor:!0,footerMode:$ip,footerText:`Created with Thino`,showLogo:!0,showOuterFrame:!1,outerPadding:40,outerBgType:$4a,outerBgValue:`#e5e5e5`},Qg=[`bgType`,`bgValue`,`bgColor`,$ox,`fontFamily`,$kr,`shadow`,`padding`,`cardBgColor`,$pa,$oh,$og,$o1],$g=[[$3f,F(1015),``],[`vintage`,F(986),`color|#e6dccd|#e6dccd|#5c4033|"Kaiti SC", "STKaiti", "KaiTi", serif|2px|0 10px 15px -3px rgb(0 0 0 / 0.1)|50|#fffbf0|center|0||pattern`],[`cyber`,F(947),`color|#0f172a|#0f172a|#4ade80|monospace|8px|none|32|#1e293b||||heatmap`],[`outline`,F(930),`pattern|~1||#000000||0px|none||#ffffff`],[`classic-gradient`,F(564),`|@4||#1e293b|||||rgba(255, 255, 255, 0.95)||||heatmap`],[`nordic`,F(983),`color|#F1F5F9|#F1F5F9|||12px|0 4px 6px -1px rgb(0 0 0 / 0.05)|48|#ffffff`],[`japanese`,F(982),`color|#E6E4E0|#E6E4E0|#2c2c2c|"Hiragino Mincho ProN", "Yu Mincho", "SimSun", serif|2px|0 1px 3px rgb(0 0 0 / 0.1)|48|#FDFBF7||0||pattern`],[`social`,F(973),`|@8|#FFF1EB|#1e293b||24px|0 25px 50px -12px rgb(0 0 0 / 0.15)|36|#ffffff`],[`magazine`,F(977),`color|#0F172A|#0F172A|#000000|"Times New Roman", "Georgia", serif|0px|0 20px 25px -5px rgb(255 255 255 / 0.1)||#ffffff||||none`],[$md,F(971),`pattern|~1|#fefce8|#4b5563|"Comic Sans MS", "Chalkboard SE", cursive|4px|2px 4px 12px rgba(0, 0, 0, 0.08)||#fffbeb`],[`colorful`,F(938),`|@11||#ffffff||20px|0 20px 25px -5px rgba(0, 0, 0, 0.2)||rgba(255, 255, 255, 0.2)|center|||none`]];function e_(e,t){let n=t.split(`|`),r={name:e};return Qg.forEach((e,t)=>{let i=Zg[e],a=n[t]??``;a?typeof i==$0e?r[e]=Number(a):typeof i==$2s?r[e]=a===`1`:a[0]===`@`?r[e]=Yg[Number(a.slice(1))]:a[0]===`~`?r[e]=Xg[Number(a.slice(1))].value:r[e]=a:r[e]=i}),r}var t_=Object.fromEntries($g.map(([e,t,n])=>[e,e_(t,n)])),n_=Object.keys(t_);function r_(e){if(!e)return{...Zg};try{return{...Zg,...JSON.parse(e)}}catch{return{...Zg}}}function i_(e,t){let{name:n,...r}=t_[t];return{...e,styleVariant:t,...r}}function a_(e,t){return n_[(n_.indexOf(e)+(t===`next`?1:-1)+n_.length)%n_.length]}function o_(e){switch(e.bgType){case $4a:return{"background-color":e.bgValue};case $3z:return{background:e.bgValue};case $b9:return{"background-color":e.bgColor,"background-image":e.bgValue,"background-size":e.bgSize||$47,"background-repeat":`repeat`};case $53:return{"background-image":e.bgValue,"background-size":`cover`,"background-position":$1f,"background-repeat":`no-repeat`};default:return{}}}function s_(e){return{"--card-bg":e.cardBgColor,"--card-text":e.fontColor,"--card-font":e.fontFamily,"--card-font-size":`${e.fontSize}px`,"--card-radius":e.borderRadius,"--card-shadow":e.shadow,"--card-padding":`${e.padding}px`}}function c_(e){if(!e.showOuterFrame)return{};let t={padding:`${e.outerPadding}px`,display:`flex`,"align-items":$1f,"justify-content":$1f,width:`fit-content`};return e.outerBgType===$4a?t[`background-color`]=e.outerBgValue:e.outerBgType===$3z&&(t.background=e.outerBgValue),t}function l_(e,t=new Date){let n=[];for(let r=13;r>=0;r--){let i=new Date(t);i.setDate(i.getDate()-r);let a=i.toISOString().split(`T`)[0],o=e.filter(e=>new Date(e.createdAt).toISOString().split(`T`)[0]===a).length;n.push({date:a,count:o})}return n}var u_=`--thino-share-card`;function d_(e){for(let t of e){let e;try{e=t.cssRules}catch{continue}for(let t of Array.from(e)){let e=t.conditionText;if(typeof e!=$q||!e.includes(u_))continue;let n=t.cssRules;if(n)return Array.from(n).map(e=>e.cssText).join(``)}}return``}var f_=null;function p_(){return f_===null&&(f_=d_(Array.from(document.styleSheets))),f_}I(),wi(),rr(),Ia(),ia(),wn();var m_=(e,t)=>{let n=window.atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r);for(let e=0;e<n.length;e++)i[e]=n.charCodeAt(e);return new Blob([r],{type:t})},h_=async e=>{let t=e.querySelector(`.avatar`);if(!(t&&!/(http|app|base64)/.test(t?.style?.backgroundImage))&&t&&t?.style?.backgroundImage){let e=await hg(t);t.style.backgroundImage=`url("${e}")`}},g_=async e=>{let t=e.querySelectorAll($6y);for(let e of t)e.src.startsWith($38)?e.src=await Ah(e.getAttribute($46)||(0,d.normalizePath)(e?.parentElement?.getAttribute($9a)||``)):e.src=await gg(e)},__=(e,t)=>{let n=e.createSpan({cls:$89});return(0,d.setIcon)(n,t),n},v_=(e,t)=>(e.addEventListener($05,t),e),y_=(e,t,n,r)=>v_(e.createEl($7,{cls:t,text:n}),r),b_=(e,t,n,r,i)=>{let a=e.createEl($7,{cls:`action-btn ${t}`});return __(a,n),a.createSpan({cls:`action-label`,text:r}),v_(a,i)},x_=(e,t,n,r)=>{e&&(e.disabled=t,e.querySelector(`.action-label`)?.setText(t?n:r))},S_=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},C_=class extends d.Component{config;shortcutImgEl=null;outerEl;cardEl;bgImageEl;contentLayerEl;bodyEl;timestampEl;variableEls=[];footerEl;initialized=!1;generateTimer=0;constructor(e,t,n){super(),this.wrapperEl=e,this.host=t,this.config=n}onload(){let{root:e}=qg(this.wrapperEl,p_());this.outerEl=e.createDiv(`share-outer-container`),this.cardEl=this.outerEl.createDiv(`memo-share-card`),this.bgImageEl=this.cardEl.createDiv(`card-bg-layer`).createDiv(`bg-image`),this.contentLayerEl=this.cardEl.createDiv(`card-content-layer`),this.bodyEl=this.contentLayerEl.createDiv(`card-body`),this.timestampEl=this.contentLayerEl.createDiv({cls:`card-timestamp`,text:this.host.memo.createdAtStr}),this.footerEl=this.contentLayerEl.createDiv($ma),this.applyConfig(),window.requestAnimationFrame(()=>void this.renderContent()),this.scheduleGenerate()}onunload(){window.clearTimeout(this.generateTimer)}setConfig(e){this.config=e,this.applyConfig(),this.initialized&&(this.initialized=!1,this.setShortcutImage(``),this.scheduleGenerate())}async renderContent(){this.bodyEl.empty(),this.bodyEl.addClasses([$32,`markdown-preview-view`]),await d.MarkdownRenderer.render(this.host.app,this.host.memo.content+`
  119. `,this.bodyEl,this.host.memo.path,this)}scheduleGenerate(){window.clearTimeout(this.generateTimer),this.generateTimer=window.setTimeout(()=>{this.generateImage()},200)}async generateImage(){let e=this.outerEl;e&&(await h_(e),await g_(e),window.setTimeout(()=>{Kg(e,{pixelRatio:window.devicePixelRatio*2}).then(e=>{this.initialized=!0,this.setShortcutImage(e),this.host.onImageGenerated(e)}).catch(e=>{console.error(`Generate image failed:`,e)})},300))}setShortcutImage(e){if(!e){this.shortcutImgEl?.detach(),this.shortcutImgEl=null;return}this.shortcutImgEl||(this.shortcutImgEl=this.wrapperEl.createEl($6y,{cls:`memo-shortcut-img`,attr:{alt:`Preview`}}),this.wrapperEl.insertBefore(this.shortcutImgEl,this.wrapperEl.firstChild),v_(this.shortcutImgEl,()=>this.host.onPreviewClick(this.shortcutImgEl?.src??``))),this.shortcutImgEl.src=e}applyConfig(){let{config:e}=this;this.outerEl.toggleClass(`has-frame`,e.showOuterFrame),this.outerEl.removeAttribute($pr),e.showOuterFrame&&S_(this.outerEl,c_(e)),this.cardEl.dataset.theme=e.styleVariant,S_(this.cardEl,s_(e)),this.bgImageEl.removeAttribute($pr),S_(this.bgImageEl,o_(e)),this.contentLayerEl.style.textAlign=e.textAlign,this.renderVariableParts(),this.renderFooter()}renderVariableParts(){for(let e of this.variableEls)e.detach();this.variableEls=[];let{config:e}=this,t=createDiv();switch(e.styleVariant){case`vintage`:for(let e of[`top-left`,`top-right`,`bottom-left`,`bottom-right`])t.createDiv(`ancient-corner ${e}`);t.createDiv(`inner-border`);break;case`cyber`:{let e=t.createDiv(`cyber-dots`);for(let t=0;t<3;t++)e.createDiv(`dot`);break}case`nordic`:t.createDiv(`nordic-dot`);break;case`japanese`:{let e=t.createDiv(`japanese-decor`);e.createDiv(`stamp`),e.createDiv(`vertical-line`);break}case $md:t.createDiv(`tape-decoration`);break;case`magazine`:{let e=t.createDiv(`magazine-decor`);e.createDiv(`top-bar`),e.createDiv(`bottom-bar`),e.createDiv({cls:`side-text`,text:`ISSUE 01`});break}default:break}if(e.showAvatar||e.showAuthor){let n=t.createDiv(`card-header${e.textAlign===$1f?` center`:``}`);if(e.showAvatar){let e=n.createDiv(`avatar`),t=this.avatarUrl();t?e.style.backgroundImage=t:(0,d.setIcon)(e,$3n)}if(e.showAuthor){let e=n.createDiv(`user-meta`);e.createDiv({cls:`from-label`,text:`From`}),e.createDiv({cls:`username`,text:this.host.settings?.UserName||`Thino User`})}}this.variableEls=Array.from(t.children);for(let e of this.variableEls)this.contentLayerEl.insertBefore(e,this.bodyEl)}avatarUrl(){let e=this.host.settings?.MomentsIcon;return e?e.startsWith($4t)||e.startsWith(`data:`)?`url("${e}")`:`url("${this.host.app.vault.adapter.getResourcePath((0,d.normalizePath)(e))}")`:``}renderFooter(){let{config:e}=this;this.footerEl.empty();let t=this.footerEl.createDiv(`footer-left`);if(e.footerMode===$1q){let n=t.createDiv(`heatmap-display`);for(let t of l_(this.host.memos)){let r=t.count>4?4:t.count,i=n.createDiv({cls:`heatmap-cell level-${r}`,attr:{title:`${t.date}: ${t.count} memos`}});i.style.backgroundColor=e.fontColor}}else if(e.footerMode===$b9){let n=t.createDiv(`texture-decoration`);n.style.color=e.fontColor,n.createDiv(`line`),n.createDiv($lx),n.createDiv(`line`)}else e.footerMode===$ip&&e.footerText&&t.createSpan({cls:`footer-text`,text:e.footerText});if(!e.showLogo)return;let n=this.footerEl.createDiv(`footer-right`);e.styleVariant===`cyber`?__(n.createDiv(`footer-logo`).createDiv(`qr-placeholder`),`qr-code`):n.createSpan({text:$9g})}},w_=class extends d.Component{panelEl;contentEl;bgGridEl;bgOptionEls=[];footerTextEl=null;logoToggleRowEl;frameExtrasEl;lastBgType=null;lastFooterMode=null;lastFrameState=``;themeTabs=new Map;bgTabs=new Map;alignBtns=new Map;radiusBtns=new Map;shadowBtns=new Map;toggles=new Map;currentThemeEl=null;fontSizeValueEl=null;fontSizeInputEl=null;fontColorInputEl=null;footerSelectEl=null;fileInputEl;copyBtnEl=null;downloadBtnEl=null;viewPreviewBtnEl=null;exportMessageEl=null;constructor(e,t){super(),this.host=t,this.panelEl=e.createDiv(`share-config-panel`)}get config(){return this.host.getConfig()}update(e,t){this.host.setConfig({...this.config,[e]:t})}onload(){this.buildHeader(),this.buildContent(),this.buildFooter(),this.sync()}buildHeader(){let e=this.panelEl.createDiv(`panel-header`),t=e.createEl($6x,{cls:`panel-title`});__(t,$es),t.appendText(F(84));let n=e.createDiv($ot);(0,d.setIcon)(n,`x`),v_(n,()=>this.host.onClose())}buildContent(){this.contentEl=this.panelEl.createDiv(`panel-content custom-scrollbar`),this.host.isMobile&&this.buildMobileThemeSwitcher(),this.buildThemeSection(),this.buildBackgroundSection(),this.buildTypographySection(),this.buildHeaderSection(),this.buildFooterSection(),this.buildFrameSection(),this.buildFineTuningSection()}section(e,t){let n=this.contentEl.createDiv(`config-section`),r=n.createDiv(`section-title`);return __(r,t),r.appendText(e),n}buildMobileThemeSwitcher(){let e=this.section(F(997),`sun`);e.addClass(`mobile-theme-switcher`);let t=e.createDiv(`theme-nav`),n=t.createEl($7,{cls:`nav-btn`});__(n,$2v),n.appendText(F(417)),v_(n,()=>this.stepTheme(`prev`));let r=t.createEl($7,{cls:`nav-btn`});r.appendText(F(418)),__(r,$0z),v_(r,()=>this.stepTheme(`next`)),this.currentThemeEl=e.createDiv(`current-theme`)}stepTheme(e){let t=a_(this.config.styleVariant,e);this.host.setConfig(i_(this.config,t))}buildThemeSection(){let e=this.section(F(1024),$m0).createDiv(`config-tabs theme-presets`);for(let t of n_)this.themeTabs.set(t,y_(e,$gg,t_[t].name,()=>this.host.setConfig(i_(this.config,t))))}buildBackgroundSection(){let e=this.section(F(611),$53),t=e.createDiv($mb),n={color:F(1017),gradient:F(616),pattern:F(992),image:F(974)};for(let e of[$4a,$3z,$b9,$53])this.bgTabs.set(e,y_(t,$gg,n[e],()=>this.update(`bgType`,e)));this.bgGridEl=e.createDiv($c4),this.fileInputEl=e.createEl($09,{type:$44,attr:{accept:`image/*`,hidden:!0}}),this.fileInputEl.addEventListener($e2,()=>this.handleImageUpload())}rebuildBackgroundGrid(){let{config:e}=this;if(this.bgGridEl.empty(),this.bgOptionEls=[],e.bgType===$3z){for(let e of Yg){let t=this.gradientOption(this.bgGridEl,e,()=>this.update(`bgValue`,e));this.bgOptionEls.push({value:e,el:t})}return}if(e.bgType===$b9){for(let e of Xg){let t=v_(this.bgGridEl.createDiv($kw),()=>this.host.setConfig({...this.config,bgValue:e.value,bgColor:e.bg,bgSize:e.size}));t.style.backgroundColor=e.bg,t.style.backgroundImage=e.value,t.style.backgroundSize=e.size,this.bgOptionEls.push({value:e.value,el:t})}return}if(e.bgType===$4a){let t=this.colorPicker(this.bgGridEl,F(929),e=>this.host.setConfig({...this.config,bgValue:e,bgColor:e}));t.value=e.bgValue.startsWith(`#`)?e.bgValue:$4i;return}v_(this.bgGridEl.createDiv({cls:`color-option upload-btn`,text:`+ ${F(1029)}`}),()=>this.fileInputEl.click())}handleImageUpload(){let e=this.fileInputEl.files?.[0];if(!e)return;if(e.size>5*1024*1024){new d.Notice(F(613));return}let t=new FileReader;t.onload=e=>{let t=e.target?.result;this.host.setConfig({...this.config,bgType:$53,bgValue:`url("${t}")`})},t.onerror=()=>new d.Notice(F(612)),t.readAsDataURL(e),this.fileInputEl.value=``}buildTypographySection(){let e=this.section(F(1028),$gm),t=this.slider(e,F(965),`12`,`24`);this.fontSizeValueEl=t.valueEl,this.fontSizeInputEl=t.inputEl,t.inputEl.addEventListener($09,()=>this.update(`fontSize`,parseInt(t.inputEl.value,10))),this.fontColorInputEl=this.colorPicker(e,F(1022),e=>this.update($ox,e)),this.buttonGroup(e,$pa,[[$1y,F(975)],[$1f,F(932)]],this.alignBtns)}addToggle(e,t,n){let r=e.createDiv(`config-toggle`);r.createSpan({cls:`toggle-label`,text:t});let i=r.createDiv(`toggle-switch`);return i.createDiv(`thumb`),v_(i,()=>this.update(n,!this.config[n])),this.toggles.set(n,i),r}gradientOption(e,t,n){let r=v_(e.createDiv($kw),n);return r.style.background=t,r}colorPicker(e,t,n){let r=e.createDiv(`config-color-picker`);r.createSpan({cls:`color-label`,text:t});let i=r.createEl($09,{type:$4a});return i.addEventListener($09,()=>n(i.value)),i}slider(e,t,n,r){let i=e.createDiv(`config-slider`),a=i.createDiv(`slider-header`);return a.createSpan({cls:`slider-label`,text:t}),{valueEl:a.createSpan(`slider-value`),inputEl:i.createEl($09,{type:`range`,attr:{min:n,max:r}})}}buttonGroup(e,t,n,r){let i=e.createDiv(`config-button-group`);for(let[e,a]of n)r.set(e,y_(i,`group-btn`,a,()=>this.update(t,e)))}buildHeaderSection(){let e=this.section(F(972),`panel-top`);this.addToggle(e,F(1012),$oh),this.addToggle(e,F(1011),$og)}buildFooterSection(){let e=this.section(F(966),`panel-bottom`),t=e.createDiv(`config-select`);t.createEl($l1,{cls:$lb,text:F(967)}),this.footerSelectEl=t.createEl($ef);let n=[[$ip,F(1016)],[$1q,F(923)],[$b9,F(948)],[$1i,F(536)]];for(let[e,t]of n)this.footerSelectEl.createEl($a5,{value:e,text:t});this.footerSelectEl.addEventListener($e2,()=>this.update($o1,this.footerSelectEl?.value??$ip)),this.logoToggleRowEl=this.addToggle(e,F(1013),`showLogo`)}syncFooterText(){let{config:e}=this;if(e.footerMode===$1i){this.footerTextEl?.detach(),this.footerTextEl=null;return}if(this.footerTextEl)return;let t=createDiv(`config-input`);t.createEl($l1,{cls:`input-label`,text:F(968)});let n=t.createEl($09,{type:$0l,attr:{placeholder:F(957)}});n.value=e.footerText,n.addEventListener($09,()=>this.update(`footerText`,n.value)),this.logoToggleRowEl.parentElement?.insertBefore(t,this.logoToggleRowEl),this.footerTextEl=t}buildFrameSection(){let e=this.section(F(85),`maximize`);this.addToggle(e,F(86),`showOuterFrame`),this.frameExtrasEl=e.createDiv(`thino-frame-extras`)}rebuildFrameExtras(){let{config:e}=this;if(this.frameExtrasEl.empty(),!e.showOuterFrame)return;let{valueEl:t,inputEl:n}=this.slider(this.frameExtrasEl,F(87),`0`,`100`);t.setText(`${e.outerPadding}px`),n.value=String(e.outerPadding),n.addEventListener($09,()=>{t.setText(`${n.value}px`),this.update(`outerPadding`,parseInt(n.value,10))});let r=this.frameExtrasEl.createDiv($mb);for(let t of[$4a,$3z])y_(r,$gg,F(t===$4a?1017:616),()=>this.update(`outerBgType`,t)).toggleClass($0v,e.outerBgType===t);if(e.outerBgType===$4a){let t=this.colorPicker(this.frameExtrasEl,F(88),e=>this.update($l8,e));t.value=e.outerBgValue.startsWith(`#`)?e.outerBgValue:`#e5e5e5`;return}let i=this.frameExtrasEl.createDiv($c4);for(let t of Yg)this.gradientOption(i,t,()=>this.update($l8,t)).toggleClass($0v,e.outerBgValue===t)}buildFineTuningSection(){let e=this.section(F(963),$42).createDiv(`config-fine-tuning`);this.labelledGroup(e,F(931),$kr,[[`0px`,F(1010)],[`16px`,F(1004)],[`32px`,F(969)]],this.radiusBtns),this.labelledGroup(e,F(1009),`shadow`,[[$1i,F(536)],[`0 10px 15px -3px rgb(0 0 0 / 0.1)`,F(984)],[`0 20px 25px -5px rgb(0 0 0 / 0.2)`,F(1018)]],this.shadowBtns)}labelledGroup(e,t,n,r,i){let a=e.createDiv();a.createEl($l1,{cls:$lb,text:t}),this.buttonGroup(a,n,r,i)}buildFooter(){if(this.host.isMobile){let e=this.panelEl.createDiv(`mobile-preview-btn`).createEl($7,{cls:`preview-btn`});__(e,`eye`),e.appendText(F(970)),v_(e,()=>this.host.onPreview());return}let e=this.panelEl.createDiv(`panel-footer`);this.viewPreviewBtnEl=e.createEl($7,{cls:`view-preview-btn`}),__(this.viewPreviewBtnEl,`maximize-2`),this.viewPreviewBtnEl.appendText(F(1032)),v_(this.viewPreviewBtnEl,()=>this.host.onViewFullPreview());let t=e.createDiv(`action-buttons`);this.copyBtnEl=b_(t,$p8,$27,F(942),()=>this.host.onExport($27)),this.downloadBtnEl=b_(t,`primary`,$37,F(1005),()=>this.host.onExport($37)),this.exportMessageEl=e.createDiv(`export-message`)}setExportState(e,t,n){x_(this.copyBtnEl,e,$6f,F(942)),x_(this.downloadBtnEl,e,F(401),F(1005)),this.viewPreviewBtnEl?.toggleClass($01,!n),this.exportMessageEl?.setText(t),this.exportMessageEl?.toggleClass($01,!t)}sync(){let{config:e}=this;for(let[t,n]of this.themeTabs)n.toggleClass($0v,e.styleVariant===t);for(let[t,n]of this.bgTabs)n.toggleClass($0v,e.bgType===t);for(let[t,n]of this.alignBtns)n.toggleClass($0v,e.textAlign===t);for(let[t,n]of this.radiusBtns)n.toggleClass($0v,e.borderRadius===t);for(let[t,n]of this.shadowBtns)n.toggleClass($0v,e.shadow===t);for(let[t,n]of this.toggles)n.toggleClass($0v,!!e[t]);this.currentThemeEl?.setText(`${F(944)}: ${t_[e.styleVariant].name}`),this.fontSizeValueEl?.setText(`${e.fontSize}px`),this.fontSizeInputEl&&(this.fontSizeInputEl.value=String(e.fontSize)),this.fontColorInputEl&&(this.fontColorInputEl.value=e.fontColor),this.footerSelectEl&&(this.footerSelectEl.value=e.footerMode),this.lastBgType!==e.bgType&&(this.lastBgType=e.bgType,this.rebuildBackgroundGrid());for(let{value:t,el:n}of this.bgOptionEls)n.toggleClass($0v,e.bgValue===t);this.lastFooterMode!==e.footerMode&&(this.lastFooterMode=e.footerMode,this.syncFooterText());let t=`${String(e.showOuterFrame)}:${e.outerBgType}:${e.outerBgValue}`;this.lastFrameState!==t&&(this.lastFrameState=t,this.rebuildFrameExtras())}},T_=class extends Mh{memo;memos;settings;config;card=null;panel=null;previewAreaEl=null;contentEl2=null;overlayEl=null;styleIndicatorEl=null;mobileStep=$d4;isExporting=!1;exportMessage=``;shortcutImgUrl=``;exportResetTimer=0;constructor(e){super(L.getState().dailyNotesState.app??Sn(),`share-memo-image-dialog`),this.settings=L.getState().dailyNotesState.settings,this.memos=L.getState().memoState.memos,this.memo={...e,createdAtStr:R.getDateTimeString(e.createdAt)},this.config=r_(this.app.loadLocalStorage(Jg))}get isMobile(){return d.Platform.isMobile}onBuild(){let e=this.bodyEl.createDiv($8p);e.dataset.step=this.mobileStep,this.contentEl2=e;let t=e.createDiv(`share-preview-area`);if(this.previewAreaEl=t,this.isMobile){let e=t.createDiv(`mobile-back-btn`);__(e,$6r),e.appendText(F(928)),v_(e,()=>this.setMobileStep($d4)),e.toggleClass($01,this.mobileStep!==$8b),this.mobileBackEl=e}if(this.styleIndicatorEl=t.createDiv({cls:`style-indicator`,text:t_[this.config.styleVariant].name}),!this.isMobile)for(let e of[`prev`,`next`]){let n=t.createEl($7,{cls:`preview-nav-btn ${e}`});__(n,e===`prev`?$2v:$0z),v_(n,()=>this.stepTheme(e))}let n=t.createDiv(`memo-share-card-wrapper`);this.card=this.mount(new C_(n,{app:this.app,settings:this.settings,memos:this.memos,memo:this.memo,onImageGenerated:e=>{this.shortcutImgUrl=e,this.syncExportState()},onPreviewClick:e=>{e&&this.showFullscreenPreview()}},this.config)),this.isMobile&&this.buildMobileActionBar(t),this.panel=this.mount(new w_(e,{isMobile:this.isMobile,getConfig:()=>this.config,setConfig:e=>this.setConfig(e),onClose:()=>this.close(),onExport:e=>void this.handleExport(e),onPreview:()=>this.setMobileStep($8b),onViewFullPreview:()=>this.showFullscreenPreview()})),this.syncExportState()}mobileBackEl=null;mobileCopyBtnEl=null;mobileDownloadBtnEl=null;mobileActionBarEl=null;buildMobileActionBar(e){let t=e.createDiv(`mobile-action-bar`);this.mobileActionBarEl=t,this.mobileCopyBtnEl=b_(t,$p8,$27,F(942),()=>void this.handleExport($27)),this.mobileDownloadBtnEl=b_(t,`primary`,$37,F(304),()=>{this.handleExport($37)}),t.toggleClass($01,this.mobileStep!==$8b)}onTeardown(){window.clearTimeout(this.exportResetTimer),this.overlayEl?.detach(),this.overlayEl=null}setConfig(e){this.config=e,this.app.saveLocalStorage(Jg,JSON.stringify(e)),this.styleIndicatorEl?.setText(t_[e.styleVariant].name),this.card?.setConfig(e),this.panel?.sync(),this.shortcutImgUrl=``,this.syncExportState()}stepTheme(e){this.setConfig(i_(this.config,a_(this.config.styleVariant,e)))}setMobileStep(e){this.mobileStep=e,this.contentEl2&&(this.contentEl2.dataset.step=e),this.mobileBackEl?.toggleClass($01,e!==$8b),this.mobileActionBarEl?.toggleClass($01,e!==$8b)}syncExportState(){this.panel?.setExportState(this.isExporting,this.exportMessage,!!this.shortcutImgUrl),x_(this.mobileCopyBtnEl,this.isExporting,$6f,F(942)),x_(this.mobileDownloadBtnEl,this.isExporting,F(401),F(304))}showFullscreenPreview(){if(!this.shortcutImgUrl||this.overlayEl)return;let e=this.bodyEl.createDiv(`fullscreen-preview-overlay`);this.bodyEl.insertBefore(e,this.bodyEl.firstChild);let t=e.createDiv(`fullscreen-preview-content`);t.createEl($6y,{attr:{src:this.shortcutImgUrl,alt:`Preview`}}),t.createDiv({cls:`fullscreen-preview-hint`,text:F(937)}),v_(e,()=>{e.detach(),this.overlayEl=null}),this.overlayEl=e}async handleExport(e){if(!this.shortcutImgUrl){new d.Notice(F(89));return}this.isExporting=!0,this.exportMessage=F(401),this.syncExportState();try{let t=m_(this.shortcutImgUrl.split($ls)[1],$14);if(e===$37){let e=await t.arrayBuffer(),{vault:n}=this.app,r=Un(),i;for(let e in r)if(r[e]instanceof d.TFile){i=r[e];break}if(i){let t=await n.getAvailablePathForAttachments(`Thino_Share_${(0,d.moment)().format($08)}`,$jw,i);await n.createBinary(t,e),this.exportMessage=F(861),new d.Notice(F(511))}}else await navigator.clipboard.write([new ClipboardItem({"image/png":t})]),this.exportMessage=F(941),new d.Notice(F(620))}catch(t){console.error(`Export failed:`,t),this.exportMessage=F(960),new d.Notice(F(e===$27?618:1006))}this.syncExportState(),this.exportResetTimer=window.setTimeout(()=>{this.isExporting=!1,this.exportMessage=``,this.syncExportState()},2e3)}};function E_(e,t,n){new T_(e).open()}N();function D_({mouseEnterDelayMS:e=0,mouseLeaveDelayMS:t=0}={}){let[n,r]=D(!1),i,a;return[n,{onMouseEnter:()=>{window.clearTimeout(a),i=window.setTimeout(()=>r(!0),e)},onMouseLeave:()=>{window.clearTimeout(i),a=window.setTimeout(()=>r(!1),t)}}]}I(),X(),Wl(),Gp(),kp();var O_=e=>{let t=new Map;for(let n of e){let e=n.path;t.has(e)||t.set(e,[]),t.get(e)?.push(n)}return Array.from(t).map(([e,t])=>({path:e,thinos:t}))},k_=async()=>await Up(),A_=class extends d.Modal{constructor(e,t,n){super(e),this.title=t,this.cb=n}onOpen(){super.onOpen(),this.containerEl.toggleClass($2m,!0),this.titleEl.setText(this.title+` `+F(213)),this.contentEl.createEl($7,{cls:$8s,text:F(213).replace(/\?|?/,``)}).onclick=()=>{this.cb(`confirm`),this.close()},this.contentEl.createEl($7,{text:F(305)}).onclick=()=>{this.cb(`cancel`),this.close()}}onClose(){super.onClose()}},j_=(e,t,n)=>{new A_(e,t,e=>{(async()=>{e===`confirm`&&await n()})()}).open()},M_=async e=>e?.length>0?await k_()?!0:(Op(),!1):!1,N_=(e,t)=>{t&&console.error($12,e),new d.Notice(e instanceof Error?e.message:String(e))},P_=e=>[e.filter(e=>e.sourceType===$00),e.filter(e=>e.sourceType!==$00)],F_=async(e,t={})=>{let[n,r]=P_(e);try{for(let e of await Y.archiveThinoBulk(r))e&&Y.editMemo(e);for(let{path:e,thinos:t}of O_(n))await Y.dealWithDailyThinoBulk(e,t,$11);t.updateTags&&Y.updateTagsState(),K.clearQuery()}catch(e){N_(e,t.logErrors!==!1)}},I_=async(e,t={})=>{let[n,r]=P_(e);try{for(let e of await Y.unarchiveThinoBulk(r))e&&Y.editMemo(e);for(let{path:e,thinos:t}of O_(n))await Y.dealWithDailyThinoBulk(e,t,$ec);new d.Notice(F(118)),t.updateTags&&Y.updateTagsState(),K.clearQuery()}catch(e){N_(e,t.logErrors!==!1)}},L_=async(e,t,n={})=>{let[r,i]=P_(e);try{for(let e of i)if(t)await Y.deleteMemoById(e.id);else{let t=await Y.hideMemoById(e.id);t&&Y.editMemo(t)}for(let{path:e,thinos:n}of O_(r))await Y.dealWithDailyThinoBulk(e,n,t?$6u:$5v);n.updateTags&&Y.updateTagsState(),K.clearQuery()}catch(e){N_(e,n.logErrors!==!1)}},R_=async(e,t={})=>{let[n,r]=P_(e);try{for(let e of r)await Y.deleteMemoById(e.id);for(let{path:e,thinos:t}of O_(n))for(let n of await Y.dealWithDailyThinoBulk(e,t,$6u))n?.webId?await q.syncDelete(n.webId):n&&await q.syncDeleteUnlinked(n.id);t.updateTags&&Y.updateTagsState(),K.clearQuery(),new d.Notice(F(119))}catch(e){N_(e,t.logErrors!==!1)}},z_=async(e,t={})=>{let[n,r]=P_(e);try{for(let e of r){let t=await Y.restoreMemoById(e.id);t?.webId&&await q.syncRecover(t.webId),t&&Y.editMemo(t)}for(let{path:e,thinos:r}of O_(n))for(let n of await Y.dealWithDailyThinoBulk(e,r,$f8))n?.webId&&await q.syncRecover(n.webId),t.editRestoredDaily&&n&&Y.editMemo(n);t.updateTags&&Y.updateTagsState(),K.clearQuery(),new d.Notice(F(118))}catch(e){N_(e,t.logErrors===!0)}};I(),X();function B_(e,t){return e.map(e=>{let n=e.createdAt,r=e.content;switch(t){case $0y:return`- ${r.split(`
  120. `).join(`
  121. `)}\n - ${F(353)}: ${n}`;case`callout`:return`> [!thino] ${n}\n${r.split(`
  122. `).map(e=>`> ${e}`).join(`
  123. `)}`;case`plain`:return r;default:return r}}).join($bh)}async function V_(e,t,n,r,i){try{let a=B_(t,r);await e.vault.append(n,`
  124. `+a+`
  125. `);let o=t.filter(e=>e.sourceType===$00),s=t.filter(e=>e.sourceType!==$00);if(i===$11){let e=await Y.archiveThinoBulk(s);for(let t of e)t&&Y.editMemo(t);let t=O_(o);for(let{path:e,thinos:n}of t)await Y.dealWithDailyThinoBulk(e,n,$11)}else if(i===$5v){for(let e of s){let t=await Y.hideMemoById(e.id);t&&Y.editMemo(t)}let e=O_(o);for(let{path:t,thinos:n}of e)await Y.dealWithDailyThinoBulk(t,n,$5v)}Y.updateTagsState(),new d.Notice(F(402))}catch(e){console.error(`Organize failed:`,e),new d.Notice(e instanceof Error&&e.message||F(403))}}var H_=class extends d.Modal{format=$0y;postAction=$11;constructor(e,t,n){super(e),this.memos=t,this.targetFile=n}onOpen(){let{contentEl:e}=this;this.titleEl.setText(F(376)),this.containerEl.toggleClass(`thino-organize-dialog`,!0),e.createEl(`p`,{text:`${F(400)}: ${this.targetFile.path}`,cls:`organize-target-path`}),new d.Setting(e).setName(F(393)).addDropdown(e=>{e.addOption($0y,F(394)).addOption(`callout`,F(395)).addOption(`plain`,F(396)).setValue(this.format).onChange(e=>{this.format=e})}),new d.Setting(e).setName(F(399)).addDropdown(e=>{e.addOption($11,F(397)).addOption($5v,F(398)).setValue(this.postAction).onChange(e=>{this.postAction=e})}),e.createEl(`p`,{text:`${this.memos.length} Thino(s)`,cls:`organize-memo-count`});let t=e.createDiv({cls:$1z});t.createEl($7,{text:F(305)}).addEventListener($05,()=>{this.close()});let n=t.createEl($7,{text:F(791),cls:$2c});n.addEventListener($05,()=>{(async()=>{n.disabled=!0,n.setText(F(401)),await V_(this.app,this.memos,this.targetFile,this.format,this.postAction),this.close()})()})}onClose(){this.contentEl.empty()}},U_=class extends d.FuzzySuggestModal{constructor(e,t){super(e),this.memos=t,this.setPlaceholder(F(392))}getItems(){return this.app.vault.getMarkdownFiles()}getItemText(e){return e.path}onChooseItem(e){new H_(this.app,this.memos,e).open()}};function W_(e,t){new U_(e,t).open()}function G_(e,t){for(let n of t)n&&e.addItem(e=>{e.setTitle(n[0]),n[1]&&e.setIcon(n[1]),n[3]&&e.setWarning(!0),e.onClick(n[2])});return e}function K_(e,t){e.addItem(n=>{let r=n.dom;r.empty(),r.toggleClass([`more-action-btn-group`,`more-action-menu-item`],!0);for(let n of t){if(!n)continue;let t=r.createSpan();t.toggleClass([`menu-item-icon`,`more-action-item-icon`],!0),t.onclick=t=>{t.stopPropagation(),t.preventDefault(),n[1](),e.close()},new d.ExtraButtonComponent(t).setIcon(n[0])}})}N(),Ia(),I(),ia(),wi(),X();function q_(e){return e?Array.isArray(e)?e.filter(e=>e).map(e=>e.toString().trim()):typeof e==$q?e.split(/[\s,]+/).filter(Boolean):[]:[]}var J_=e=>{let{memo:t,memoListView:n,handlePinMemoClick:r,handleFixMemoClick:i,handleSourceMemoClick:a,handleShowMemoStoryDialog:o,handleCopyMemoClick:s,handleEditMemoClick:c,handleGenMemoImageBtnClick:l,handleMarkMemoClick:u,handleArchiveMemo:f,handleDeleteMemoClick:p,handleSplitMemoClick:m,handleCopyEmbedLink:h,handleReferenceLinksGroupClick:g,handleLockMemo:_,canLockMemo:v}=e,y=K.getState().query.tag,b=L.getState().dailyNotesState.settings,x=b.EnabledLocationList.find(e=>e.value===$0g),S=k(null),C={pinRef:k(null),fixRef:k(null),typeRef:k(null),referenceLinksGroupRef:k(null),moreRef:k(null)},[w,T]=D_({mouseEnterDelayMS:500}),E=k();O(()=>{if(!C.typeRef)return;let e=ra.find(e=>e.title===t.sourceType);(0,d.setIcon)(C.typeRef.current,e.icon),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(C.typeRef.current,t.path),C.fixRef&&((0,d.setIcon)(C.fixRef.current,`shield-alert`),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(C.fixRef.current,`Update Thino property`)),C.referenceLinksGroupRef&&b?.enableReferenceLinksGroup&&((0,d.setIcon)(C.referenceLinksGroupRef.current,$3j),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(C.referenceLinksGroupRef.current,`Reference links group`))},[C.typeRef,C.referenceLinksGroupRef]),O(()=>{C.pinRef&&(t.pinned?((0,d.setIcon)(C.pinRef.current,$8a),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(C.pinRef.current,F(40))):((0,d.setIcon)(C.pinRef.current,$56),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(C.pinRef.current,F(39))))},[C.pinRef,t.pinned]);let ee=(0,d.debounce)(()=>{if(w&&C.moreRef.current){if(E.current&&E.current._loaded||E.current?.useNativeMenu||document.body.find(`.more-action-btns-wrapper`))return;let e=te(),t=C.moreRef.current.getBoundingClientRect();e.showAtPosition({x:t.left,y:t.bottom})}},200);O(()=>{ee()},[w]);let te=()=>{let e=new d.Menu;return e.dom.toggleClass([$8t],!0),e.useNativeMenu?(e.setNoIcon(),G_(e,[[F(301),0,s],[F(38),0,c],[F(52),0,l]])):K_(e,[[$27,()=>void s()],[$ea,c],[$8d,l]]),e.addSeparator(),t.sourceType===$00&&G_(e,[[F(729),$27,()=>void h(!0)],[F(728),$27,()=>void h(!1)]]).addSeparator(),G_(e,[[F(50),$c0,()=>o(new MouseEvent($05))],[F(51),$e1,u],/(^|\n)#{1,6}\s/g.exec(t.content)?.length>1&&x&&[F(625),`separator-horizontal`,m],[F(53),$jm,()=>a(t)],v&&_&&[F(452),$o7,()=>{_(),e.close()}],[F(376),$er,()=>{W_(L.getState().dailyNotesState.app,[t]),e.close()}]]).addSeparator(),G_(e,[[F(55).toUpperCase(),$11,()=>f(t),!0],[b.DeleteThinoDirectly?F(41):F(675).toUpperCase(),$3m,()=>{let e=new d.Modal(L.getState().dailyNotesState.app);e.titleEl.setText(F(791)),e.contentEl.createEl(`p`,{text:F(927)});let t=e.contentEl.createDiv({cls:$1z});t.createEl($7,{text:F(305)}).addEventListener($05,()=>{e.close()}),t.createEl($7,{text:F(791),cls:$8s}).addEventListener($05,()=>{p(),e.close()}),e.open()},!0]]).addSeparator(),e.addItem(e=>{e.setDisabled(!0).setTitle(R.getWordCount(t.content.replace(/```[^\S\r\n]*[a-z]*\n.*?\n```/g,``))+` ${F(317)}`)}),e.onHide(()=>{}),E.current=e,e},ne=e=>{te().showAtMouseEvent(e.nativeEvent)};return Z($0,{ref:S,className:`memo-top-right-wrapper`,children:[y&&b.FilterByMetadata?t.content.includes(y)?Z($8,{className:`tag-text tag-in-content`,children:F(755)}):q_(t.fileInfo?.tags).includes(y)?Z($8,{className:`tag-text tag-in-file`,children:F(756)}):null:null,Z($0,{className:$1n,children:[Z($8,{ref:C.fixRef,className:`btn ${t.sourceType!==$0g||t.id!==``?$01:``} fix-memo-btn`,onClick:()=>void i(t)}),b?.enableReferenceLinksGroup&&Z($8,{ref:C.referenceLinksGroupRef,className:`btn ${n===$0y||n===$4v?$01:``} reference-links-group-btn`,onClick:g}),Z($8,{ref:C.typeRef,className:`btn ${t.sourceType===$00?$01:``} source-type-btn`,onClick:()=>a(t)}),Z($8,{ref:C.pinRef,className:`btn ${e.memo.pinned?`pinned-btn`:`unpinned-btn`} pro`,onClick:()=>void r()}),Z($8,{...T,ref:e=>{C.moreRef.current=e,e&&(0,d.setIcon)(e,$15)},onClick:ne,className:$d0})]})]})};N(),X();var Y_=e=>{let{memo:t,handleMemoTypeToggle:n,handleShowMemoStoryDialog:r,settings:i}=e,a=t.fileInfo?.frontmatter?.title||t.path.split(`/`).pop().split(`.`).shift();return Z($0,{className:`memo-top-left-wrapper`,children:[e.children,Z($8,{title:t.createdAt,className:$cg,onClick:e=>r(e),children:t.createdAt}),Z($0,{className:`btn memo-type-img ${i?.ShowTaskLabel?``:$01}`,onClick:()=>void n(),children:t.thinoType!==$9&&Z($09,{className:$1t,type:$jf,checked:t.thinoType!==$06,"data-task":t.thinoType===$06?``:t.thinoType===$0p?`x`:t.thinoType?.slice(5)})}),i?.ShowSourcePath&&(t.sourceType===$0i||t.sourceType===$0g)&&Z($8,{className:`time-text source-path`,"aria-label":a,onClick:()=>{K.setPathQuery(a)},children:a})]})},X_=()=>({type:`initialText`,value:``,timestamp:Date.now(),selectionStart:0,selectionEnd:0}),Z_={initialValue:``,interval:300},Q_=class{constructor(e,t=Z_){this.listeners=[],this.runUndo=()=>{let e=this.actions[this.currentIndex].selectionStart;this.currentIndex>0&&this.currentIndex--,this.element.value=this.actions[this.currentIndex].value,this.element.setSelectionRange(e,e),this.dispatchChange()},this.runRedo=()=>{this.currentIndex<this.actions.length-1&&this.currentIndex++;let e=this.actions[this.currentIndex].selectionEnd;this.element.value=this.actions[this.currentIndex].value,this.element.setSelectionRange(e,e),this.dispatchChange()},this.getActions=()=>this.actions,this.setState=(e,t)=>{this.actions=[...e],this.currentIndex=t<this.actions.length?t:this.actions.length-1,this.dispatchChange()},this.resetState=()=>{this.actions=[X_()],this.currentIndex=0,this.dispatchChange()},this.destroy=()=>{this.rmEventListeners()},this.subscribe=e=>{this.listeners.push(e)},this.handleElementKeydown=e=>{let t=e;t.key===`z`&&!t.shiftKey&&(t.metaKey||t.ctrlKey)?(e.preventDefault(),this.runUndo()):(t.key===`z`&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.key===`y`&&(t.metaKey||t.ctrlKey))&&(e.preventDefault(),this.runRedo())},this.handleElementInput=e=>{let t=e,n=this.actions[this.currentIndex];this.pushNewAction({type:t.inputType,value:this.element.value,timestamp:Date.now(),selectionStart:this.element.selectionEnd-(this.element.value.length-n.value.length),selectionEnd:this.element.selectionEnd})},this.addEventListeners=()=>{this.element.addEventListener($1s,this.handleElementKeydown),this.element.addEventListener($09,this.handleElementInput)},this.rmEventListeners=()=>{this.element.removeEventListener($1s,this.handleElementKeydown),this.element.removeEventListener($09,this.handleElementInput)},this.pushNewAction=e=>{let t=this.actions[this.currentIndex];t&&t.type===e.type&&e.timestamp-t.timestamp<this.config.interval?this.actions[this.currentIndex]=Object.assign(Object.assign({},t),{value:e.value,selectionEnd:e.selectionEnd,timestamp:e.timestamp}):(this.config.maxSize&&this.currentIndex>=this.config.maxSize?(this.actions.shift(),this.actions[0]=X_()):this.currentIndex++,this.actions[this.currentIndex]=e,this.actions=this.actions.slice(0,this.currentIndex+1)),this.dispatchChange()},this.dispatchChange=()=>{for(let e of this.listeners)e([...this.actions],this.currentIndex)},this.element=e,this.config=Object.assign(Object.assign({},Z_),t),this.config.initialActions&&this.config.initialActions.length>0?(this.actions=this.config.initialActions,this.config.initialIndex!==void 0&&this.config.initialIndex<this.actions.length?this.currentIndex=this.config.initialIndex:this.currentIndex=this.actions.length-1):(this.actions=[X_()],this.currentIndex=0,this.config.initialValue!==``&&(this.actions.push({type:`insertText`,value:this.config.initialValue,timestamp:Date.now(),selectionStart:0,selectionEnd:this.config.initialValue.length}),this.currentIndex++)),this.element.value=this.actions[this.currentIndex].value,this.addEventListeners()}};N();function $_(){let[,e]=D(!1);return j(()=>{e(e=>!e)},[])}function ev(e,t){let n=e.lastIndexOf(`
  126. `,Math.max(t-1,0))+1,r=e.slice(n,t),i=r.lastIndexOf(`[[`),a=r.lastIndexOf(`#`),o=r.charAt(a-1);return a>i&&(o===``||/\s/.test(o))&&!/[\s#]/.test(r.slice(a+1))?{kind:$70,start:n+a,query:r.slice(a+1)}:i!==-1&&!/[\s[\]]/.test(r.slice(i+2))?{kind:$3j,start:n+i,query:r.slice(i+2)}:null}function tv(e,t,n,r){let i=t;for(;i<e.length&&!/\s/.test(e.charAt(i));)i++;return{value:e.slice(0,n.start)+r+e.slice(i),caret:n.start+r.length}}sf(),to();var nv=()=>{let{app:e}=W.getState(),t=e.metadataCache.getTags();return[...Object.keys(t)].map(e=>e.split(`#`).pop())},rv=e=>{let t=[],n=W.getState().settings;if(n&&n?.UseVaultTags)t=nv();else{let{tags:e}=Y.getState();t=e}let r=e.toLowerCase(),i=[];return t.forEach(e=>{e&&e.toLowerCase().contains(r)&&i.push({name:e,char:e})}),i};to();var iv=e=>{let{app:t}=W.getState(),n=e.toLowerCase(),r=[];return t.vault.getAllLoadedFiles().forEach(e=>{e instanceof d.TFile&&[`md`,$jw,`jpg`,$4o,`jpeg`,`gif`].contains(e.extension)&&e.path.toLowerCase().contains(n)&&r.push({name:e.basename,char:e.name,file:e})}),r};wn();var av=20,ov=10,sv=class extends uh{trigger=null;onApply;constructor(e,t){super(e),this.onApply=t}get caret(){return this.inputEl.selectionStart??this.inputEl.value.length}getSuggestions(){return this.trigger=ev(this.inputEl.value,this.caret),this.trigger?this.trigger.kind===$70?rv(this.trigger.query).slice(0,av).map(({char:e})=>({kind:$70,label:e})):iv(this.trigger.query).slice(0,ov).map(({char:e,file:t})=>({kind:$3j,label:e,file:t})):[]}renderSuggestion(e,t){t.setText(e.label)}selectSuggestion(e){let t=this.trigger;if(!t)return;let n=e.kind===$70?`#${e.label}`:xn().fileManager.generateMarkdownLink(e.file,e.file.path,``,``),r=tv(this.inputEl.value,this.caret,t,n);this.inputEl.value=r.value,this.close(),this.onApply(r.value);let i=()=>{this.inputEl.focus(),this.inputEl.setSelectionRange(r.caret,r.caret)};i(),window.setTimeout(i,0)}};N(),U(),ro(),X(),Ia(),Fr(),wn();var cv=kr(`editor-history-db`,`editor-history-store`),lv=50;function uv(e,t){return`thinoEditorHistory:${e}:${t||$8h}`}async function dv(e,t,n){try{if(!t?.appId)return;let r=uv(t.appId,n),i=await jr(r,cv)||[];if(i.some(t=>t.content===e))return;await Mr(r,[{content:e,timestamp:Date.now()},...i].slice(0,lv),cv)}catch(e){console.error(`Failed to save editor history:`,e)}}var fv=(0,d.debounce)((e,t,n)=>{dv(e,t,n)},1e3);async function pv(e,t){try{return e?.appId&&await jr(uv(e.appId,t),cv)||[]}catch(e){return console.error(`Failed to get editor history:`,e),[]}}async function mv(e,t){try{if(!e?.appId)return;await Nr(uv(e.appId,t),cv)}catch(e){console.error(`Failed to clear editor history:`,e)}}function hv(e){return e.containerEl.matches(`.memos-list-view`)}function gv(){}function _v(e){let t=e.app.workspace.getLeavesOfType($0n)[0];return{app:e.app,showSearch:gv,toggleMode:gv,onMarkdownScroll:gv,getMode:()=>$iq,getViewType:()=>$0n,id:t?.id||R.randomId(6),scroll:0,editMode:null,get file(){return t?.view?.file||null},get path(){return(t?.view)?.file?.path||``}}}var vv=(e,t)=>{let{app:n,plugin:r,view:i,dailyNotes:a}=H(),[o,s]=D(null),[,c]=D(!1),[l,u]=D(``),[f,p]=D(null),[m,h]=D(!0),[g,_]=D(!1),v=k(null),y=k((0,d.debounce)((e,t,n)=>{xv(e,t,n),e.trim()&&!g&&fv(e,t,n)},100)),b=k();O(()=>{if(!f){if(!a&&!(n&&xn())){let e=(n||Sn())?.vault.getMarkdownFiles();p(e[0]);return}for(let e in a)if(a[e]instanceof d.TFile){p(a[e]);break}}},[a]),O(()=>{if(!r?.MarkdownEditor||!e)return;class a extends r.MarkdownEditor{updateBottomPadding(){}onUpdate(e,t){super.onUpdate(e,t),S&&S(this.get()),(e.docChanged||e.selectionSet)&&window.requestAnimationFrame(()=>{try{let t=e.view.dom.closest(`.common-editor-inputer`);if(!t)return;let n=e.view.state.selection.main.head,r=e.view.coordsAtPos(n);if(!r)return;let i=t.getBoundingClientRect();r.bottom>i.bottom?t.scrollTop+=r.bottom-i.bottom+4:r.top<i.top&&(t.scrollTop-=i.top-r.top+4)}catch{}})}}let o=_v(r),l=r.addChild(new a(n,e,o));l&&!t&&i&&G.setInstance(`${i.leaf?.id}`,l),o.editMode=l,l.owner.editor=l.editor;let u=bv(n,t?$55:$8h);return l.set&&l.set(u||``,!0),n.workspace.trigger(`thino-editor-created`,e,l.editor),b.current=l.cm,c(!0),s(l),()=>{c(!1),l?.destroy?.(),r.removeChild(l),b.current=null,v.current=null}},[e,r]),O(()=>{!o||!n||(y.current(l,n,t?$55:$8h),m&&h(!1),v.current&&v.current(l))},[l,n]);let x=()=>{o&&o.toggleSource()},S=(0,d.debounce)(e=>C(e),500,!0),C=e=>{u(e)};return{instance:o,value:l,set:e=>{try{o&&(o?.editor.replaceSelection(e),u(e))}catch(e){console.error(e)}},get:()=>o?o.get():``,append:(e,t)=>{if(!o||t&&t!==i?.leaf?.id)return;let n=(o.get()||``)+e;o?.editor.replaceSelection(e),u(n)},clear:async(e=!1)=>{o&&(o.clear(),u(``),xv(``,n,t?$55:$8h),e&&await mv(n,t?$55:$8h))},toggleSource:x,getHistoryEntries:async()=>!o||!n?[]:await pv(n,t?$55:$8h),setFullContent:(e,r=!1)=>{o&&(_(r),o.set(e),y.current(e,n,t?$55:$8h),_(!1))},editorView:b.current}};function yv(e,t){return`thinoEditorContentCache:${e}:${t||$8h}`}function bv(e,t){try{if(!e?.appId)return``;let n=yv(e.appId,t);return no.get([n])[n]||``}catch(e){return console.error(e),``}}function xv(e,t,n){try{if(!t?.appId)return;let r=yv(t.appId,n);no.set({[r]:e})}catch(e){console.error(e)}}Ia(),I(),N();var Sv=Ot(({value:e,maxCount:t=100})=>{let[n,r]=D(0);return O(()=>{let t=e.replace(/```[^\S\r\n]*[a-z]*\n.*?\n```/g,``);r(R.getWordCount(t))},[e]),Z($0,{className:Tf(`thino-editor-word-count`,n>t&&t>0&&`exceeded`),children:[n,` `,t>0&&Z($8,{children:[` / `,t]}),` `,F(318)]})},(e,t)=>e.value===t.value&&e.maxCount===t.maxCount);N(),U(),ro(),I(),X();function Cv(e,t){return{line:e.line,ch:e.ch+t}}var wv=kt((e,t)=>{let{useTinyUndoHistoryCache:n,globalEditorShown:r,memoListView:i}=B(),{settings:a,app:o}=H(),{SaveMemoButtonLabel:s}=a,{className:c,inputerType:l,initialContent:u,placeholder:f,showConfirmBtn:p,showCancelBtn:m,onConfirmBtnClick:h,onCancelBtnClick:g,onContentChange:_,onCheckCount:v}=e,y=k(null),b=k(null),x=k(null),S=$_(),{instance:C,value:w,set:T,get:E,append:ee,clear:te,toggleSource:ne,setFullContent:re}=vv(b.current,e.modal),[,ie]=D(0),[ae,oe]=D(!1);O(()=>{if(a&&a.FocusOnEditor)switch(l){case $b7:case $67:y.current?.focus();break;case $0k:C&&C.editor?.focus()}},[a,C]),O(()=>{if(!o)return;let e=o.workspace.getLeavesOfType($T),t,n;e.length>0?(n=e[0].view.containerEl,t=n.offsetHeight):(n=document,t=window.outerHeight),ie(t)},[o]),O(()=>{!y.current||l===$0k||u&&(y.current.value=u,S())},[]),O(()=>{if(l!==$0k)if(n){if(!y.current)return;let{tinyUndoActionsCache:e,tinyUndoIndexCache:t}=no.get([$ch,$el]);return x.current=new Q_(y.current,{interval:5e3,initialActions:e,initialIndex:t}),x.current.subscribe((e,t)=>{no.set({tinyUndoActionsCache:e,tinyUndoIndexCache:t})}),()=>{x.current?.destroy()}}else x.current?.destroy(),x.current=null,no.remove([$ch,$el])},[n]),O(()=>{y.current&&(y.current.setCssStyles({height:$4l}),y.current.setCssStyles({height:(y.current.scrollHeight??0)+`px`}))},[y.current?.value]);let se=e=>{y.current&&(y.current.value=e,_(y.current.value),S())},ce=e=>{if(!y.current)return;let t=y.current.value,n=y.current.selectionStart;se(t.slice(0,n)+e+t.slice(n))};Ye(t,()=>({element:y.current,blur:()=>{switch(l){case $b7:case $67:y.current?.blur();break;case $0k:C&&C.editor?.blur()}},focus:e=>{switch(l){case $b7:case $67:y.current?.focus();break;case $0k:if(C){if(e&&e!==C?.owner?.view?.leaf?.id)return;C.editor?.focus()}}},insertTag:e=>{if(l===$0k){if(e&&e!==C?.owner?.view?.leaf?.id)return;if(C){let e=C.editor,t=e.getCursor($g4);e.replaceRange(`#`,t),e.setSelection(Cv(t,1))}return}ce(`# `)},insertText:(e,t)=>{if(l===$0k){C&&ee(e,t);return}ce(e)},setContent:e=>{if(l===$0k){C&&T(e);return}se(e)},updateContent:e=>{l===$0k?C&&re(e):y.current&&(y.current.value=e)},getContent:()=>l===$0k?E():y.current?.value??``,toggleSource:()=>{l===$0k&&ne()},clear:(e=!1)=>{if(l===$0k){te(e);return}se(``)}}),[C,l]);let le=j(()=>{_(y.current?.value||``),S()},[]);O(()=>{if(l===$0k||!y.current)return;let e=new sv(y.current,le);return()=>e.destroy()},[l]);let ue=async()=>{if(l===$0k){await v(E())?(h(E()),te(!0),S()):new d.Notice(F(`Word count exceeded`));return}y.current&&(y.current.value=fe(),h(y.current.value),y.current.value=``,S(),x.current?.resetState())},de=j(()=>{l===$0k?te(!1):se(``),g()},[l,C,y]),fe=()=>no.get([$9d]).thinoEditorContentCache||``,pe=()=>{if(y.current)return y.current.value=fe(),y.current.value};return Z($0,{className:`common-editor-wrapper `+c,children:[(e=>{switch(e){case $67:return pe(),Z($0o,{className:`common-editor-inputer scroll ${ae?` editing`:``}`,placeholder:f,ref:y,onFocus:()=>{oe(!0)},onBlur:()=>{oe(!1)},onInput:le,style:{maxHeight:$2n,minHeight:`100px`}});case $b7:return Z($0o,{style:{minHeight:48},className:`common-editor-inputer scroll`,rows:1,placeholder:f,ref:y,onInput:le});case $0k:return Z($0,{className:$36,onClick:()=>{C?.editor?.focus()},ref:b});default:return Z($0,{className:$36,ref:b})}})(l),Z($0,{className:`common-tools-wrapper`,children:[Z($0,{className:`common-tools-container`,children:Z(Dp,{when:e.tools!==void 0,children:e.tools})}),Z($0,{className:$1n,children:[a.enableWordCount&&Z(Sv,{value:w,maxCount:a.maxWordCount}),Z(Dp,{when:m,children:Z($7,{className:`action-btn cancel-btn`,onClick:()=>{a&&a.DefaultEditorLocation===$dw&&!r&&de()},onPointerDown:()=>{(a&&a.DefaultEditorLocation===$3c||r)&&de()},children:K.getState().pathname===`/`&&i===$2z&&(a?.chatViewStyle===$o0||a?.chatViewStyle===$1g)?``:F(`CANCEL EDIT`)})}),Z(Dp,{when:!!e.clipboardText&&p&&!m,children:Z($7,{"aria-label":F(`Paste clipboard content and save as new thino`),className:`action-btn confirm-btn paste-create-btn`,onClick:()=>{(async()=>{a&&a.DefaultEditorLocation===$dw&&!r&&e.onPasteAndCreate?.()})()},onPointerDown:()=>{(async()=>{(a&&a.DefaultEditorLocation===$3c||r)&&e.onPasteAndCreate?.()})()},children:F(`Paste`)})}),Z(Dp,{when:p,children:Z($7,{"aria-label":F(`Ctrl/Cmd + Enter to save thino`),className:`action-btn confirm-btn`,onClick:()=>{(async()=>{a&&a.DefaultEditorLocation===$dw&&!r&&await ue()})()},onPointerDown:()=>{(async()=>{(a&&a.DefaultEditorLocation===$3c||r)&&await ue()})()},children:[i===$2z&&(a?.chatViewStyle===$o0||a?.chatViewStyle===$1g)?``:s,Z($8,{className:$2u,children:null})]})})]})]})]})});N();function Tv(e){let[t,n]=D(()=>!!e);return[t,j(e=>{n(typeof e==$2s?e:e=>!e)},[])]}fr(),Dr(),Yr();function Ev(e,t,n){let r=e.conversations.findIndex(e=>e.id===t);if(r===-1)return e;let i=n(e.conversations[r]);if(i===e.conversations[r])return e;let a=[...e.conversations];return a[r]=i,{conversations:a}}function Dv(e,t){return n=>Ev(n,e,e=>({...e,isActive:t,isCollapsed:!t,updatedAt:Date.now()}))}var Ov=ur()(Cr(br(Er(e=>({conversations:[],activeConversationId:null,isProcessing:!1,selectedMessageIds:[],createConversation:(t,n)=>{let r=`inline-conv-${Date.now()}`,i=Date.now();return e(e=>({conversations:[...e.conversations,{id:r,afterThinoId:t,beforeThinoId:n,messages:[],createdAt:i,updatedAt:i,isActive:!0}]})),r},addMessage:(t,n)=>e(e=>Ev(e,t,e=>({...e,messages:[...e.messages,n],updatedAt:Date.now()}))),updateMessage:(t,n,r)=>e(e=>Ev(e,t,e=>e.messages.some(e=>e.id===n)?{...e,messages:e.messages.map(e=>e.id===n?{...e,...r}:e),updatedAt:Date.now()}:e)),deactivateConversation:t=>e(Dv(t,!1)),reactivateConversation:t=>e(Dv(t,!0)),removeConversation:t=>e(e=>({conversations:e.conversations.filter(e=>e.id!==t)})),setActiveConversation:t=>e(e=>e.activeConversationId===t?e:{activeConversationId:t}),setIsProcessing:t=>e(e=>e.isProcessing===t?e:{isProcessing:t}),toggleCollapseConversation:t=>e(e=>Ev(e,t,e=>({...e,isCollapsed:!e.isCollapsed}))),toggleMessageSelection:t=>e(e=>{let n=e.selectedMessageIds.indexOf(t),r=[...e.selectedMessageIds];return n>=0?r.splice(n,1):r.push(t),{selectedMessageIds:r}}),selectSingleMessage:t=>e({selectedMessageIds:[t]}),clearMessageSelection:()=>e({selectedMessageIds:[]})}),{name:`inline-super-store-cache`,storage:Jr.ui,partialize:e=>({conversations:e.conversations}),version:1}),{name:`inline-super-store`})));function kv(e){if(e)try{return JSON.parse(e)}catch{return}}var Av=()=>Ov.getState();function jv(e,t){let n=Date.now(),r={id:`inline-msg-${n}`,role:$3n,content:t,timestamp:n};Av().addMessage(e,r),Av().setIsProcessing(!0);let i=`inline-msg-${n}-a`,a={id:i,role:$1u,content:``,timestamp:n,isStreaming:!0};return Av().addMessage(e,a),i}function Mv(e){return(Av().conversations.find(t=>t.id===e)?.messages??[]).map(e=>({id:e.id,role:e.role,content:e.content,timestamp:e.timestamp}))}async function Nv(e,t,n){let r=Mv(e),i=``,a=``,o,s=[];try{for await(let c of dp.chat(n,r)){let n=c.toolEvent;if(n?.type===$gk)s.length===0&&(o=i.length),s.push({id:n.toolCallId,name:n.name,arguments:n.arguments||``,parsedArgs:kv(n.arguments),status:$68}),Av().updateMessage(e,t,{toolCalls:[...s],toolCallOffset:o});else if(n?.type===$8w){let r=s.findIndex(e=>e.id===n.toolCallId);r!==-1&&(s[r]={...s[r],result:n.result,status:$82},Av().updateMessage(e,t,{toolCalls:[...s]}))}c.reasoning&&(a+=c.reasoning,Av().updateMessage(e,t,{reasoning:a})),c.content&&(i+=c.content,Av().updateMessage(e,t,{content:i}))}Av().updateMessage(e,t,{isStreaming:!1,toolCalls:[...s],reasoning:a||void 0,toolCallOffset:o})}catch(n){let r=(n instanceof Error?n.message:String(n))||$9n;Av().updateMessage(e,t,{content:`Error: ${r}`,isStreaming:!1})}finally{Av().setIsProcessing(!1)}}N(),U(),X(),Ia(),ro(),I(),ia(),Wl(),kp(),Gp(),Os(),Zd();var Pv=()=>{let e=new Set,t=K.getState().query.filter,n=K.getState().query.tag,r=lf.getQueryById(t||``);if(r&&r.querystring){let t=JSON.parse(r.querystring);if(Array.isArray(t))for(let n of t)n.type===$6o&&n.value&&n.value.operator===$0x&&typeof n.value.value==$q&&e.add(n.value.value)}return n&&e.add(n),Array.from(e)},Fv=e=>{let{offsetLeft:t,offsetTop:n,offsetHeight:r,offsetWidth:i,selectionEnd:a}=e,o=createDiv(),s=window.getComputedStyle(e);for(let e of s)o.style.setProperty(e,s.getPropertyValue(e));o.setCssStyles({position:$9h,visibility:$5w,whiteSpace:`pre-wrap`});let c=e.tagName===$7o?e.value.replace(/ /g,`.`):e.value;o.textContent=c.substring(0,a||0),e.tagName===$dv&&o.setCssStyles({height:$4l});let l=createSpan();l.textContent=c.substring(a||0)||`.`,o.appendChild(l),document.body.appendChild(o);let{offsetLeft:u,offsetTop:d,offsetHeight:f,offsetWidth:p}=l;return document.body.removeChild(o),{x:t+u,y:n+d,h:r+f,w:i+p}},Iv=({className:e,editorType:t,destroy:n,modal:r})=>{let i=B(),{app:a,settings:o,view:s}=H(),[c,l]=Tv(!0),u=k(c),[f,p]=D(!0),m=k(null),h=k(null),g=k(i),[_,v]=D(!1),[y,b]=D(!1),x=k(null),[S,C]=D(null),w=oh(x.current,S,{placement:$1m}),[T]=D(parseInt((0,d.moment)().format(`x`))),ee=k(null),te=o?.EnabledLocationList.length===1?o.EnabledLocationList[0].value:o?.MemoSaveLocation||$00,[ne,re]=D(te),ie=k(te),[ae,oe]=D(``);O(()=>{u.current=c},[c]),O(()=>{!h.current||!a||!s||(s.registerEvent(a.workspace.on($1h,e=>{h.current?.focus(e?.id)})),s.registerEvent(a.workspace.on($b1,()=>{h.current?.blur()})),s.registerEvent(a.workspace.on($ba,async(e,t)=>{if(typeof e==$q)h.current?.insertText(e+`
  127. `,t.id);else{let n=e.toPNG(),r=new Blob([n],{type:$14}),i=new File([r],$hy,{type:$14,lastModified:Date.now()});if(!i)return;let a=await fe(i);a&&h.current?.insertText(a+`
  128. `,t.id)}})))},[h,s,a]),O(()=>{o&&l(o.DefaultPrefix===$na)},[o?.DefaultPrefix]),O(()=>{o&&re(o.EnabledLocationList.length===1?o.EnabledLocationList[0].value:o.MemoSaveLocation||$00)},[o?.MemoSaveLocation,o?.EnabledLocationList]),O(()=>{if(!o||!ee.current)return;let e=ra.find(e=>e.title===ne)?.icon;(0,d.setIcon)(ee.current,e),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(ee.current,F(314)+ne),ie.current=ne;let t=i.manifest;if(t){let e=a?.plugins.getPlugin(t.id);if(e){if(e.settings.MemoSaveLocation===ne)return;e.settings.MemoSaveLocation=ne,e.saveSettings()}}},[ne,f]),O(()=>{h.current&&o&&o.MemoSaveLocation&&o.EnabledLocationList.length!==1&&re(o.MemoSaveLocation)},[ee,o?.MemoSaveLocation,o?.EnabledLocationList]),O(()=>{if(!h.current||!o||d.Platform.isDesktop||i.globalEditorShown)return;let e=o.UseButtonToShowEditor&&o.DefaultEditorLocation===$3c;if(d.Platform.isDesktop){p(!0);return}if(t&&t===$1g){p(!0);return}if(p(d.Platform.isMobile&&!e),!e||i.memoListView===$2z)return;let n=document.body.find(`.memolist-scrollview`);n&&(n.onscroll=()=>{if(i.globalEditorShown)return;if(!i.memoListView&&G.getState().memoListView===$2z){n.onscroll=null;return}let t=h.current.getContent();d.Platform.isMobile&&e&&!t&&p(!1)})},[i.globalEditorShown,t,h]);let se=()=>{b(!1)};O(()=>{if(a&&(i.markMemoId||i.editMemoId?.trim()&&i.editMemoId!==g.current.editMemoId)){let e=a.workspace.getLeavesOfType($0n);e.length>0&&a.workspace.revealLeaf(e[0])}if(i.markMemoId){let e=Y.getMemoById(i.markMemoId);if(e&&e.sourceType===$00)bs(e).then(e=>{let t=`${F(51)}: ${e}`;h.current?.insertText(t),h.current?.focus(),G.setMarkMemoId(``)});else{let e=`${F(51)}: [@THINO](${i.markMemoId})`;h.current?.insertText(e),h.current?.focus(),G.setMarkMemoId(``)}return}if(i.editMemoId?.trim()&&i.editMemoId!==g.current.editMemoId){let e=Y.getMemoById(i.editMemoId);if(e)switch(l(e.thinoType===$9),o.EditorType){case $67:h.current?.setContent(e.content.replace(/ \^\S{6}$/,``)||``),h.current?.focus();break;case $0k:h.current?.clear(!1),h.current?.setContent(e.content.replace(/ \^\S{6}$/,``)||``),h.current?.focus();break}}g.current=i},[i.markMemoId,i.editMemoId]),O(()=>{!h.current||_||o.EditorType===$67&&(h.current?.element.addEventListener(`paste`,e=>void ce(e)),h.current?.element.addEventListener(`drop`,e=>void le(e)),h.current?.element.addEventListener($05,ue),v(!0))},[h.current]);let ce=async e=>{if(e.clipboardData&&e.clipboardData.files.length>0){e.preventDefault();let t=e.clipboardData.files;for(let e of t){let t=await fe(e);t&&h.current?.insertText(t)}}},le=async e=>{if(e.dataTransfer&&e.dataTransfer.files.length>0){e.preventDefault();let t=e.dataTransfer.files;for(let e of t){let t=await fe(e);t&&h.current?.insertText(t)}}},ue=()=>{xe(h.current?.element.value||``)},de=async(e,t)=>{let n=e.ctrlKey||e.metaKey,r=e.altKey;if(e.key===$7m&&i.globalEditorShown&&(G.setGlobalEditorShown(!1),e.preventDefault()),n&&e.key===$28){e.preventDefault(),e.stopPropagation(),t?(await he(h.current?.getContent()),h.current?.clear(!0)):await he(h.current?.element.value);return}if(r)for(let t=0;t<o.EnabledLocationList.length;t++)e.key===(t+1).toString()&&re(o.EnabledLocationList[t].value);window.setTimeout(()=>{t||xe(h.current?.element.value||``)})},fe=j(async e=>{let{type:t}=e;if(t.startsWith($53))try{return`${await pf.upload(e)}`}catch(e){new d.Notice(e instanceof Error?e.message:String(e))}},[]),pe=j(async e=>{if(o.enableWordCount){if(!await Up())return Op(),!1;if(o.maxWordCount===0)return!0;let t=e.replace(/```[^\S\r\n]*[a-z]*\n.*?\n```/g,``),n=R.getWordCount(t),r=o.maxWordCount||1e3;return!(n>r&&r>0)}return!0},[o.enableWordCount,o.maxWordCount]),me=j(async e=>{let t=Ov.getState(),n=z.getState().memos,r=n.length>0?n[0]:null,i=t.activeConversationId;if(!i||!t.conversations.some(e=>e.id===i&&e.isActive)){let e=t.conversations.find(e=>e.isActive);i=e?e.id:t.createConversation(r?.id??null,null),t.setActiveConversation(i)}await Nv(i,jv(i,e),e)},[]),he=async e=>{if(!e||e.trim()===``){new d.Notice(F(116));return}let t=J.getState().enabled,r=e.trim().match(/^@Super\s+([\s\S]+)/i);if(r&&t&&d.Platform.isDesktop){let e=r[1].trim();h.current?.clear(!0),Rv(``),me(e);return}let i=Ov.getState();i.activeConversationId&&(i.deactivateConversation(i.activeConversationId),i.setActiveConversation(null));let a=W.getState().settings,o=a?.addTagAutomatically,s=a?.addTagWithNewline,c=a?.addTagPosition,l=(Pv()||[]).filter(t=>!e.includes(`#${t}`)),f=async(e,t)=>{t=t.replaceAll(`&nbsp;`,` `),Rv(``);try{if(!e){let e;switch(ie.current){case $0r:e=await Y.createMemoCanvas({text:t,isList:u.current});break;case $0g:e=await Y.createMemoMultiFile({content:t,isList:u.current});break;case $00:e=await Y.createMemoDaily(t,u.current);break;case $0i:e=await Y.createMemoSingleFile({content:t,isList:u.current});break;case $9:e=await Y.createMemoJournalFile({content:t,isList:u.current});break}if(!e)return;Y.pushMemo(e),(!o||l.length===0)&&K.clearQuery(),e&&ie.current!==$00&&window.setTimeout(()=>{(async()=>{let n=await q.syncCreate(t,ie.current,u.current,e.id);n&&await Y.updateMemoById(e.id,n,!0)})()},200);return}let n=Y.getMemoById(e);if(n&&(n.content!==t||n.thinoType!==(u.current?$9:$06))){let e=await Y.updateMemo(n.id,t,u.current?$9:n.thinoType.startsWith($fu)?n.thinoType:$06);e.updatedAt=R.getDateTimeString(Date.now()),Y.editMemo(e)}G.setEditMemoId(``)}catch(e){new d.Notice(e instanceof Error?e.message:String(e))}};n&&n(),n&&h.current?.clear(!0);let{editMemoId:p}=G.getState();await f(p,l&&l.length>0&&o&&!p?c===$bp?`${l.map(e=>`#${e}`).join(` `)} ${s?`
  129. `:``}${e}`:`${e} ${s?`
  130. `:``}${l.map(e=>`#${e}`).join(` `)}`:e),Rv(``)},ge=j(()=>{G.setEditMemoId(``),h.current?.setContent(``),Rv(``)},[]),_e=j(async()=>{if(!o?.ShowClipboardOnFocus){oe(``);return}try{if(!navigator.clipboard?.readText){oe(``);return}oe((await navigator.clipboard.readText())?.trim()||``)}catch{oe(``)}},[o?.ShowClipboardOnFocus]),ve=k(!1),ye=k(``),be=async()=>{if(!(!ae||ve.current)&&ae!==ye.current){ve.current=!0;try{await he(ae),h.current?.clear(!0),ye.current=ae,oe(``),window.setTimeout(()=>{ye.current=``},5e3)}finally{ve.current=!1}}},xe=j(e=>{if(Rv(e??``),!h.current)return;let t=h.current.getContent(),n=h.current.element.selectionStart,r=t.slice(0,n),i=t.slice(n);(r.endsWith(`@`)||r.endsWith(`📆`))&&i.startsWith(` `)||(r.endsWith(`@`)||r.endsWith(`📆`))&&i===``?(Oe(),b(!0)):b(!1),window.setTimeout(()=>{h.current?.focus()})},[o.EditorType]),Se=e=>{let t=h.current;if(!t||!o||!e)return;se(),l(!1);let{element:n}=t,{value:r}=n,i=n.selectionStart??r.length,a=n.selectionEnd??i,s=r.slice(0,i),c=r.slice(a),u=s.endsWith(`@`),f=(0,d.moment)(e).format($02),p=u?Math.max(i-1,0):i,m=f;if(u)switch(o.InsertDateFormat){case $dm:m=`[due:: ${f}]`;break;case $cv:m=`📅 ${f}`;break}let g=r.slice(0,p)+m+c;n.value=g;let _=p+m.length;n.setSelectionRange(_,_),t.focus(),xe(g)},Ce=()=>{h.current&&l()},we=async()=>await Up()?!0:(Op(),!1),Te=async e=>{if(!await we())return;let t=new d.Menu;o.EnabledLocationList.forEach(e=>{t.addItem(t=>{t.setTitle(F(e.value)).setIcon(ra.find(t=>t.title===e.value)?.icon??$44).setChecked(ne===e.value).onClick(()=>{re(e.value)})})});let n=e.target,r=null;for(;!n.hasClass(`location-wrapper`)&&(r=n.parentElement,r);)n=r;let i=n.getBoundingClientRect();window.setTimeout(()=>{t.showAtPosition({x:i.x,y:i.bottom,width:i.width,left:!1,overlap:!0})},200)},Ee=j(async e=>{let t=await pv(a,r?$55:$8h),n=new d.Menu;if(n.dom.addClass(`history-menu`),t.length===0){n.addItem(e=>{e.setTitle(F(703)),e.setIcon($nz),e.setDisabled(!0)}),n.showAtMouseEvent(e.nativeEvent);return}t.forEach(e=>{n.addItem(t=>{let n=t.titleEl;n.addClass(`history-item`),n.createSpan({text:`${e.content.length} chars`}),n.createSpan({text:(0,d.moment)(e.timestamp).format($1o)}),t.onClick(()=>{h.current?.updateContent(e.content)}),t.dom.onmouseover=()=>{let n=new d.HoverPopover(s,t.dom,1e3);n.hoverEl.createDiv({text:`History content:`,cls:`history-popover-title`}),n.hoverEl.createDiv({cls:`history-popover-content`},t=>{d.MarkdownRenderer.render(a,e.content,t,``,s)}),n.hoverEl.addClass(`history-popover`),n.load(),s.addChild(n),window.setTimeout(()=>{n.unload()},1e3)}})}),n.showAtMouseEvent(e.nativeEvent)},[a]),De=j(()=>{if(!(!h.current&&o.EditorType===$67))switch(o.EditorType){case $0k:h.current?.focus(),h.current?.insertTag();break;case $67:{let e=h.current.getContent(),t=h.current.element.selectionStart,n=e.slice(0,t),r=e.slice(t),i=n+`# `+r,a=n.length+1;n.endsWith(`#`)&&r.startsWith(` `)&&(i=n.slice(0,n.length-1)+r.slice(1),a=n.length-1),h.current.element.value=i,h.current.element.setSelectionRange(a,a),h.current.focus();let o=new Event($09,{bubbles:!0,cancelable:!0});h.current.element.dispatchEvent(o),xe(h.current.element.value)}}},[a]),Oe=j(()=>{if(!h.current||!x.current||!o||!a)return;let e=a.workspace.getLeavesOfType($T)[0].view.containerEl.clientWidth,{x:t,y:n}=Fv(h.current.element),r=window.innerWidth-t,i,s;d.Platform.isMobile?(i=r>280?t+18:r<280?t+34:e/2,o.DefaultEditorLocation===$3c&&window.innerWidth>875?s=n+4:o.DefaultEditorLocation===$3c&&window.innerWidth<=875?s=n+19:o.DefaultEditorLocation===$dw&&window.innerWidth<=875&&(s=n+36)):(i=t+18,s=n+34),x.current.style.left=`${i}px`,x.current.style.top=`${s}px`},[o,a]),ke=j(()=>{let e=createEl($09);document.body.appendChild(e),e.type=$44,e.multiple=!1,e.accept=`image/png, image/gif, image/jpeg`,e.onchange=async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0],n=await fe(t);n&&h.current?.insertText(n),document.body.removeChild(e)},e.click()},[]),Ae=!!i.editMemoId,je=e=>{let t=!!(o&&o.DefaultEditorLocation===$3c)||i.globalEditorShown,n=!!(o&&o.DefaultEditorLocation===$dw)&&!i.globalEditorShown;return{onClick:t=>{n&&e(t)},onPointerDown:n=>{t&&e(n)}}},Me=A(()=>({className:`memo-editor`,inputerType:o.EditorType||$0k,modal:r,initialContent:Lv(),placeholder:F(49),showConfirmBtn:!0,showCancelBtn:Ae,showTools:!0,onConfirmBtnClick:he,onCancelBtnClick:ge,onContentChange:xe,onCheckCount:pe}),[Ae,o.EditorType]);return i.memoListView===$jl?null:Z(E,{children:[!i.globalEditorShown&&t===$64&&Z($0,{ref:e=>{m.current=e,e&&d.setIcon&&(0,d.setIcon)(e,`plus-circle`)},className:`memo-show-editor-button ${f?$01:``}`,onClick:()=>{m.current.firstElementChild?.toggleClass($jy,!0),window.setTimeout(()=>{p(!0),m.current.firstElementChild.toggleClass($jy,!1)},500),window.setTimeout(()=>{h.current?.focus()},600)}}),Z($0,{className:`memo-editor-wrapper ${e||``} ${Ae?`edit-ing`:``} ${i.globalEditorShown?`fullscreen-editor`:``} ${f?``:$01}`,onKeyDownCapture:e=>void de(e,!0),onFocusCapture:()=>void _e(),children:[Z($8,{className:`tip-text ${Ae?``:$01}`,children:`Modifying...`}),Z(wv,{ref:h,...Me,clipboardText:ae,onPasteAndCreate:()=>void be(),tools:Z(E,{children:[Z($8,{ref:xf($o2),className:`btn action-btn add-tag`,...je(De)}),Z($8,{ref:xf(`paperclip`),className:`btn action-btn file-upload`,...je(ke)}),i.editMemoId===``&&Z($8,{ref:e=>{e&&(0,d.setIcon)(e,c?`layout-list`:$7v)},className:Tf(`btn action-btn list-or-task`,c?$0y:$k3),...je(Ce)}),Z($0,{ref:e=>{e&&(d.setIcon&&(0,d.setIcon)(e,i.globalEditorShown?`shrink`:`expand`),d.setTooltip&&(0,d.setTooltip)(e,i.globalEditorShown?F(316):F(315)))},className:`action-btn show-editor pro`,onPointerDown:()=>{(async()=>{await we()&&(p(!0),G.setGlobalEditorShown(!i.globalEditorShown))})()}}),Z($0,{className:`action-btn split-line pro`}),Z($0,{className:`action-btn location-wrapper pro`,...je(e=>Te(e)),children:Z($0,{ref:ee,className:`action-btn file-location-btn`})}),Z($0,{className:`action-btn history-btn`,...je(e=>Ee(e)),ref:xf($nz)})]})}),Z($0,{ref:x,className:`date-picker`,children:y&&Z($0,{tabIndex:-1,style:w.styles.popper,...w.attributes.popper,ref:C,role:$4q,children:Z(xh,{className:`editor-date-picker ${y?``:$01}`,datestamp:T,handleDateStampChange:Se})})})]})]})};function Lv(){return no.get([$9d]).thinoEditorContentCache??``}function Rv(e){no.set({thinoEditorContentCache:e})}N(),U();var zv=e=>{let t=Qa(e=>e.toggleSelection);return{isSelected:Qa(t=>t.isSelected(e)),handleClick:j(n=>n.shiftKey?(n.preventDefault(),n.stopPropagation(),t(e),!0):!1,[e,t])}};ia();var Bv={bilibili:{label:`Bilibili`,color:`#00a1d6`,icon:`tv`},youtube:{label:`YouTube`,color:`#ff0000`,icon:$mj},netease:{label:`NetEase Music`,color:`#c20c0c`,icon:`music`},spotify:{label:`Spotify`,color:`#1db954`,icon:`music`},twitter:{label:`Twitter`,color:`#1da1f2`,icon:$5x},general:{label:`Link`,color:`#6c757d`,icon:$jk}},Vv=/^https?:\/\/(?:www\.)?bilibili\.com\/video\/(BV[\w]+|av\d+)/i,Hv=/^https?:\/\/b23\.tv\/([\w]+)/i,Uv=/^https?:\/\/(?:www\.)?youtube\.com\/watch\?.*v=([\w-]+)/i,Wv=/^https?:\/\/youtu\.be\/([\w-]+)/i,Gv=/^https?:\/\/(?:www\.)?youtube\.com\/shorts\/([\w-]+)/i,Kv=/^https?:\/\/music\.163\.com\/(?:#\/)?song\?id=(\d+)/i,qv=/^https?:\/\/music\.163\.com\/(?:#\/)?playlist\?id=(\d+)/i,Jv=/^https?:\/\/open\.spotify\.com\/(track|album|playlist)\/([\w]+)/i,Yv=/^https?:\/\/(?:www\.)?(?:twitter|x)\.com\/\w+\/status\/(\d+)/i,Xv=/^(https?:\/\/[^\s]+)$/,Zv=/^\[([^\]]*)\]\((https?:\/\/[^\s)]+)\)$/,Qv=/\s*\^[\w-]+$/,$v=/^(-|\*|\d+\.)\s+(\[.\]\s+)?/;function ey(e){let t=[],n=e,r,i=new RegExp(qi.source,`gu`);for(;(r=i.exec(n))!==null;)t.push(r[1]);n=n.replace(new RegExp(qi.source,`gu`),``);let a=new RegExp(Gi.source,`g`);for(;(r=a.exec(n))!==null;)t.push(r[1]);return n=n.replace(new RegExp(Gi.source,`g`),``),{tags:t,contentWithoutTags:n.trim()}}function ty(e){return Vv.test(e)||Hv.test(e)?$jc:Uv.test(e)||Wv.test(e)||Gv.test(e)?$m4:Kv.test(e)||qv.test(e)?$lz:Jv.test(e)?$m3:Yv.test(e)?`twitter`:$4s}function ny(e,t){let n;switch(t){case $jc:if(n=Vv.exec(e),n){let e=n[1];return e.startsWith(`BV`)?`https://player.bilibili.com/player.html?bvid=${e}&autoplay=0&high_quality=1`:`https://player.bilibili.com/player.html?aid=${e.replace(`av`,``)}&autoplay=0&high_quality=1`}return null;case $m4:return n=Uv.exec(e),n||=Wv.exec(e),n||=Gv.exec(e),n?`https://www.youtube-nocookie.com/embed/${n[1]}`:null;case $lz:return n=Kv.exec(e),n?`https://music.163.com/outchain/player?type=2&id=${n[1]}&auto=0&height=66`:(n=qv.exec(e),n?`https://music.163.com/outchain/player?type=0&id=${n[1]}&auto=0&height=430`:null);case $m3:return n=Jv.exec(e),n?`https://open.spotify.com/embed/${n[1]}/${n[2]}`:null;default:return null}}function ry(e){try{return new URL(e).hostname.replace(/^www\./,``)}catch{return e}}function iy(e){return`https://www.google.com/s2/favicons?domain=${ry(e)}&sz=32`}var ay=new Map,oy={youtube:e=>`https://www.youtube.com/oembed?url=${encodeURIComponent(e)}&format=json`,twitter:e=>`https://publish.twitter.com/oembed?url=${encodeURIComponent(e)}&format=json`,spotify:e=>`https://open.spotify.com/oembed?url=${encodeURIComponent(e)}`,bilibili:e=>`https://noembed.com/embed?url=${encodeURIComponent(e)}`};async function sy(e,t){let n=oy[t];if(!n)return null;try{let t=await(0,d.requestUrl)({url:n(e),method:$3i});if(t.status!==200)return null;let r=t.json;return{title:r.title||r.track_name||``,description:r.author_name?`by ${r.author_name}`:``,image:r.thumbnail_url||void 0}}catch{return null}}function cy(e,t){let n=RegExp(`<meta[^>]*(?:property|name)="${t}"[^>]*content="([^"]*)"`,`i`).exec(e);if(n)return uy(n[1]);let r=RegExp(`<meta[^>]*(?:property|name)='${t}'[^>]*content='([^']*)'`,`i`).exec(e);if(r)return uy(r[1]);let i=RegExp(`<meta[^>]*content="([^"]*)"[^>]*(?:property|name)="${t}"`,`i`).exec(e);if(i)return uy(i[1]);let a=RegExp(`<meta[^>]*content='([^']*)'[^>]*(?:property|name)='${t}'`,`i`).exec(e);return a?uy(a[1]):``}function ly(e){let t=/<title[^>]*>([^<]*)<\/title>/i.exec(e);return t?uy(t[1].trim()):``}function uy(e){return e.replace(/&amp;/g,`&`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&quot;/g,`"`).replace(/&#39;/g,`'`).replace(/&#x([0-9a-f]+);/gi,(e,t)=>String.fromCharCode(parseInt(t,16))).replace(/&#(\d+);/g,(e,t)=>String.fromCharCode(parseInt(t)))}async function dy(e){try{let t=await(0,d.requestUrl)({url:e,method:$3i});if(t.status!==200)return null;let n=t.text,r=cy(n,`og:title`),i=cy(n,`og:description`),a=cy(n,`og:image`),o=cy(n,`description`),s=ly(n),c=r||s||``,l=i||o||``;return!c||c.length<=3?null:{title:c,description:l,image:a||void 0}}catch{return null}}async function fy(e,t){if(ay.has(e))return ay.get(e);let n=await sy(e,t||ty(e));if(n&&n.title)return ay.set(e,n),n;let r=await dy(e);return r?(ay.set(e,r),r):null}function py(e){if(!e||e.trim().length===0)return null;let t=e.trim();if($v.test(t))return null;t=t.replace(Qv,``).trim(),t=t.replace(/\n/g,` `);let{tags:n,contentWithoutTags:r}=ey(t),i=r.trim();if(!i)return null;let a=Xv.exec(i);if(a){let e=a[1],t=ty(e);return{url:e,tags:n,platform:t,embedUrl:ny(e,t)}}let o=Zv.exec(i);if(o){let e=o[1],t=o[2],r=ty(t);return{url:t,displayText:e||void 0,tags:n,platform:r,embedUrl:ny(t,r)}}return null}N();var my={bilibili:`tv`,youtube:$mj,netease:`headphones`,spotify:`disc`,twitter:$5x,general:$3j},hy=({linkInfo:e,memo:t,onTagClick:n,onContextMenu:r})=>{let{url:i,displayText:a,tags:o,platform:s}=e,c=Bv[s],l=ry(i),u=iy(i),d=s===$jc||s===$m4?`video`:s===$lz||s===$m3?`audio`:$3j,[f,p]=D(null);O(()=>{let e=!1;return fy(i,s).then(t=>{!e&&t&&p(t)}),()=>{e=!0}},[i,s]);let m=a||f?.title||c.label,h=f?.description||``,g=j(e=>{e.target.closest(`.enhanced-link-tags`)||(e.preventDefault(),e.stopPropagation(),window.open(i,$1l))},[i]),_=j((e,t)=>{e.preventDefault(),e.stopPropagation(),n?.(t)},[n]);return Z($0,{className:`enhanced-link-card enhanced-link-card--${d}`,"data-platform":s,"aria-label":t.createdAt,onClick:g,onContextMenu:r,children:[Z($0,{className:`enhanced-link-card-body`,children:[Z($0,{className:`enhanced-link-card-icon-wrapper`,style:{"--card-accent":c.color},children:Z($8,{ref:xf(my[s]),className:`enhanced-link-card-platform-icon`})}),Z($0,{className:`enhanced-link-card-content`,children:[Z($8,{className:`enhanced-link-card-title`,children:m}),h&&Z($8,{className:`enhanced-link-card-desc`,children:h}),Z($8,{className:`enhanced-link-card-url`,children:[Z($6y,{className:`enhanced-link-card-favicon`,src:u,alt:``,loading:$o5}),l]})]}),Z($8,{ref:xf($jk),className:`enhanced-link-card-external`})]}),o.length>0&&Z($0,{className:`enhanced-link-tags`,children:o.map(e=>Z($8,{className:`tag-span`,onClick:t=>_(t,e),children:[`#`,e]},e))})]})};I();var gy=e=>e.length>10?e.substring(0,10)+$6f:e;function _y(e,t){t.stopPropagation(),t.preventDefault();let n=new d.Menu;(async()=>{try{let[r,i]=await Promise.all([dg(e.content),fg(e)]);n.addSections([`Outgoing`,`Incoming`]),G_(n,r.map(e=>[gy(e.content),$eq,()=>mg(e)]));for(let e of i)n.addItem(t=>{t.setTitle(gy(e.content)).setSection(`Incoming`).setIcon($6r).onClick(()=>{mg(e)})});r.length===0&&i.length===0&&n.addItem(e=>{e.setDisabled(!0).setTitle(F(745))}),n.showAtMouseEvent(t.nativeEvent)}catch(e){console.error($35,e),new d.Notice(F(746))}})()}N(),X(),I(),U(),ia(),Ia(),us();var vy=class extends d.SuggestModal{constructor(e,t){super(e),this.thino=t}sanitisedFileName(e){let t=ta;return e.replace(t,``).trim().slice(0,255)}ensureUniqueFileNames(e){let t=[];return e.map(e=>{let n=this.sanitisedFileName(e[0]),r=t.filter(e=>e==n);return t.push(n),r.length>=1?`${n}${r.length+1}`:n})}contentSplitByHeading(e,t){let n=e.split(`
  131. `),r=Array(t).join(`#`)+` `,i=Array(t+1).join(`#`)+` `,a=[],o=[];return n.forEach((e,t)=>{e.startsWith(i)?o.length>0?(a.push(o),o=[],o.push(e)):o.push(e):o.length>0&&!e.startsWith(r)?o.push(e):o.length>0&&(a.push(o),o=[]),t===n.length-1&&o.length>0&&a.push(o)}),a}onChooseSuggestion(e,t){this.selectSuggestion(e,t)}renderSuggestion(e,t){t.setText(e.title)}getSuggestions(){return[{id:$hk,title:F(626)},{id:$hl,title:F(627)},{id:$hm,title:F(628)}]}selectSuggestion(e,t){this.selectSuggestionAsync(e,t)}async selectSuggestionAsync(e,t){let n=[];if(e.id===$hk?n=this.contentSplitByHeading(this.thino.content,1):e.id===$hl?n=this.contentSplitByHeading(this.thino.content,2):e.id===$hm&&(n=this.contentSplitByHeading(this.thino.content,3)),n.length===0){new d.Notice(`No headings found`),this.close();return}let r=this.ensureUniqueFileNames(n);for(let e of n){let t=n.indexOf(e),i=await Y.createThino({content:e.join(`
  132. `),name:r[t],type:$0g,isList:!0});Y.pushMemo(i)}let i=this.thino.content;n.forEach((e,t)=>{i=i.replace(e.join(`
  133. `),`[[${r[t]}]]`)});let a=await Y.updateMemo(this.thino.id,i);a&&Y.editMemo(a),this.close()}},yy=Ot(e=>{let{editMemoId:t,memoListView:n}=B(),{app:r,view:i,settings:a}=H(),{pathname:o}=V(),{memo:s,type:c=$1g}=e,l=k(null),u=k(null),[f,p]=D(!1),m=k(null),[h,g]=D(!1),[_,v]=D(0),[y,b]=D(!1),{isSelected:x,handleClick:S}=zv(s.id),C=A(()=>py(s.content),[s.content]);O(()=>{f&&window.setTimeout(()=>{G.setEditMemoId(s.id)},100)},[f]),O(()=>{(o===$2r||o===$2j)&&t!==s.id&&f&&p(!1)},[t]),O(()=>{m.current&&!h&&l.current&&(r.dragManager.handleDrag(m.current,e=>{r.dragManager.updateSource([l.current],$mf);let t=Y.getMemoById(s.id);if(e.dataTransfer.setData($oj,s.content),e.dataTransfer.setData($k4,s.content),e.dataTransfer.setData($nm,s.content),a?.DraggingBehavior===$9u)if(t?.sourceType===$00){let e=r.vault.getFileByPath(t.path),n=t.hasId;return t.hasId||(n=R.randomId(6),$o(t,{id:t.id,hasId:n})),{type:$3j,icon:$mh,title:e.basename,linktext:`${t.path}#^${n}`,sourcePath:t.path,file:e,memo:t,blockId:n,source:$lg}}else return null;else if(a?.DraggingBehavior===$0l)return null}),g(!0))},[m.current,l.current,a?.DraggingBehavior]);let w=e=>{if(!(`nativeEvent`in e&&S(e))){if(e.ctrlKey||e.metaKey){let e=(0,d.moment)(s.createdAt,$6);K.setFromAndToQuery(e.startOf($04).valueOf(),e.endOf($04).valueOf());return}mg(s)}},T=()=>eg(s.id,a),ee=()=>Qh(s),te=()=>{if(a?.UseButtonToShowEditor&&a?.DefaultEditorLocation===$3c&&d.Platform.isMobile){let e=document.querySelector($0w);e&&e.trigger($05)}(o===$2r||o===$2j)&&p(!0),o!==$2r&&o!==$2j&&G.setEditMemoId(s.id)},ne=async e=>{e.sourceType===$0g&&e.id.trim()===``&&await Y.updateMemoProperty(e)},re=async e=>{await Y.openThinoByID(e.id)},ie=$h,ae=async()=>{try{if(a.DeleteThinoDirectly)await Y.deleteMemoById(s.id);else{let e=await Y.hideMemoById(s.id);e&&Y.editMemo(e)}}catch(e){new d.Notice(e instanceof Error?e.message:String(e))}G.getState().editMemoId===s.id&&G.setEditMemoId(``)},oe=()=>{if(u.current&&!u.current.confirmStatus){u.current&&u.current.toggleConfirm(!1);return}},se=()=>{E_(s)},ce=async()=>{let e=await Y.updateMemo(s.id,s.content,s.thinoType===$06?$0p:$06);e&&Y.editMemo(e)},le=async()=>Xh(s.content),ue=async()=>{new vy(r,s).open()},de=()=>{tg.delete(s.id),b(!1),v(e=>e+1)},fe=y&&(0,d.requireApiVersion)($ms)&&rg(s.content,a),pe=e=>{if(e&&e.target.tagName!==$7o)switch(a?.doubleClickBehavior||$4r){case $gd:mg(s);break;case $4r:te();break;case $d7:re(s);break;case $g2:break;default:te();break}},me=async(e,t)=>{if(S(e))return;e.preventDefault(),e.stopPropagation();let n=e.target;if(e.ctrlKey||e.metaKey){await re(t);return}if(n.tagName===`A`){await Kh(r,i,n);return}if(n.tagName===`IMG`){qh(l.current,n);return}if(n.tagName===`A`&&n.getAttribute($g6)){let e=n.getAttribute($g6);window.open(e,$1l);return}if(n.className===$40){Jh(n);return}if(n.tagName===$7o&&n.hasClass($1t)){await Yh(a,t,l.current,n);return}},he=e=>Zh(s,e),ge=e=>{let t=new d.Menu;t.dom.toggleClass($f6,!0);let i=window.getSelection();i?.toString().length>0&&G_(t,[[F(299),$27,()=>{navigator.clipboard.writeText(i.toString()).then(()=>{new d.Notice(F(298))}).catch(()=>{new d.Notice(F(297))})}]]).addSeparator(),s.sourceType===$00&&G_(t,[[F(729),$3j,()=>void he(!0)],[F(728),$3j,()=>void he(!1)]]).addSeparator(),G_(t,[a?.enableReferenceLinksGroup&&n!==$0y&&[F(743),$3j,()=>_e(e)],[F(300).toLocaleUpperCase(),$27,async()=>{await le(),t.close()}],[F(50),$c0,()=>w(e)],[s.pinned?F(40):F(39),s.pinned?$8a:$56,ee],[F(51),$e1,T],[F(52),$8d,se],[F(38),$ea,te],[F(53),$jm,()=>re(s)],fe&&[F(452),$o7,de],[F(376),$er,()=>W_(r,[s])]]).addSeparator(),G_(t,[[F(55).toLocaleUpperCase(),$11,()=>ie(s),!0],[F(41),$3m,()=>void ae(),!0]]),t.showAtMouseEvent(e.nativeEvent)},_e=e=>{_y(s,e)},ve=A(()=>({memo:s,memoListView:n,handlePinMemoClick:ee,handleFixMemoClick:ne,handleSourceMemoClick:re,handleArchiveMemo:ie,handleDeleteMemoClick:ae,handleGenMemoImageBtnClick:se,handleMarkMemoClick:T,handleEditMemoClick:te,handleCopyMemoClick:le,handleShowMemoStoryDialog:w,handleSplitMemoClick:ue,handleCopyEmbedLink:he,handleReferenceLinksGroupClick:_e,handleLockMemo:de,canLockMemo:fe}),[s,fe]),ye=A(()=>({memo:s,handleMemoTypeToggle:ce,handleShowMemoStoryDialog:w,settings:a}),[s,a]);return Z(E,{children:A(()=>C&&!f?Z(hy,{linkInfo:C,memo:{createdAt:s.createdAt,pinned:s.pinned},onTagClick:e=>Gh(e),onContextMenu:ge}):Z($0,{ref:l,className:Tf($l5,$il,{pinned:s.pinned,selected:x}),"data-source-type":s.sourceType,"data-thino-type":s.thinoType,"data-thino-id":s.id,onMouseLeave:oe,onMouseOver:e=>{!e.shiftKey||!i||!r||(e.stopPropagation(),r.workspace.trigger($a2,{event:e,source:$0c,hoverParent:i.containerEl,targetEl:l.current,linktext:s.path,sourcePath:s.path,state:{scroll:s.sourceType===$00?parseInt(s.id.slice(14)):0}}))},onContextMenu:ge,children:[f&&Z(Iv,{editorType:$1g}),!f&&Z(E,{children:[c===$1g&&Z($0,{ref:m,className:$ga,draggable:!0,children:[Z(Y_,{...ye}),Z(J_,{...ve})]}),Z(ig,{memo:s,lockVersion:_,onReveal:()=>b(!0),handleMemoContentClick:(e,t)=>void me(e,t),handleMemoDoubleClick:pe})]})]}),[s,f,C,fe,_])})},(e,t)=>{let n=e.memo,r=t.memo;return n.id===r.id&&n.updatedAt===r.updatedAt&&n.content===r.content&&n.pinned===r.pinned&&n.visibility===r.visibility}),by=new WeakMap;function xy(e,t,n,r,i={}){let a=by.get(e)??new Map,o=new Map,s=[];t.forEach((e,t)=>{let c=n(e,t),l=a.get(c),u;l?(u=l.el,a.delete(c),i.update?.(u,e,t)):u=r(e,t),o.set(c,{el:u,item:e}),s.push(u)});for(let{el:e,item:t}of a.values())i.destroy?.(e,t),e.remove();s.forEach((t,n)=>{let r=e.childNodes[n];r!==t&&e.insertBefore(t,r??null)}),by.set(e,o)}function Sy(e){by.delete(e)}function Cy(e,t,n,r){let i=new Set;for(let a of t){let t=n(a);i.add(t);let o=e.get(t);o||(o=r.create(a),e.set(t,o)),r.update(o,a)}for(let[t,n]of e){if(i.has(t))continue;let a=n.containerEl;r.destroy(n),a.remove(),e.delete(t)}}var wy=class{items=[];count;loading=!1;observer=null;initialCount;loadMoreCount;constructor(e={}){this.options=e,this.initialCount=e.initialCount??50,this.loadMoreCount=e.loadMoreCount??50,this.count=this.initialCount}setItems(e){this.items=e,e.length<this.count&&this.reset()}get visible(){return this.items.slice(0,this.count)}get hasMore(){return this.count<this.items.length}loadMore(){!this.hasMore||this.loading||(this.loading=!0,window.requestAnimationFrame(()=>{this.count=Math.min(this.count+this.loadMoreCount,this.items.length),this.loading=!1,this.options.onChange?.()}))}reset(){this.count=this.initialCount,this.loading=!1,this.options.onChange?.()}observeSentinel(e){return typeof IntersectionObserver>`u`?()=>void 0:(this.observer?.disconnect(),this.observer=new IntersectionObserver(e=>{e[0]?.isIntersecting&&this.loadMore()},{root:null,rootMargin:this.options.rootMargin??$go,threshold:.01}),this.observer.observe(e),()=>this.disconnect())}disconnect(){this.observer?.disconnect(),this.observer=null}};I();function Ty(e,t){let{dataSource:n,onChange:r}=t,i=t.value,a=!1,o=e.createDiv(`selector-wrapper ${t.className??``}`.trim()),s=o.createDiv(`current-value-container`),c=s.createSpan(`value-text`);(0,d.setIcon)(s.createSpan(`btn arrow-text`),$0z);let l=o.createDiv(`items-wrapper`),u=new Map,f=()=>{let e=n.find(e=>e.value===i);c.setText(e?e.text:F(75));for(let[e,t]of u)t.toggleClass($57,e===i)},p=e=>{a=e,s.toggleClass($0v,a),l.toggleClass($01,!a)};for(let e of n){let t=l.createDiv({cls:`item-container`,text:e.text});u.set(e.value,t),t.addEventListener($05,()=>{p(!1),e.value!==i&&(i=e.value,f(),r(e.value))})}s.addEventListener($05,e=>{e.stopPropagation(),p(!a)});let m=nh(window,$05,e=>{a&&(o.contains(e.target)||p(!1))},{capture:!0});return p(!1),f(),{el:o,setValue(e){i=e,f()},dispose:m}}function Ey(e){return e?.value.value===``}function Dy(e){return e.length===0?$j1:e.length===1&&Ey(e[0])?$ex:null}function Oy(e,t){return e?Dy(t):`EMPTY_TITLE`}function ky(e){return e.length===0||!Ey(e[e.length-1])}N(),X(),I(),kp(),Gp();var Ay=420,jy=16,My={EMPTY_TITLE:`TITLE CANNOT BE NULL!`,EMPTY_FILTERS:`FILTER CANNOT BE NULL!`,INCOMPLETE_FILTER:`Please finish the last filter setting first`},Ny=e=>{new d.Notice(F(My[e]))},Py=class{el;disposers=[];tagSuggest=null;constructor(e,t,n,r){this.index=t,this.filter=n,this.callbacks=r,this.el=e.createDiv(`memo-filter-input-wrapper`),t>0&&this.own(Ty(this.el,{className:`relation-selector`,dataSource:fp,value:n.relation,onChange:e=>{e!==$81&&e!==`OR`||(n.relation=e,r.onValueChanged())}})),this.own(Ty(this.el,{className:`type-selector`,dataSource:Object.values(pp),value:n.type,onChange:e=>{e!==n.type&&r.onTypeChanged(e)}})),Object.keys(pp).includes(n.type)&&this.own(Ty(this.el,{className:`operator-selector`,dataSource:pp[n.type].operators,value:n.value.operator,onChange:e=>{n.value.operator=e,r.onValueChanged()}})),this.buildValueEditor();let i=this.el.createDiv(`btn remove-btn`);(0,d.setIcon)(i,`x`),i.addEventListener($05,()=>r.onRemove())}own(e){this.disposers.push(e.dispose)}setValue(e){this.filter.value.value=e,this.callbacks.onValueChanged()}setMetadataValue(e,t){let n=this.filter.value.value;this.filter.value.value={...n,[e]:t},this.callbacks.onValueChanged()}createValueInput(e,t){let n=this.el.createEl($09,{cls:$k8,type:$0l});return n.value=e,this.disposers.push(nh(n,$09,()=>t(n.value))),n}createValueSelector(e){this.own(Ty(this.el,{className:`value-selector`,dataSource:pp[e].values,value:this.filter.value.value,onChange:e=>this.setValue(e)}))}buildValueEditor(){let{filter:e}=this;switch(e.type){case $cu:case $5i:case $du:case $6p:this.createValueSelector(e.type);return;case $6m:{let{name:t,value:n}=e.value.value;this.createValueInput(t,e=>this.setMetadataValue($o9,e)),this.createValueInput(n,e=>this.setMetadataValue($3o,e));return}case $6o:{let t=this.createValueInput(e.value.value,e=>this.setValue(e));t.id=Math.random().toString(36).substring(7),this.tagSuggest=new fh(t,e=>{t.value=e,this.setValue(e)});return}case $fi:{let t=this.el.createDiv(`date-inputer`),n=t.createSpan(`btn calendar-btn icon-btn`);(0,d.setIcon)(n,$1c);let r=t.createEl($09,{cls:$k8,type:$0l});r.value=e.value.value,this.disposers.push(nh(r,$09,()=>this.setValue(r.value))),n.addEventListener($05,()=>{new Eh(W.getState().app,$89,e=>{r.value=e,this.setValue(e)}).open()});return}default:this.createValueInput(e.value.value,e=>this.setValue(e))}}destroy(){for(this.tagSuggest?.destroy(),this.tagSuggest=null;this.disposers.length;)this.disposers.pop()?.();this.el.detach()}},Fy=class extends ph{title=``;filters=[];showTitleInput=!1;isPreviewing=!1;contentEl=null;titleRowEl=null;titleInputEl=null;filterRowEl=null;filtersWrapperEl=null;createFilterBtnEl=null;tipTextEl=null;inlineSaveBtnEl=null;rows=[];matchedCount=0;panelEl=null;panelCountEl=null;panelListEl=null;panelBridge=null;sentinelDisposer=null;paginator;constructor(e,t){super(e),this.options=t,this.paginator=new wy({initialCount:20,loadMoreCount:20,onChange:()=>this.renderPreviewList()})}onMount(){this.filters=this.options.type===$4q?[]:[gp()],this.loadQuery(),this.build(),this.renderFilters()}onUnmount(){for(let e of this.rows)e.destroy();this.rows=[],this.sentinelDisposer?.(),this.sentinelDisposer=null,this.paginator.disconnect(),this.teardownPanel()}loadQuery(){let e=lf.getQueryById(this.options.queryId??``);if(!e)return;this.title=e.title;let t=JSON.parse(e.querystring);Array.isArray(t)&&(this.filters=t)}build(){let{type:e}=this.options;if(e===$4q){let e=this.containerEl.createDiv(`dialog-header-container`),t=e.createSpan($ae);t.createSpan({cls:$2u,text:`🔖`}),t.appendText(this.options.queryId?F(81):F(80));let n=e.createEl($7,{cls:$6t});(0,d.setIcon)(n,`x`),n.addEventListener($05,()=>this.options.destroy())}this.contentEl=this.containerEl.createDiv($8p),this.filterRowEl=this.contentEl.createDiv(`form-item-container filter-form-container`),this.filterRowEl.createSpan({cls:$1k,text:F(77)}),this.filtersWrapperEl=this.filterRowEl.createDiv(`filters-wrapper`),this.createFilterBtnEl=this.filtersWrapperEl.createDiv({cls:`create-filter-btn`,text:F(76)}),this.createFilterBtnEl.addEventListener($05,()=>this.addFilter()),e===$4q&&this.ensureTitleRow(),this.buildFooter(),e===$4q&&d.Platform.isDesktop&&this.setupPanel()}ensureTitleRow(){if(this.titleRowEl||!this.contentEl||!this.filterRowEl)return;let e=this.contentEl.createDiv(`form-item-container input-form-container`);e.createSpan({cls:$1k,text:F(79)});let t=e.createEl($09,{cls:`title-input`,type:$0l});t.value=this.title,this.register(nh(t,$09,()=>this.title=t.value)),this.contentEl.insertBefore(e,this.filterRowEl),this.titleRowEl=e,this.titleInputEl=t}buildFooter(){let{type:e}=this.options,t=this.containerEl.createDiv(`dialog-footer-container`).createDiv($1n);(e===$1g||e===$55)&&(this.inlineSaveBtnEl=t.createEl($7,{cls:$ks,text:F(304)}),this.inlineSaveBtnEl.addEventListener($05,()=>void this.handleInlineSave()));let n=t.createDiv(`btns-group-container`);this.tipTextEl=n.createSpan($16),e===$1g&&n.createEl($7,{cls:`btn mod-cta`,text:F(405)}).addEventListener($05,()=>this.handlePreview());let r=e===$4q?this.options.queryId?F(38):F(304):F(78);n.createEl($7,{cls:$ks,text:r}).addEventListener($05,()=>void this.handleMainAction())}renderFilters(){if(!(!this.filtersWrapperEl||!this.createFilterBtnEl)){for(let e of this.rows)e.destroy();this.rows=this.filters.map((e,t)=>{let n=new Py(this.filtersWrapperEl,t,e,{onValueChanged:()=>this.onFiltersChanged(),onTypeChanged:e=>void this.changeFilterType(t,e),onRemove:()=>this.removeFilter(t)});return this.filtersWrapperEl?.insertBefore(n.el,this.createFilterBtnEl),n}),this.onFiltersChanged()}}onFiltersChanged(){let e=this.matchedMemos();this.matchedCount=e.length,this.tipTextEl?.empty(),this.tipTextEl?.appendText(`${F(82)} Thino `),this.tipTextEl?.createEl($7x,{text:String(e.length)}),this.tipTextEl?.appendText(` ${F(83)}`),this.tipTextEl?.toggleClass($01,this.filters.length===0),this.paginator.setItems(e),this.renderPreviewList()}matchedMemos(){return Y.getState().memos.filter(e=>e.deletedAt!==``&&e.deletedAt||e.rowStatus===$07?!1:vp(e,this.filters))}addFilter(){if(!ky(this.filters)){Ny($ex);return}this.filters=[...this.filters,gp()],this.renderFilters()}removeFilter(e){this.filters=this.filters.filter((t,n)=>n!==e),this.renderFilters()}async changeFilterType(e,t){if((t===$du||t===$ng||t===$6m||t===$6p)&&!await Up()){Op(),this.renderFilters();return}let n=pp[t].operators,r=t===$6m?{name:``,value:``}:t===$6p?pp.TIME_RANGE.values[0].value:``;this.filters=this.filters.map((i,a)=>a===e?{...i,type:t,value:{operator:n[0].value,value:r}}:i),this.renderFilters()}async saveQuery(){let e=Oy(this.title,this.filters);if(e)return Ny(e),null;let t=JSON.stringify(this.filters),{queryId:n}=this.options,r;try{let e=lf.getQueryById(n||``);n&&!n.startsWith($3u)&&e?.title===this.title?(r=(await lf.updateQuery(n,this.title,t)).find(e=>e?.id===n),r&&lf.editQuery(r),await lf.getMyAllQueries()):(r=await lf.createQuery(this.title,t),lf.pushQuery(r),await lf.getMyAllQueries())}catch(e){new d.Notice(e instanceof Error?e.message:String(e))}return r??null}applyAsTempFilter(){let e=Dy(this.filters);if(e)return Ny(e),!1;try{let e=lf.getQueryById(this.options.queryId??``);if(e&&JSON.stringify(this.filters)===e.querystring)return K.setMemoFilter(e.id),!0;let t=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify(this.filters));lf.pushQuery(t),K.setMemoFilter(t.id)}catch(e){new d.Notice(e instanceof Error?e.message:String(e))}return!0}async handleMainAction(){if(this.options.type===$4q){try{if(!await this.saveQuery())return}catch(e){console.error(e),new d.Notice(e instanceof Error?e.message:String(e))}this.options.destroy();return}this.applyAsTempFilter()&&this.options.destroy()}async handleInlineSave(){if(!this.showTitleInput){this.showTitleInput=!0,this.ensureTitleRow(),this.titleRowEl?.toggleClass($01,!1),this.inlineSaveBtnEl?.setText(F(406)),this.inlineSaveBtnEl?.removeClass(`save-btn`),this.inlineSaveBtnEl?.addClass($2c),this.titleInputEl?.focus();return}let e=await this.saveQuery();this.showTitleInput=!1,this.options.destroy(),e&&K.setMemoFilter(e.id)}handlePreview(){if(this.filters.length===0){Ny($j1);return}if(this.isPreviewing){K.setMemoFilter(``),this.isPreviewing=!1;return}let e=lf.getQueryById(this.options.queryId??``);if(e&&JSON.stringify(this.filters)===e.querystring){K.setMemoFilter(e.id);return}let t=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify(this.filters));lf.pushQuery(t),K.setMemoFilter(t.id),this.options.setPreview?.(t.id),this.isPreviewing=!0}setupPanel(){let e=document.body.createDiv(`query-preview-floating-panel`);e.addEventListener($05,e=>e.stopPropagation());let t=e.createDiv(`preview-header`);t.createSpan({cls:`preview-title`,text:F(405)}),this.panelCountEl=t.createSpan(`preview-count`),this.panelListEl=e.createDiv(`preview-memo-list`),this.panelEl=e,this.containerEl.setCssStyles({transform:`translateX(-${(Ay+jy)/2}px)`});let n=()=>{let t=this.containerEl.getBoundingClientRect();e.setCssStyles({top:`${t.top}px`,left:`${t.right+jy}px`,maxHeight:`${window.innerHeight-t.top-32}px`})};window.requestAnimationFrame(n);let r=new ResizeObserver(n);r.observe(this.containerEl),this.register(()=>r.disconnect()),this.register(nh(window,$7w,n)),this.panelBridge=new lg(this.panelListEl.createDiv()),this.addChild(this.panelBridge),this.renderPreviewList()}teardownPanel(){this.containerEl.setCssStyles({transform:``}),this.panelEl?.detach(),this.panelEl=null,this.panelListEl=null,this.panelCountEl=null,this.panelBridge=null}renderPreviewList(){if(!this.panelListEl||!this.panelBridge)return;let e=this.paginator.visible.length+(this.paginator.hasMore?1:0);if(this.panelCountEl?.setText(`${this.matchedCount} Thinos`),this.panelListEl.querySelector(`.preview-empty`)?.detach(),this.panelListEl.querySelector(`.preview-sentinel`)?.detach(),e===0){let e=this.panelListEl.createDiv({cls:`preview-empty`,text:this.filters.length===0?F(76):`${F(82)} 0 ${F(83)}`});this.panelListEl.insertBefore(e,this.panelListEl.firstChild)}if(this.panelBridge.render(C(E,null,this.paginator.visible.map(e=>C(yy,{key:e.id,memo:e})))),this.sentinelDisposer?.(),this.sentinelDisposer=null,this.paginator.hasMore){let e=this.panelListEl.createDiv(`preview-sentinel`);this.sentinelDisposer=this.paginator.observeSentinel(e)}}};N(),X(),U(),kp(),Gp();var Iy=e=>{let t=k(null),n=k(e);return n.current=e,O(()=>{if(!t.current)return;let e=new Fy(t.current,{type:n.current.type??$4q,queryId:n.current.queryId,destroy:()=>n.current.destroy(),setPreview:e=>n.current.setPreview?.(e)});return e.load(),()=>e.unload()},[]),Z($0,{ref:t,className:$av})},Ly=()=>{let{query:e}=V(),t=M.useRef(null),[n,r]=M.useState(!1),i=M.useRef(null),[a,o]=M.useState(``),s=oh(t.current,i.current,{placement:$4y,offset:[0,10]});O(()=>{n&&s.update&&s?.update()},[n]),O(()=>{t&&(0,d.setIcon)(t.current,$e3)},[t]);let c=async()=>await Up()?!0:(Op(),!1);return xp(i,()=>{r(!1),a&&K.getState().query.filter===a&&K.setMemoFilter(``)}),Z(E,{children:[Z($0,{className:`thino-inline-filter-wrapper pro`,ref:t,onClick:()=>{(async()=>{await c()&&(d.Platform.isDesktop?(r(!n),await s?.update()):new Ry(W.getState().app,e.filter,e=>{o(e)}).open())})()}}),Z($0,{ref:i,className:`thino-inline-filter-container ${n?``:$01}`,style:s.styles.popper,children:n&&Z(Iy,{type:$1g,queryId:e.filter?.startsWith($3u)&&!e.filter?.includes($6l)?``:e.filter,destroy:()=>{r(!1)},setPreview:e=>{o(e)}})})]})},Ry=class extends d.Modal{form=null;setPreview;constructor(e,t,n){super(e),this.filter=t,this.setPreview=n}onOpen(){let{contentEl:e}=this;e.empty(),this.form=new Fy(e.createDiv({cls:`thino-inline-filter-container`}).createDiv({cls:$av}),{type:$55,queryId:this.filter?.startsWith($3u)&&!this.filter?.includes($6l)?``:this.filter,destroy:()=>this.close(),setPreview:e=>this.setPreview(e)}),this.form.load()}onClose(){this.form?.unload(),this.form=null}};N(),U(),Kd();var zy=[{field:$5k,label:$kk},{field:$i3,label:`Updated Time`},{field:$ig,label:`Content Length`},{field:$6z,label:`Source Type`},{field:$cf,label:`Thino Type`}],By=({onSortChange:e,currentSort:t})=>{let{app:n}=H(),r=Gd(e=>e.sort),i=Gd(e=>e.setSort),a=t||r;return Z($0,{className:`sort-selector-wrapper`,onClick:j(t=>{t.stopPropagation();let r=new d.Menu;zy.forEach(({field:t,label:o})=>{for(let s of[$jb,$9w])r.addItem(r=>{let c=a.field===t&&a.direction===s;r.setTitle(`${o} (${s===$jb?`Ascending`:`Descending`})`).setIcon(c?`check`:``).onClick(()=>{let r={field:t,direction:s,label:o};e&&e(r),i(r),n?.saveLocalStorage($im,JSON.stringify(r))})})}),r.showAtMouseEvent(t.nativeEvent)},[t,e,n]),title:(()=>{let e=a;return`${e.label} ${e.direction===$jb?`↑`:`↓`}`})(),children:Z($8,{ref:xf(`arrow-up-down`),className:`sort-icon`})})};N(),U(),X(),I();var Vy=()=>{let{pathname:e,query:{filter:t}}=V(),{queries:n}=La(),[r,i]=D(()=>Date.now());O(()=>{let e=window.setInterval(()=>i(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let a=A(()=>{if(t){let e=lf.getQueryById(t);if(e?.title)return e.title}return e===$2p?`Recycle bin`:e===$6g?`Archive`:e===$2j?`Daily review`:e===$2r?$ni:(0,d.moment)(r).calendar(null,{sameDay:`[${F(364)||`Today`}]`,nextDay:`[Tomorrow]`,nextWeek:$nv,lastDay:`[Yesterday]`,lastWeek:`[Last] dddd`,sameElse:`LL`})},[t,e,n,r]),o=j(()=>{if(e===$2j){K.setPathname(`/`);return}K.setPathname($2j)},[e]);return Z($0,{className:`thino-focus-breadcrumb`,"aria-label":`Thino breadcrumb`,children:[Z($8,{className:`thino-focus-breadcrumb-title`,children:$0h}),Z($8,{className:`thino-focus-breadcrumb-dot`,"aria-hidden":$0q,children:`·`}),Z($7,{type:$7,className:`thino-focus-breadcrumb-subtitle`,onClick:o,"aria-label":typeof a==$q?a:void 0,children:Z(`em`,{children:a})})]})};N(),U(),X(),Wl(),I();var Hy=()=>{let{isMobileView:e,showSiderbarInMobileView:t}=B(),n=St(q.subscribe,q.getSnapshot),r=[$8q,$dy,$cj].includes(n.phase),i=n.total>0?Math.min(100,n.processed/n.total*100):0,a={"Syncing Thino Web migration data":F(254),"Fetching Thino Web updates":F(255),"Applying migrated data":F(256),"Applying synced data":F(257),"Uploading unsynced local data":F(258),"Uploading local data":F(259),"Thino Web migration completed":F(260),"Sync completed":F(261),"Thino Web sync failed":F(253),"Local data uploaded":F(262),"Upload to Thino Web failed":F(263)}[n.message]||n.message,[o]=D(M.createRef());O(()=>{o.current&&(0,d.setIcon)(o.current,$od)},[o]);let s=j(async()=>{if(!(e&&t))try{await q.pullFromWeb(q.getLastUpdatedTime()),await Y.fetchAllMemos()}catch(e){new d.Notice(`${F(253)}: ${e instanceof Error?e.message:String(e)}`)}},[e,t]),c=n.phase===$3a?F(265):n.phase===$12?F(266):r?`${F(264)} ${n.processed}/${n.total||`?`}`:``;return Z(E,{children:[Z($8,{className:`refresh-icon ${r?`is-syncing`:``}`,ref:o,role:$7,"aria-label":F(214),title:n.error||a||F(214),onClick:()=>void s()}),n.phase!==`idle`&&Z($8,{className:`thino-sync-indicator is-${n.phase}`,title:n.error||a,"aria-live":`polite`,children:[r&&Z($8,{className:`thino-sync-progress ${n.total>0?``:$g7}`,children:Z($8,{style:{width:`${i}%`}})}),Z($8,{className:`thino-sync-label`,children:c})]})]})},Uy=({onSortChange:e,currentSort:t})=>{let{query:{filter:n}}=V(),{isMobileView:r,isPhoneView:i,immersiveMode:a}=B(),{queries:o}=La(),{settings:s}=H(),c=s?.DefaultThemeForThino===$1a,[l,u]=D($9g);O(()=>{let e=lf.getQueryById(n);u(e?e.title:$9g)},[n,o]);let d=j(e=>{e.stopPropagation(),G.setShowSiderbarInMobileView(!0)},[]),f=j(()=>{G.toggleImmersiveMode()},[]);return c&&i?null:Z($0,{className:`section-header-container memos-header-container`,children:[Z($0,{className:$ae,children:[Z(Dp,{when:r,children:Z($7,{ref:xf(`panel-left`),className:$6c,onClick:d})}),c&&!i?Z(Vy,{}):Z($8,{className:$1k,children:l}),Z(Hy,{})]}),Z($0,{className:`memos-header-search-section`,children:[Z(Jp,{}),Z(qp,{}),e&&t&&Z(By,{onSortChange:e,currentSort:t}),Z(Ly,{}),Z(Ep,{}),c&&!i&&Z($7,{type:$7,className:`btn action-btn clickable-icon thino-focus-immersive-btn ${a?$3e:``}`,onClick:f,"aria-pressed":a,title:a?`Exit immersive mode (Esc)`:`Immersive mode (F)`,children:Z($8,{className:`thino-focus-immersive-label`,children:`聚焦`})})]})]})};N(),Gp(),U();function Wy(){let e=H(e=>e.verifyState),[t,n]=D(!1);return O(()=>{let e=!1;return(async()=>{let t=await Up().catch(()=>!1);e||n(t)})(),()=>{e=!0}},[e]),t}N(),U();function Gy(e){let{app:t}=H(),[n,r]=D(``);return O(()=>{if(!e||!t){r(``);return}let n=t.vault.adapter.getResourcePath((0,d.normalizePath)(e));r(n&&!e.startsWith($4t)?n:e)},[e,t]),n}N(),U(),X(),I();var Ky=()=>Z($0,{className:`user-banner-container user-banner-skeleton`,children:[Z($0,{className:$8f,children:[Z($0,{className:$73,children:[Z($0,{className:`thino-user-icon skeleton-icon`}),Z($0,{className:$93,children:[Z($8,{className:$74,children:[Z($8,{className:`username-text skeleton-text skeleton-username`}),Z($8,{className:`user-pro-badge skeleton-badge`})]}),Z($8,{className:`thino-user-quote skeleton-text skeleton-quote`})]})]}),Z($8,{className:$or,children:Z($8,{className:`btn action-btn menu-popup-btn skeleton-button`})})]}),Z($0,{className:$ar,children:Z($0,{className:`status-text`,children:[Z($0,{className:`amount-text skeleton-text skeleton-amount`}),Z($0,{className:`type-text skeleton-text skeleton-type`})]})})]}),qy=()=>{let{settings:e,plugin:t,app:n}=H(),r=Wy(),{manifest:i,showSiderbarInMobileView:a,isMobileView:o}=B(),[s,c]=D($2e),l=Gy(e?.MomentsIcon),[u,f]=D(!1);O(()=>{f(!!(n&&e&&i))},[n,e,i]),O(()=>{e&&c(e.UserName)},[e]);let p=j(()=>{K.pushHistory(`/`),K.clearQuery()},[]),m=()=>{n.setting.open(),n.setting.openTabById(i.id||$0f)},h=()=>{if(e?.needVerify){G.setLocked(!0);return}else new d.Notice(F(454)),n.setting.open(),n.setting.openTabById(i.id||$0f)},g=()=>{yf(n)},_=()=>{G.setShowSiderbarInMobileView(!1),t.settingTab.updateSettings($5o,!0)},v=()=>{new Cf(n,t,i.version).open()},y=j(async e=>{let{type:t}=e;if(t.startsWith($0l))try{return`${await pf.parseHtml(e)}`}catch(e){new d.Notice(e instanceof Error?e.message:String(e))}},[]),b=j(()=>{let e=document.body.createEl($09);e.type=$44,e.multiple=!1,e.accept=$c9,e.onchange=async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0];await y(t),document.body.removeChild(e)},e.click()},[]),x=t=>{let n=new d.Menu;G_(n,[[F(44),$3n,m],e?.needVerify&&[F(452),$o7,h],[F(106),`import`,b]]).addSeparator(),G_(n,[[F(504),$hx,g],[F(549),$42,_],[F(649),$cz,v]]),n.showAtMouseEvent(t.nativeEvent)};return u?Z($0,{className:`user-banner-container`,children:[Z($0,{className:$8f,children:[Z($0,{className:$73,onClick:()=>{n.setting.open(),n.setting.openTabById(i.id||$0f)},children:[Z($0,{ref:e=>{if(l){e?.empty();return}l||e&&(0,d.setIcon)(e,$2e)},className:$hr,style:{backgroundImage:`url("${l}")`}}),Z($0,{className:$93,children:[Z($8,{className:$74,children:[Z($8,{"aria-label":s===$lr?$95:s||$9g,className:$k7,onClick:p,children:s===$lr?$95:s||$9g}),Z($8,{className:`user-pro-badge ${r?`activated`:``}`,onClick:()=>{n.setting.open(),n.setting.openTabById(i.id||$0f)},children:`PRO`})]}),e?.MomentsQuote&&Z($8,{className:$gj,children:e?.MomentsQuote})]})]}),Z($8,{className:$or,children:[e?.DefaultThemeForThino===$3f&&!o&&Z(Hy,{}),Z($8,{ref:e=>{e&&e.hasChildNodes()||e&&(0,d.setIcon)(e,$15)},className:`btn action-btn menu-popup-btn`,onClick:x}),a&&Z($8,{ref:e=>{e&&e.hasChildNodes()||e&&(0,d.setIcon)(e,`x`)},className:`btn action-btn close-sidebar-btn`,onClick:()=>{G.setShowSiderbarInMobileView(!1)}})]})]}),Z(Nf,{statusType:$9t})]}):Z(Ky,{})};N();function Jy(e=!0){let[t,n]=D({isLoading:e,isFailed:!1,isSucceed:!1,isPending:!1});return{...t,setLoading:()=>{n({...t,isLoading:!0,isFailed:!1,isPending:!1,isSucceed:!1})},setFinish:()=>{n({...t,isLoading:!1,isFailed:!1,isPending:!1,isSucceed:!0})},setError:()=>{n({...t,isLoading:!1,isFailed:!0,isPending:!1,isSucceed:!1})},setPending:()=>{n({...t,isLoading:!1,isFailed:!1,isPending:!0,isSucceed:!1})}}}X();var Yy=class extends Mh{constructor(e){super(W.getState().app,`create-query-dialog`),this.queryId=e}onBuild(){this.mount(new Fy(this.bodyEl,{type:$4q,queryId:this.queryId,destroy:()=>this.close()}))}};function Xy(e){new Yy(e).open()}N(),U();var Zy=Ot(({query:e,className:t})=>{let{memos:n}=z(),{plugin:r}=H(),[i,a]=D(null),[o,s]=D(!1),[c,l]=D(!1),u=k(null);return O(()=>{e&&r&&(s(!0),r.thinoWorkerManager.filterMemos(n,{tag:``,duration:null,type:``,text:``,path:``,metadata:{},filter:e.id},{},!0).then(e=>{a(e.length),l(!0)}).catch(e=>{console.error(`Error calculating query count:`,e),a(0)}).finally(()=>{s(!1)}))},[e?.id,e?.updatedAt,e?.querystring,r,n]),Z($0,{className:Tf(`query-count`,o?$ly:`loaded`,t),ref:u,children:c&&i!==null&&Z($8,{className:`count-text`,children:i.toString()||``})})},(e,t)=>e.query.id===t.query.id&&e.query.updatedAt===t.query.updatedAt&&e.query.querystring===t.query.querystring);N(),U(),Ia(),X(),I();var Qy=()=>{let{queries:e}=La(),{app:t}=H(),{query:{filter:n}}=V(),r=Jy(),[i,a]=D([]),[o,s]=D(t?.loadLocalStorage($ad)||$nr);return O(()=>{a(e.filter(e=>!e.id?.toString().startsWith($6l)&&!e.id?.toString().includes($6l)).sort((e,t)=>{if(t.pinnedAt&&!e.pinnedAt)return 1;if(e.pinnedAt&&!t.pinnedAt)return-1;switch(o){case $7r:return e.title.localeCompare(t.title);case $2f:return t.title.localeCompare(e.title);case $nr:return R.getTimeStampByDate(t.createdAt)-R.getTimeStampByDate(e.createdAt);case $jd:return R.getTimeStampByDate(e.createdAt)-R.getTimeStampByDate(t.createdAt);default:return 0}}))},[e,o]),O(()=>{lf.getMyAllQueries().catch(()=>{}).finally(()=>{r.setFinish()})},[t]),Z($0,{className:`queries-wrapper`,children:[Z($0,{className:$ae,children:[Z($8,{className:$1k,children:F(37)}),Z($0,{className:`sort-btn-container`,children:[Z($8,{ref:xf($9s),className:`sort-btn`,onClick:e=>{e.stopPropagation();let n=new d.Menu;for(let e of[$7r,$2f,$nr,$jd])n.addItem(n=>{n.setTitle(F(e)).onClick(()=>{s(e),t?.saveLocalStorage($ad,e)}).setChecked(o===e)}),e===$2f&&n.addSeparator();n.showAtMouseEvent(e.nativeEvent)}}),Z($8,{ref:xf(`plus`),className:`btn create-query-btn`,onClick:()=>Xy()})]})]}),Z(Dp,{when:r.isSucceed&&i.length===0,children:Z($0,{className:`create-query-btn-container`,children:Z($8,{className:`btn`,onClick:()=>Xy(),children:F(43)})})}),Z($0,{className:`queries-container`,children:i.map(e=>Z($y,{query:e,isActive:e.id===n},`${e.id}-${(0,d.moment)(e.createdAt,$6).format(`x`)}`))})]})},$y=e=>{let{query:t,isActive:n}=e;return Z(E,{children:Z($0,{className:`query-item-container ${n?$0v:``}`,onClick:()=>{K.setMemoFilter(n?``:t.id)},children:[Z($0,{className:`query-text-container`,children:[Z($8,{ref:e=>{e&&!e.hasChildNodes()&&(0,d.setIcon)(e,$e3)},className:$2u}),Z($8,{className:`query-text`,children:[t.title,t.pinnedAt&&` 📌`]})]}),Z($0,{className:$1n,children:[Z(Zy,{query:t}),Z($8,{ref:e=>{e&&!e.hasChildNodes()&&(0,d.setIcon)(e,$15)},className:`btn action-btn toggle-btn`,onClick:e=>{e.stopPropagation();let n=new d.Menu;G_(n,[[t.pinnedAt?F(40):F(39),t.pinnedAt?$8a:$56,async()=>{try{t.pinnedAt?await lf.unpinQuery(t.id):await lf.pinQuery(t.id),lf.editQuery({...t,pinnedAt:t.pinnedAt?``:R.getDateTimeString(Date.now())})}catch(e){console.error(e)}}],[F(38),$d4,()=>Xy(t.id)],[F(767),$27,async()=>{try{let e=lf.getQueryById(t.id);if(e){let t=`${e.title} ${F(767)}`,n=await lf.createQuery(t,e.querystring);lf.pushQuery(n),await lf.getMyAllQueries(),new d.Notice(`Query "${t}" created successfully`)}}catch(e){console.error(e),new d.Notice(`Failed to duplicate query: ${e.message}`)}}],[F(41),$gl,()=>{let n=new d.Menu;G_(n,[[F(42),$gl,async()=>{try{await lf.deleteQuery(t.id)}catch(e){new d.Notice(e instanceof Error?e.message:String(e))}},!0],[F(305),`x`,()=>void 0]]),n.showAtMouseEvent(e.nativeEvent)},!0]]),n.showAtMouseEvent(e.nativeEvent)}})]})]})})};N(),U(),X(),Ia(),I(),Gp(),kp(),wn();function eb(e){return(e||Sn())?.loadLocalStorage($gi)||{}}function tb(e,t){(e||Sn())?.saveLocalStorage($gi,t)}function nb(e){return(e||Sn())?.loadLocalStorage($fc)||[]}function rb(e,t){(e||Sn())?.saveLocalStorage($fc,t)}var ib=[`📌`,`🔥`,`💡`,`⭐`,`❤️`,`🎯`,`📝`,`🚀`,`✅`,`🏷️`,`📚`,`💼`,`🎨`,`🔖`,`⚡`,`🌟`],ab=[`#e53935`,`#d81b60`,`#8e24aa`,`#5e35b1`,`#3949ab`,`#1e88e5`,`#039be5`,`#00acc1`,`#00897b`,`#43a047`,`#7cb342`,`#c0ca33`,`#fdd835`,`#ffb300`,`#fb8c00`,`#f4511e`],ob=8,sb=()=>{let e=V(e=>e.query.tag),t=V(e=>e.query.filter),n=H(e=>e.app),r=H(e=>e.settings),i=z(e=>e.tags),a=z(e=>e.tagsNum),o=r?.DefaultThemeForThino===$1a,[s,c]=D(!1),l=z(e=>e.memosHash),[u,f]=D(!0),p=A(()=>t&&t?.toString()?.startsWith($3u)&&lf.getQueryById(t),[t]),[m,h]=D([]),[g,_]=D(()=>eb(n)),[v,y]=D(()=>nb(n)),[b,x]=D((n||Sn())?.loadLocalStorage($cd)||$7r);O(()=>{f(!0);let e=(n||Sn())?.loadLocalStorage($hq);e?.tags?.length>0&&h(S(e.tags||[],e.tagsNum||{}).subTags),f(!1)},[]),O(()=>{Y.initialized&&l&&Y.updateTagsState()},[l]),O(()=>{if(!i?.length)return;let e=window.requestAnimationFrame(()=>{h(S(i,a).subTags),f(!1),(n||Sn())?.saveLocalStorage($hq,{tags:i,tagsNum:a})});return()=>cancelAnimationFrame(e)},[i,a]);let S=j((e,t)=>{let n=Array.from(e).sort();if(n.length===0)return{key:``,text:``,count:0,subTags:[]};let r={key:``,text:``,count:0,subTags:[]},i=new Map;for(let e of n){let n=e.split(`/`),a=r,o=``;for(let e=0;e<n.length;e++){let r=n[e];o+=e===0?r:`/`+r;let s=i.get(o);if(s||=a.subTags.find(e=>e.text===o),s||(s={key:r,text:o,count:t[o]||0,subTags:[],parent:a},a.subTags.push(s),i.set(o,s)),e===n.length-1){let e=s.parent;for(;e;)e.count||=0,e.count+=t[o]||0,e=e.parent}a=s}}return r},[]),C=e=>{e.stopPropagation();let t=new d.Menu;for(let e of[$7r,$2f,`byCount`,`byCountReverse`])t.addItem(t=>{t.setTitle(F(e)).onClick(()=>{x(e),n?.saveLocalStorage($cd,e)}).setChecked(b===e)}),e===$2f&&t.addSeparator();t.showAtMouseEvent(e.nativeEvent)},w=A(()=>{let e=[...m].sort(fb(b));if(v.length===0)return e;let t=new Set(v),n=e.filter(e=>t.has(e.text)),r=e.filter(e=>!t.has(e.text));return[...n,...r]},[m,b,v]);return Z($0,{className:`tags-wrapper`,children:[Z($0,{className:`tags-header title-text`,children:[Z($8,{className:$1k,children:F(`Frequently Used Tags`)}),Z($8,{ref:xf($9s),className:`tags-sort-btn`,onClick:C})]}),Z($0,{className:`tags-container`,children:u?Z($0,{className:`tag-loading`,children:$fq}):Z(E,{children:[(o&&!s?w.slice(0,ob):w).map((t,n)=>Z(cb,{tag:t,tagQuery:e,filterQuery:p,tagCustom:g,setTagCustom:_,pinnedTags:v,setPinnedTags:y},t.text+`-`+n)),o&&w.length>ob&&Z($7,{type:$7,className:`tag-list-show-more`,onClick:()=>c(e=>!e),children:s?F(`Collapse tags`)||`Collapse`:`展开剩余 ${w.length-ob} 个…`}),Z(Dp,{when:m.length<5&&Y.initialized,children:Z($8,{className:`tag-tip-container`,children:[F(`Input`),` `,Z($8,{className:`code-text`,children:[F(`#Tag`),` `]}),F(`to create tag`),$6f]})})]})})]})},cb=M.memo(e=>{let{tag:t,tagQuery:n,filterQuery:r,tagCustom:i,setTagCustom:a,pinnedTags:o,setPinnedTags:s}=e,c=H(e=>e.app),l=A(()=>n===t.text||r&&JSON.parse(r.querystring).find(e=>e.type===$6o&&e.value.value===t.text),[t.text,n,r]),u=t.subTags.length>0,[f,p]=Tv(!1),m=async e=>{if(e.ctrlKey||e.metaKey){if(!await Up()){Op();return}let e=K.getState().query.filter;if(e&&e?.startsWith($3u)){let n=lf.getQueryById(e).querystring,r=JSON.parse(n),i;if(r.some(e=>e.type===$6o&&e.value.value===t.text)){if(i=r.filter(e=>e.value.value!==t.text),i.length===0){K.setMemoFilter(``);return}let e=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify([{...i[0],relation:$81},...i.slice(1)]));lf.pushQuery(e),K.setMemoFilter(e.id)}else{i=[...r,{type:$6o,value:{value:t.text,operator:$0x},relation:`OR`}];let e=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify(i));lf.pushQuery(e),K.setMemoFilter(e.id)}}else if(n){K.setTagQuery(``);let e=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify([{type:$6o,value:{value:n,operator:$0x},relation:$81},{type:$6o,value:{value:t.text,operator:$0x},relation:`OR`}]));lf.pushQuery(e),K.setMemoFilter(e.id)}else if(!n){let e=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify([{type:$6o,value:{value:t.text,operator:$0x},relation:$81}]));lf.pushQuery(e),K.setMemoFilter(e.id)}R.copyTextToClipboard(`#${t.text} `),[`/`,$2p,$6g,$2j].includes(K.getState().pathname)||K.setPathname(`/`);return}if(l){if(K.setTagQuery(``),r){let e=JSON.parse(r.querystring).filter(e=>e.value.value!==t.text);if(e.length===0){K.setMemoFilter(``);return}let n=lf.createTempQuery(`Filter [Temp] ${Math.random().toString(36).substring(7)}`,JSON.stringify([{...e[0],relation:$81},...e.slice(1)]));lf.pushQuery(n),K.setMemoFilter(n.id)}}else await R.copyTextToClipboard(`#${t.text} `),[`/`,$2p,$6g,$2j].includes(K.getState().pathname)||K.setPathname(`/`),K.setTagQuery(t.text)},h=e=>{e.stopPropagation(),p()},g=i[t.text],_=e=>{tb(c,e),a(e)},v=e=>{let n=e===$kz,r=new d.Modal(c);r.titleEl.setText(F(n?`Set emoji for tag`:`Set color for tag`)),r.containerEl.toggleClass(n?`thino-tag-emoji-dialog`:`thino-tag-color-dialog`,!0);let a=n=>{_({...i,[t.text]:{...i[t.text],[e]:n}}),r.close()},o=r.contentEl.createDiv({cls:n?`emoji-grid`:`color-grid`});for(let e of n?ib:ab){let t=o.createEl($7,{text:n?e:void 0,cls:[n?`emoji-btn`:`color-btn`,$30]});n||(t.style.backgroundColor=e),t.addEventListener($05,()=>a(e))}n&&new d.Setting(r.contentEl).setName(F(`Custom emoji`)).addText(e=>{e.setPlaceholder(`🏷️`).onChange(()=>{});let t=e.inputEl;t.addEventListener($1s,e=>{if(e.key===$28){let e=t.value.trim();e&&a(e)}})}),r.contentEl.createDiv({cls:$1z}).createEl($7,{text:F(`Clear`)}).addEventListener($05,()=>{let a={...i};a[t.text]&&(delete a[t.text][e],a[t.text][n?$4a:$kz]||delete a[t.text]),_(a),r.close()}),r.open()};return Z(E,{children:[Z($0,{className:`tag-item-container ${l?$0v:``}`,onClick:e=>void m(e),onContextMenu:e=>{e.preventDefault(),e.stopPropagation();let n=new d.Menu,r=o.includes(t.text);G_(n,[[F(r?`Unpin tag`:`Pin tag`),r?$8a:$56,()=>{let e=r?o.filter(e=>e!==t.text):[...o,t.text];rb(c,e),s(e)}]]).addSeparator(),G_(n,[[F($nh),$ea,()=>{let e=new d.Modal(c);e.titleEl.setText(F($nh)),e.containerEl.toggleClass(`thino-rename-tag-dialog`,!0),e.contentEl.createEl(`p`,{text:`${F(`Rename all`)} #${t.text} ${F(`to`)}:`,cls:`rename-tag-desc`});let n=t.text;new d.Setting(e.contentEl).setName(F(`New tag name`)).addText(e=>{e.setValue(t.text).onChange(e=>n=e)});let r=e.contentEl.createDiv({cls:$1z});r.createEl($7,{text:F($n5)}).addEventListener($05,()=>e.close());let o=r.createEl($7,{text:F(`Confirm`),cls:$8s});o.addEventListener($05,()=>{(async()=>{if(!n||n===t.text){e.close();return}o.disabled=!0,o.setText(F(`Processing...`));let{memos:r}=z.getState(),s=t.text,l=s.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),u=RegExp(`(^|\\s|<p>|<br>)#${l}(?=[\\s,;.!?\\)\\]|}]|$)`,`g`),f=0;for(let e of r){if(e.rowStatus===$07||e.deletedAt)continue;if(!u.test(e.content)){u.lastIndex=0;continue}u.lastIndex=0;let t=e.content.replace(u,`$1#${n}`);t!==e.content&&(await Y.updateMemo(e.id,t,e.thinoType),f++)}if(i[s]){let e={...i};e[n]=e[s],delete e[s],tb(c,e),a(e)}Y.updateTagsState(),new d.Notice(`${F(`Renamed`)} ${f} thino(s)`),e.close()})()}),e.open()}]]).addSeparator(),G_(n,[[F(`Set emoji`),`smile`,()=>v($kz)],[F(`Set color`),$m0,()=>v($4a)]]),n.showAtMouseEvent(e.nativeEvent)},children:[Z($0,{className:`tag-text-container`,children:[g?.emoji?Z($8,{className:`btn tag-btn tag-emoji`,children:g.emoji},$kz):Z($8,{ref:xf($o2),className:`btn tag-btn`,style:g?.color?{color:g.color}:void 0},$o2),Z($8,{className:`tag-text`,style:g?.color?{color:g.color}:void 0,children:t.key})]}),Z($0,{className:$1n,children:[Z($8,{className:`tag-count count-text`,children:t.count}),u?Z($8,{ref:xf($0z),className:`btn action-btn toggle-btn ${f?`shown`:``}`,onClick:h}):null]})]}),u&&f&&Z($0,{className:`subtags-container`,children:t.subTags.map((e,t)=>Z(cb,{tag:e,tagQuery:n,filterQuery:r,tagCustom:i,setTagCustom:a,pinnedTags:o,setPinnedTags:s},e.text+`-`+t))})]})}),lb=new Intl.Collator(void 0,{usage:`sort`,sensitivity:$nq,numeric:!0}),ub=(e,t)=>lb.compare(e,t),db={alphabetical:(e,t)=>ub(e.text,t.text),alphabeticalReverse:(e,t)=>-ub(e.text,t.text),byCount:(e,t)=>t.count-e.count,byCountReverse:(e,t)=>e.count-t.count},fb=(e=`byCount`)=>db[e]??db.alphabetical;N(),U(),I();var pb=class extends d.Modal{plugin;settingTab;target=5;cb;constructor(e,t,n,r,i){super(e),this.app=e,this.settingTab=t,this.plugin=n,this.target=r,this.cb=i}onOpen(){let{contentEl:e}=this;e.parentElement?.classList.add($45),e.createEl($6x,{text:F(306)}),new d.Setting(e.createDiv($b8)).setName(F(311)).addSlider(e=>{e.setDynamicTooltip().setValue(this.target).setLimits(1,30,1).onChange(async e=>{this.target=e})});let t=e.createDiv($1p),n=t.createEl($7,{text:F(305)}),r=t.createEl($7,{text:F(304)});r.onclick=async()=>{this.plugin.settings.MemoDailyTarget=this.target,this.settingTab.applySettingsUpdate(),this.cb(this.target),this.close()},n.onclick=async()=>{this.close()}}onClose(){let{contentEl:e}=this;e.empty()}},mb=({allStat:e,todayTimeStamp:t,calendarType:n,handleCalendarTypeChange:r})=>{let{app:i,settings:a}=H(),{manifest:o}=B(),[s,c]=D(),[l,u]=D(5),[f,p]=D(0),[m,h]=D(0),[g,_]=D(a.HeatmapColorScheme||$3q),v=k(null),y=k(null);O(()=>{a.HeatmapColorScheme&&_(a.HeatmapColorScheme)},[a.HeatmapColorScheme]),O(()=>{let e,t=5;o&&i&&(e=i?.plugins.getPlugin(o.id),t=e?.settings.MemoDailyTarget,c(e)),u(t)},[o,i]),O(()=>{let n=e.find(e=>e.timestamp===t),r=n?n.count:0;h(r),p(Math.min(100,r/l*100))},[e,l]),O(()=>{(0,d.requireApiVersion)($4x)&&((0,d.setTooltip)(y.current,f.toFixed(2)+`%`),(0,d.setTooltip)(v.current,F(313)+` (${m}/${l})`))},[f,m]),O(()=>{v.current&&(v.current.hasChildNodes()||(0,d.setIcon)(v.current,`crosshair`),(0,d.requireApiVersion)($4x)&&(0,d.setTooltip)(y.current,f+`%`))},[v,l]);let b=j(()=>{s&&new pb(i,s?.settingTab,s,l,e=>{u(e)}).open()},[s,l]);return Z(E,{children:Z($0,{className:`usage-daily-progress-wrapper heatmap-${g}`,children:[Z($0,{ref:y,className:`daily-progress-bar`,children:Z($0,{className:`daily-progress-bar-inner`,style:{width:`${f}%`}})}),Z($0,{ref:v,className:`daily-progress-target`,onClick:b}),Z($0,{ref:e=>{e&&(0,d.setIcon)(e,n===$7s?$es:$1c),e&&d.setTooltip&&(0,d.setTooltip)(e,F(358))},className:`switch-calendar-type-btn`,onClick:()=>r&&r(n===$7s?$1q:$7s)})]})})};ia();var hb=(e,t)=>{let n=[];for(let r=0;r<=e;r++)n.push({timestamp:t+Wi*r,count:0,list:0});return n},gb=e=>e.filter(e=>!e.deletedAt&&e.rowStatus!==$07),_b=e=>e<=0?``:e<=1?`stat-day-L1-bg`:e<=2?`stat-day-L2-bg`:e<=4?`stat-day-L3-bg`:`stat-day-L4-bg`,vb=(e,t,n)=>{let r=hb(Math.floor((n-t)/Wi),t);for(let n of gb(e)){let e=new Date(n.createdAtTs??new Date(n.createdAt.replace(/\//g,`-`)).getTime()),i=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),a=Math.round((i-t)/Wi);a>=0&&a<r.length&&(r[a].count+=1,n.thinoType===$9&&(r[a].list+=1))}return r};N(),I();var yb=1440*60*1e3,bb=e=>{let t=new Date(mh(e));return new Date(t.getFullYear(),t.getMonth()+1,1).getTime()-yb},xb=e=>{let{className:t,view:n,datestamp:r}=e,i=k(null),a=k(null),o=A(()=>vb(e.thinos??[],mh(r),bb(r)),[r,e.thinos]),s=k({stat:o,props:e});s.current={stat:o,props:e};let c=e=>s.current.stat.find(t=>t.timestamp===e)??{count:0,timestamp:e,list:0};return O(()=>{if(!i.current)return;let e=new bh(i.current,{wrapperCls:[`heatmap-date-picker-wrapper`],cls:s.current.props.className,datestamp:s.current.props.datestamp,currentStamp:(0,d.moment)().startOf($04).valueOf(),toggleSelection:!0,dayCls:e=>_b(c(e.datestamp).count),decorateDay:(e,t)=>{let n=c(e.datestamp);if(n.count===0)return;let r=t.createSpan({cls:`day-item-dots`}),i=n.count-n.list;i>0&&r.createDiv({cls:`day-item-dot thino-task-dot ${_b(i)}`}),n.list>0&&r.createDiv({cls:`day-item-dot thino-list-dot ${_b(n.list)}`})},onDayHover:(e,t)=>{let n=c(e.datestamp);n.count&&Sb(new d.HoverPopover(s.current.props.view,t.currentTarget,100),{d:{date:e.date,datestamp:e.datestamp},list:n.list,task:n.count-n.list})},onMonthChange:e=>s.current.props.handleMonthChange?.(e),onChange:(e,t)=>s.current.props.handleDateItemClick?.(t,c(e))});return a.current=e,e.load(),()=>{e.unload(),a.current=null}},[n]),O(()=>{a.current?.refreshDays()},[o]),O(()=>{i.current&&(i.current.className=`heatmap-date-picker-wrapper ${t??``}`)},[t]),Z($0,{ref:i})};function Sb(e,{d:t,list:n,task:r}){e.hoverEl.toggleClass($dj,!0);let i=e.hoverEl.createDiv({cls:`thino-hover-popover-content`});i.createDiv({cls:`thino-date-item`,text:`${(0,d.moment)(t.datestamp).format($02)}`});let a=i.createDiv({cls:`thino-task-item`});a.createSpan({cls:`thino-task-item-title-text`,text:`${F(32)}: `}),a.createSpan({cls:`thino-task-item-title-count`,text:`${r}`});let o=i.createDiv({cls:$hp});o.createSpan({cls:`thino-list-item-title-text`,text:`${F(31)}: `}),o.createSpan({cls:`thino-list-item-title-count`,text:`${n}`})}N(),U(),X(),I(),rr(),wn();var Cb={width:12,height:7},wb=({initThinos:e,basicType:t})=>{let n=(0,d.moment)().endOf($04).valueOf(),r=(0,d.moment)().startOf($04).valueOf(),i=Array(6-new Date(n).getDay()).fill(0),a=Cb.width*Cb.height,o=(0,d.moment)().startOf($04).subtract(a,$2b),s=o.valueOf(),{memos:c}=z(),{view:l,app:u,settings:f}=H(),[p,m]=D(t||Eb(u||Sn())||$1q),[h,g]=D((0,d.moment)().startOf($04).valueOf()),[_,v]=D(f.HeatmapColorScheme||$3q),[y,b]=D(hb(a,s)),[x,S]=D(null),C=k(``),w=e=>{C.current=e},T=k(null);O(()=>{let t=hb(a,s);for(let n of gb(e||c)){let e=n.createdAtTs??(0,d.moment)(n.createdAt,$6).valueOf();if(Number.isNaN(e))continue;let r=(0,d.moment)((0,d.moment)(e).startOf($04).valueOf()).diff(o,$2b);r>=0&&r<t.length&&(t[r].count+=1,n.thinoType===$9&&(t[r].list+=1))}b([...t])},[c,e]),O(()=>{f.HeatmapColorScheme&&v(f.HeatmapColorScheme)},[f.HeatmapColorScheme]);let ee=j((e,t)=>{if(!t||!t.count)return;let n=t.count-t.list,r=t.list,i={date:t.timestamp,datestamp:t.timestamp};Sb(new d.HoverPopover(l,e.currentTarget,100),{d:i,list:r,task:n})},[]),te=()=>{m(p===$1q?$7s:$1q),Tb(u,p===$1q?$7s:$1q),g((0,d.moment)().startOf($04).valueOf())},ne=j(async(e,t)=>{if(t.count===0){ae(t);return}let n=K.getState().query.duration,r=n?.from,i=n?.to,a=(0,d.moment)(r).diff((0,d.moment)(i),$2b)===0;if(r===t.timestamp&&a){K.setFromAndToQuery(0,0),S(null),w(null);return}if(e.shiftKey){re(t,r,i);return}if(e.ctrlKey||e.metaKey){await ie(t.timestamp);return}ae(t)},[]),re=(e,t,n)=>{let r=e.timestamp;if(t===0){K.setFromAndToQuery(r,(0,d.moment)().endOf($04).valueOf()),w($g4);return}let i=(0,d.moment)(r).endOf($04).diff((0,d.moment)(n),$2b);t<r?C.current===`to`?i<0?K.setFromAndToQuery(r,n):(K.setFromAndToQuery((0,d.moment)(n).startOf($04).valueOf(),(0,d.moment)(r).endOf($04).valueOf()),w($g4)):C.current===$g4&&K.setFromAndToQuery(t,(0,d.moment)(r).endOf($04).valueOf()):C.current===`to`?K.setFromAndToQuery(r,n):C.current===$g4&&(K.setFromAndToQuery(r,(0,d.moment)(t).endOf($04).valueOf()),w(`to`))},ie=async e=>{let{app:t,dailyNotes:n}=W.getState(),r=Gn((0,d.moment)(e),n);if(r)if(!d.Platform.isMobile)await t.workspace.getLeaf(!0).openFile(r);else{let e=t.workspace.getLeaf(!1);e===null&&(e=t.workspace.getLeaf(!0)),e.openFile(r)}},ae=e=>{[`/`,$2p].includes(K.getState().pathname)||K.setPathname(`/`),K.setFromAndToQuery(e.timestamp,(0,d.moment)(e.timestamp).endOf($04).valueOf()),S(e)},oe=A(()=>Z(xb,{className:`heatmap-${_}`,view:l,datestamp:h,thinos:e||c,handleMonthChange:e=>{g(e)},handleDateItemClick:(e,t)=>void ne(e,t)}),[JSON.stringify(y),e,c,l,h,_]);return Z(E,{children:[p===$7s&&oe,p===$1q&&Z($0,{className:`usage-heat-map-wrapper heatmap-${_}`,ref:T,children:[Z($0,{className:`day-tip-text-container`,children:[Z($8,{className:$16,children:F($4g)[0]}),Z($8,{className:$16}),Z($8,{className:$16,children:F($4g)[2]}),Z($8,{className:$16}),Z($8,{className:$16,children:F($4g)[4]}),Z($8,{className:$16}),Z($8,{className:$16,children:F($4g)[6]})]}),Z($0,{className:`usage-heat-map`,children:[y.slice(y.length-84+i.length,y.length).map((e,t)=>{let n=_b(e.count);return Z($8,{"data-timestamp":e.timestamp,"data-count":e.count,"data-list-count":e.list,"data-task-count":e.count-e.list,className:`stat-container ${n} ${x===e?`current`:``} ${r===e.timestamp?`today`:``}`,onMouseOver:t=>ee(t,e),onClick:t=>void ne(t,e)},t)}),i.map((e,t)=>Z($8,{className:`stat-container null`},t))]})]}),!t&&Z(mb,{allStat:y,todayTimeStamp:r,calendarType:p,handleCalendarTypeChange:te})]})};function Tb(e,t){try{e?.saveLocalStorage($kt,t)}catch(e){console.error(e)}}function Eb(e){try{return e?.loadLocalStorage($kt)||$1q}catch(e){return console.error(e),$1q}}N(),X(),I(),U(),kp(),Gp(),wn();function Db(e){return(e||Sn())?.loadLocalStorage($5n)||[]}function Ob(e,t){(e||Sn())?.saveLocalStorage($5n,t)}var kb=()=>{let{app:e,settings:t}=H(),[n,r]=D(()=>Db(e)),[i,a]=D(!1),o=[{name:F(141),path:$2r,iconID:`star`},{name:F(56),path:$6h,iconID:$e7},{name:F(507),path:`/gallery`,iconID:$53},{name:F(708),path:$kd,iconID:$hu},{name:F(55),path:$6g,iconID:$11},{name:F(45),path:$2p,iconID:`recycle`}],s=A(()=>new Set(n),[n]),c=A(()=>o.filter(e=>!s.has(e.path)),[s,t]),l=A(()=>o.filter(e=>s.has(e.path)),[s,t]),u=k([]),f=k(null);O(()=>{u.current.forEach((e,t)=>{if(e){let n=[...c,...i?l:[]];n[t]&&(0,d.setIcon)(e,n[t].iconID)}})},[t,c,l,i]),O(()=>{f.current&&(0,d.setIcon)(f.current,i?`chevron-up`:$15)},[i,f.current]);let p=j(async t=>{if((t.path===$2r||t.path===$6h||t.path===$kd)&&!await Up()){Op();return}if(K.setPathname(t.path),t.path===$2r&&K.getState().pathname===$2r){e.workspace.trigger($c6);return}K.clearQuery()},[e]),m=j((t,i,a)=>{t.preventDefault(),t.stopPropagation();let o=new d.Menu;o.addItem(t=>{t.setIcon(a?`eye`:`eye-off`).setTitle(F(a?378:377)).onClick(()=>{let t=a?n.filter(e=>e!==i.path):[...n,i.path];Ob(e,t),r(t)})}),o.showAtMouseEvent(t.nativeEvent)},[e,n]),h=(e,n,r)=>Z($0,{className:`path-entry-container ${K.getState().pathname===e.path?$0v:``} ${t.DeleteThinoDirectly&&e.path===$2p?$01:``} ${e.path===$2r||e.path===$6h||e.path===$kd?$99:``}`,onClick:()=>void p(e),onContextMenu:t=>m(t,e,r),children:[Z($8,{ref:e=>u.current[n]=e,className:$hh}),Z($8,{className:$hi,children:e.name})]},e.path);return Z($0,{className:`path-entry-wrapper`,children:[c.map((e,t)=>h(e,t,!1)),l.length>0&&Z(E,{children:[Z($0,{className:`path-entry-container path-entry-more`,onClick:()=>a(!i),children:[Z($8,{ref:f,className:$hh}),Z($8,{className:$hi,children:F(379)})]}),i&&l.map((e,t)=>h(e,c.length+t,!0))]})]})};N(),U();var Ab=()=>{let e=z(e=>e.memos),t=z(e=>e.tags),n=A(()=>{if(!e?.length)return 0;let t=e[e.length-1];if(!t?.createdAt)return 0;let n=(0,d.moment)(t.createdAt,$6);return n.isValid()?(0,d.moment)().diff(n,$2b)+1:0},[e]),r=A(()=>e?.length?e.filter(e=>!e.deletedAt&&e.rowStatus!==$07).length:0,[e]);return!e||e.length===0?null:Z($0,{className:`thino-focus-heatbox-header`,"aria-hidden":$0q,children:[Z($0,{className:`thino-focus-heatbox-value`,children:[Z(`em`,{children:n.toLocaleString()}),Z($8,{className:`thino-focus-heatbox-unit`,children:`天`})]}),Z($0,{className:`thino-focus-heatbox-subtitle`,children:[r.toLocaleString(),` 想法 · `,t?.length||0,` 标签`]})]})};N(),U(),X(),I(),kp(),Gp(),wn();var jb=[{name:()=>F(141),path:$2r,icon:`star`,proGated:!0},{name:()=>F(56),path:$6h,icon:$e7,proGated:!0},{name:()=>F(507),path:`/gallery`,icon:$53},{name:()=>F(708),path:$kd,icon:$hu,proGated:!0},{name:()=>F(55),path:$6g,icon:$11},{name:()=>F(45),path:$2p,icon:`recycle`}],Mb=()=>{let{settings:e,plugin:t,app:n,manifest:r}=H(),{isPhoneView:i}=B(),a=()=>{n?.setting?.open?.(),n?.setting?.openTabById?.(r?.id||$0f)},o=async e=>{if(e.proGated&&!await Up()){Op();return}K.setPathname(e.path),e.path===$2r&&n?.workspace?.trigger?.($c6),K.clearQuery()},s=i=>{let a=new d.Menu;G_(a,[[F(93),$if,()=>K.setPathname($2j)]]).addSeparator();let s=(n||Sn())?.loadLocalStorage($5n),c=Array.isArray(s)?s:[];G_(a,jb.filter(t=>!c.includes(t.path)&&!(e?.DeleteThinoDirectly&&t.path===$2p)).map(e=>[e.name(),e.icon,()=>void o(e)])).addSeparator(),G_(a,[[F(504),$hx,()=>yf(n)],[F(549),$42,()=>{G.setShowSiderbarInMobileView(!1),t?.settingTab?.updateSettings?.($5o,!0)}],[F(649),$cz,()=>new Cf(n,t,r?.version).open()]]),e?.needVerify&&(a.addSeparator(),G_(a,[[F(452),$o7,()=>{e?.needVerify?G.setLocked(!0):new d.Notice(F(454))}]])),a.showAtMouseEvent(i.nativeEvent)};return i?null:Z($0,{className:`thino-focus-sidebar-footer`,children:Z($0,{className:`thino-focus-sidebar-footer-actions`,role:$gt,children:[Z($7,{type:$7,className:$60,onClick:a,children:[Z($8,{className:$5m,ref:xf($42),"aria-hidden":$0q}),Z($8,{className:$5e,children:F(44)})]}),Z($7,{type:$7,className:$60,onClick:s,children:[Z($8,{className:$5m,ref:xf($15),"aria-hidden":$0q}),Z($8,{className:$5e,children:F(379)})]})]})})};N(),U(),I();var Nb=()=>{let e=z(e=>e.memos),{activeMemos:t,activeDays:n}=A(()=>{let t=e||[],n=new Set,r=0;for(let e of t){if(e.deletedAt||e.rowStatus===$07)continue;r++;let t=e.createdAt;if(!t)continue;let i=new Date(t);Number.isNaN(i.getTime())||n.add(`${i.getFullYear()}-${i.getMonth()}-${i.getDate()}`)}return{activeMemos:r,activeDays:n.size}},[e]),r=e=>e.toLocaleString();return Z($0,{className:`thino-focus-heat-meta`,"aria-hidden":$0q,children:[Z($8,{className:$7y,children:[r(t),` `,F(570)||`想法`]}),Z($8,{className:$7y,children:[r(n),` `,F(572)||`天`]})]})};N(),U(),X(),I();var Pb=()=>{let{settings:e}=H(),{isPhoneView:t}=B();if(e?.DefaultThemeForThino!==$1a||!t)return null;let n=()=>{G.setShowSiderbarInMobileView(!1)};return Z($0,{className:`thino-focus-mobile-menu-header`,role:$9t,children:[Z($0,{className:`thino-focus-mobile-menu-brand`,"aria-hidden":$0q,children:[Z($8,{className:`thino-focus-mobile-menu-mark`,children:`t`}),Z($8,{className:`thino-focus-mobile-menu-name`,children:$0c})]}),Z($7,{type:$7,className:`thino-focus-mobile-menu-btn`,"aria-label":F($9e)||$9e,onClick:n,children:Z($8,{ref:xf(`x`),"aria-hidden":$0q})})]})};N(),U(),X(),I();var Fb=()=>{let{app:e,manifest:t}=H();return Z($0,{className:`thino-focus-mobile-settings`,children:Z($7,{type:$7,className:`thino-focus-mobile-settings-btn`,onClick:()=>{G.setShowSiderbarInMobileView(!1),e?.setting?.open?.(),e?.setting?.openTabById?.(t?.id||$0f)},children:[Z($8,{ref:xf($42),className:`thino-focus-mobile-settings-icon`,"aria-hidden":$0q}),Z($8,{className:`thino-focus-mobile-settings-label`,children:F(44)})]})})};N(),U(),ia(),X();var Ib=e=>{let{settings:t}=H(),n=V(),{isMobileView:r,isPhoneView:i,showSiderbarInMobileView:a}=B(),o=k(null),s=A(()=>e=>{let t=G.getState().showSiderbarInMobileView;if(!t){window.removeEventListener($05,s,{capture:!0});return}let n=e.target;!n.closest(`.close-sidebar-btn`)&&n.closest(`.memos-sidebar-wrapper`)||o.current?.contains(e.target)||o.current?.parentNode?.contains(e.target)&&(t&&e.stopPropagation(),G.setShowSiderbarInMobileView(!1),window.removeEventListener($05,s,{capture:!0}))},[]);O(()=>{G.setShowSiderbarInMobileView(!1)},[n]),O(()=>{a?document.body.classList.add(Ui):document.body.classList.remove(Ui)},[a]),O(()=>{r&&a&&window.addEventListener($05,s,{capture:!0})},[r,a]);let c=t?.DefaultThemeForThino,l=c===$3f,u=c===$1a,d=u&&i;return Z(`aside`,{className:Tf(`memos-sidebar-wrapper`,e.className),ref:o,children:[e.children,d&&Z(Pb,{}),!d&&Z(qy,{}),l&&!r?e?.sidebarPosition===$2i?Z(wb,{}):null:u?i?Z(E,{children:[Z(Ab,{}),Z(wb,{}),Z(Qy,{}),Z(sb,{}),Z(kb,{}),Z(Fb,{})]}):Z(E,{children:[Z($0,{className:`thino-focus-sidebar-search-slot`,children:Z(Ep,{})}),Z(kb,{}),Z(Qy,{}),Z(sb,{}),Z(wb,{}),Z(Nb,{}),Z(Mb,{})]}):Z(E,{children:[Z(wb,{}),Z(kb,{}),Z(Qy,{}),Z(sb,{})]}),l&&!r&&e?.sidebarPosition===$1y&&Z(E,{children:[Z(kb,{}),Z(Qy,{}),Z(Nf,{statusType:`sidebar`})]}),l&&!r&&e?.sidebarPosition===$2i&&Z(sb,{})]})};N();var Lb=({rows:e=3,className:t=``})=>Z($0,{className:`loading-skeleton-container ${t}`,children:Array.from({length:e}).map((e,t)=>Z($0,{className:`skeleton-item`,children:[Z($0,{className:`skeleton-header`,children:[Z($0,{className:`skeleton-avatar`}),Z($0,{className:`skeleton-meta`,children:[Z($0,{className:`skeleton-line skeleton-line-short`}),Z($0,{className:`skeleton-line skeleton-line-tiny`})]})]}),Z($0,{className:`skeleton-content`,children:[Z($0,{className:$k0}),Z($0,{className:$k0}),Z($0,{className:`skeleton-line skeleton-line-medium`})]})]},t))});N(),I(),X(),U();var Rb=()=>{let{settings:e}=H(),[t,n]=M.useState(``);return Z($0,{className:`locked-screen-wrapper`,children:Z($0,{className:`locked-screen-content`,children:[Z($0,{className:`locked-screen-header`,children:Z($0,{className:`locked-screen-header-title`,children:F(450)})}),Z($0,{className:`locked-screen-body`,children:Z($0,{className:`locked-screen-body-content`,children:[Z($0,{className:`locked-screen-body-content-text`,children:[Z($0,{className:`locked-screen-body-content-text-title`,children:F(442)}),Z($0,{className:`locked-screen-body-content-text-desc`,children:F(443)})]}),Z($0,{className:`locked-screen-body-content-inputer`,children:[Z($09,{onKeyDown:n=>{n.key===$28&&(e?.password===t?G.setLocked(!1):new d.Notice(F(451)))},onChange:e=>{n(e.target.value)},value:t,type:$41,className:`locked-screen-body-content-input`}),Z($7,{className:`locked-screen-body-content-btn`,onClick:()=>{e?.password===t?G.setLocked(!1):new d.Notice(F(451))},children:F(449)})]})]})})]})})};N(),X(),I();var zb=()=>{let e=()=>{G.setGlobalEditorShown(!1)},t=()=>{let e=document.querySelector(`.memo-editor-wrapper.fullscreen-editor .confirm-btn`);if(e){try{e.dispatchEvent(new PointerEvent(`pointerdown`,{bubbles:!0}))}catch{e.dispatchEvent(new MouseEvent($4b,{bubbles:!0}))}window.setTimeout(()=>{G.setGlobalEditorShown(!1)},250)}};return Z($0,{className:`thino-focus-mobile-compose-bar`,role:`toolbar`,children:[Z($7,{type:$7,className:`thino-focus-mobile-compose-close`,onClick:e,"aria-label":F($9e)||$9e,children:Z($8,{ref:xf(`x`),"aria-hidden":$0q})}),Z($0,{className:`thino-focus-mobile-compose-title`,"aria-hidden":$0q,children:[F(`New thought`)||`新想法`,Z($8,{className:`thino-focus-mobile-compose-title-sep`,children:` · `}),Z($8,{className:`thino-focus-mobile-compose-title-sub`,children:`Draft`})]}),Z($7,{type:$7,className:`thino-focus-mobile-compose-save`,onClick:t,children:F(304)})]})};N(),I();var Bb=()=>{let[e,t]=D(()=>Date.now());O(()=>{let e=window.setInterval(()=>t(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let n=(0,d.moment)(e),r=n.format($nv),i=n.format($17),a=(0,d.moment)(),o=n.startOf($04).diff(a.startOf($04),$2b),s;return s=o===0?F(364):o===1?F(416):o===-1?F(365):n.format(`LL`),Z($0,{className:`thino-focus-date-line`,"aria-hidden":$0q,children:[Z($8,{className:`thino-focus-date-dot`}),Z($8,{className:`thino-focus-date-text`,children:[s,`,`,r]}),Z($8,{className:`thino-focus-date-sep`,children:`·`}),Z($8,{className:`thino-focus-date-time`,children:i})]})};wn();var Vb=class extends sh{fuzzySearchItemsOptimized(e,t){let n=(0,d.prepareFuzzySearch)(e);return t.map(e=>{let t=n(e.path);return t?{item:e,match:t,score:t.score}:null}).sort((e,t)=>t?.score-e?.score).filter(Boolean)}getSuggestions(e){let t=xn().vault.getFiles().filter(e=>[$jw,`jpg`,`jpeg`,`gif`].includes(e.extension)),n=e.toLowerCase();return this.fuzzySearchItemsOptimized(n,t).map(e=>e.item)}renderSuggestion(e,t){let n=e.basename,r=e.parent?.path||``;t.toggleClass($8v,!0),t.createSpan({cls:$hn,text:n}),t.createSpan({cls:`suggestion-path`,text:r})}selectSuggestion(e){this.inputEl.value=e.path,this.inputEl.trigger($09),this.close()}};N(),I(),_f(),U(),rr(),X();var Hb=({name:e,desc:t,children:n,controlRef:r})=>Z($0,{className:`setting-item`,children:[Z($0,{className:`setting-item-info`,children:[Z($0,{className:`setting-item-name`,children:e}),Z($0,{className:`setting-item-description`,children:t})]}),Z($0,{className:`setting-item-control`,ref:r,children:n})]}),Ub=({name:e,desc:t,placeholder:n,value:r,inputRef:i,onValue:a})=>Z(Hb,{name:e,desc:t,children:Z($09,{type:$0l,ref:i,placeholder:n,defaultValue:r,onInput:e=>a(e.currentTarget.value)})}),Wb=({name:e,desc:t,value:n,options:r,onValue:i})=>Z(Hb,{name:e,desc:t,children:Z($ef,{className:`dropdown`,defaultValue:n,onChange:e=>i(e.currentTarget.value),children:r.map(([e,t])=>Z($a5,{value:e,children:t},e))})}),Gb=({name:e,desc:t,value:n,onValue:r})=>Z(Hb,{name:e,desc:t,controlRef:e=>{!e||e.hasChildNodes()||new d.ToggleComponent(e).setValue(n??!1).onChange(r)}}),Kb=()=>{let{settings:e,app:t,plugin:n}=H(),{manifest:r}=B(),i=Gy(e?.MomentsIcon),[a,o]=M.useState(0),s=M.useRef(null),c=M.useRef(null),[l,u]=M.useState({enabled:!1,path:``,format:``});O(()=>{if(a===2&&e?.EnabledLocationList.find(e=>e.value===$00))if(!Mn())u({enabled:!1,path:``,format:``});else{let e=An().folder,t=An().format;u({enabled:!0,path:e,format:t})}},[a]),O(()=>{c&&(c.current=null)},[a]),O(()=>{s.current&&(c.current||=new Vb(s.current))},[s.current]);let f=(e,r)=>{let i=n;i||=t.plugins.getPlugin($0f),i.settingTab.updateSettings(e,r)},p=()=>{t.setting.open(),t.setting.openTabById(r.id||$0f)},m=A(()=>{let e=[[F(584),F(583)],[F(582),F(581)],[F(580),F(579)],[F(578),F(577)],[F(576),F(575)]][a];return e?Z(E,{children:[Z(`h1`,{children:e[0]}),Z(`p`,{children:e[1]})]}):null},[a]),h=e?.UserName===$lr?$95:e?.UserName||$9g,g=[{id:$3f,name:F(566),desc:F(565),columns:[$1y,$1f,$2i]},{id:$lu,name:F(564),desc:F(563),columns:[$1y,$1f]},{id:$1a,name:F(567),desc:F(568),columns:[$1y,$1f]}],_=(e,n)=>{u({...l,[e===`folder`?$46:`format`]:n});try{let r=t.internalPlugins.getPluginById($2l);r.instance.options={...r.instance.options,[e]:n},r.saveData({...r.instance.options,[e]:n})}catch(e){console.error(e)}},v=()=>{switch(a){case 0:return Z(E,{children:[Z($0,{className:`thino-user-preview-wrapper`,children:Z($0,{className:$73,onClick:p,children:[Z($0,{ref:t=>{if(t){if(e?.MomentsIcon){t.empty();return}(0,d.setIcon)(t,$2e)}},className:$hr,style:{backgroundImage:`url("${i}")`}}),Z($0,{className:$93,children:[Z($8,{className:$74,children:Z($8,{"aria-label":h,className:$k7,children:h})}),e?.MomentsQuote&&Z($8,{className:$gj,children:e?.MomentsQuote})]})]})}),Z($0,{className:`thino-user-info-wrapper`,children:[Z(Ub,{name:F(2),desc:F(3),placeholder:`Thino 😏`,value:e?.UserName,onValue:e=>f($j8,e)}),Z(Ub,{name:F(512),desc:F(513),placeholder:`Share thino with the world`,value:e?.MomentsQuote,onValue:e=>f($cq,e)}),Z(Ub,{name:F(514),desc:F(515),placeholder:`Input url or file path`,value:e?.MomentsIcon,inputRef:s,onValue:e=>f($eo,e)})]})]});case 1:return Z($0,{className:Tf(`theme-selector-group`,$57),children:g.map(t=>{let n=e?.DefaultThemeForThino===t.id,r=()=>f($bs,t.id);return Z($0,{className:Tf(`theme-selector`,n&&$57),onClick:r,children:[Z($0,{className:`theme-selector-header-component`,children:[Z($0,{className:`theme-selector-header`,children:t.name}),Z($0,{className:`theme-selector-description`,children:t.desc})]}),Z($0,{className:`theme-selector-content`,children:t.columns.map(e=>Z($0,{className:`${e}-column column-component`},e))}),Z($0,{className:`theme-selector-footer`,children:Z($7,{className:$2c,disabled:n,onClick:r,children:F(n?561:562)})})]},t.id)})});case 2:return Z(E,{children:[Z($0,{className:`daily-note-plugin-status`,children:[Z($0,{className:`daily-note-plugin-status-header`,children:[Z($0,{className:`plugin-status-header`,children:F(559)}),Z($0,{className:`plugin-status-description`,children:F(560)})]}),Z($0,{className:`daily-note-plugin-status-content`,children:l.enabled&&Z($0,{className:`daily-note-format`,children:[Z(Ub,{name:F(557),desc:F(558),placeholder:$02,value:l.format,onValue:e=>_(`format`,e.trim())}),Z(Ub,{name:F(555),desc:F(556),placeholder:$02,value:l.path,onValue:e=>_(`folder`,e.trim())})]})}),Z($0,{className:`daily-note-plugin-status-footer`,children:[!l.enabled&&Z($0,{className:`notice-click`,children:F(588)}),Z($7,{className:$2c,disabled:l.enabled,onClick:()=>{if(!l.enabled){t.internalPlugins.getPluginById($2l).enable();let e=An().folder,n=An().format;u({enabled:!0,format:n,path:e})}},children:l.enabled?F(553):F(554)})]})]}),Z($0,{className:`thino-daily-settings-wrapper`,children:[Z(Wb,{name:F(602),desc:F(510),value:e?.DefaultTimePrefix,options:[[$17,$17],[$dn,$dn]],onValue:e=>f($7f,e)}),Z(Wb,{name:F(545),desc:F(546),value:e?.InsertType,options:[[$5q,F(547)],[$2k,F(548)]],onValue:e=>f(`InsertType`,e)}),e?.InsertType===$2k&&Z(Ub,{name:F(5),desc:F(6),placeholder:$om,value:e?.InsertAfter,onValue:e=>f($8j,e)}),Z(Wb,{name:F(543),desc:F(542),value:e?.ProcessContentTarget,options:[[$2k,F(177)],[$9j,F(544)]],onValue:e=>f(`ProcessContentTarget`,e)}),e?.ProcessContentTarget===$2k&&Z(Ub,{name:F(7),desc:F(8),placeholder:$om,value:e?.ProcessEntriesBelow,onValue:e=>f($18,e)})]})]});case 3:return Z($0,{className:`thino-custom-settings-wrapper`,children:[Z(Wb,{name:F(13),desc:F(14),value:e?.DefaultPrefix,options:[[$na,F(31)],[`Task`,F(32)]],onValue:e=>f($ay,e)}),Z(Gb,{name:F(29),desc:F(30),value:e?.UseVaultTags,onValue:e=>f($cx,e)}),Z(Gb,{name:F(193),desc:F(194),value:e?.DeleteThinoDirectly,onValue:e=>f($cn,e)})]});case 4:return Z($0,{className:`thino-congrats`,children:[Z($0,{className:`final-congrats-text`,children:[Z(`p`,{className:`ready-use`,children:F(600)}),Z(`p`,{className:`start-to-use`,children:F(601)})]}),Z($0,{className:`next-btns-group`,children:[Z($7,{onClick:()=>{gf()?window.open($2t,$1l):window.open($2h,$1l)},children:F(552)}),Z($7,{className:$2c,onClick:()=>{f($5o,!1),G.getState().isMobileView?(window.setTimeout(()=>{G.setShowSiderbarInMobileView(!0)},500),window.setTimeout(()=>{G.setExitSteps(!0)},1e3)):window.setTimeout(()=>{G.setExitSteps(!0)},800)},children:F(551)})]})]})}};return Z($0,{className:`onboarding-view-container`,children:Z($0,{className:`onboarding-view-wrapper`,children:Z($0,{"data-onboarding-step":a,className:`onboarding-view-content`,children:[Z($0,{className:`onboarding-step-heading`,children:[Z($0,{className:`onboarding-step-count`,children:[a+1,`/5`]}),Z($0,{className:$ot,children:Z($7,{ref:xf(`x`),onClick:()=>{f($5o,!1)}})})]}),Z($0,{className:`onboarding-view-details`,children:[Z($0,{className:`details-content`,children:[Z($0,{className:`onboarding-header-group`,children:m}),Z($0,{className:`onboarding-form`,children:v()})]}),Z($0,{className:`details-footer`,children:[Z($0,{className:`skip-btn`,children:a!==4&&Z($7,{onClick:()=>{f($5o,!1)},children:F(585)})}),Z($0,{className:`navigate-btns-group`,children:[a!==0&&Z($7,{onClick:()=>o(a-1),children:F(587)}),a!==4&&Z($7,{className:$2c,onClick:()=>o(a+1),children:F(586)}),a===4&&Z($7,{className:`details-settings-btn`,onClick:p,children:F(550)})]})]})]})]})})})};I();var qb=()=>[F(589),F(590),F(591),F(592),F(593)+F(607),F(597),F(598),F(594),F(595),F(596)],Jb=[0,1,5,2,3,6,7,8,9],Yb=e=>{let t=qb();return e===$3f?t:Jb.map(e=>t[e])},Xb=(e,t,n)=>Math.min(Math.max(e+t,0),Math.max(n-1,0));I();var Zb=class extends d.Modal{index=0;closed=!1;constructor(e,t,n){super(e),this.steps=t,this.onFinish=n}onOpen(){this.modalEl.addClass(`thino-intro-tour`),this.titleEl.setText($0h),this.render()}close(){this.closed||(this.closed=!0,super.close())}onClose(){this.closed=!0,this.contentEl.empty(),this.onFinish()}go(e){let t=Xb(this.index,e,this.steps.length);t!==this.index&&(this.index=t,this.render())}render(){let{contentEl:e,index:t,steps:n}=this;e.empty(),e.createEl(`p`,{cls:`thino-intro-tour-text`,text:n[t]});let r=e.createDiv({cls:`thino-intro-tour-dots`});n.forEach((e,n)=>{r.createSpan({cls:`thino-intro-tour-dot`+(n===t?` is-active`:``)})});let i=t===n.length-1,a=e.createDiv({cls:`thino-intro-tour-buttons`});t>0&&(a.createEl($7,{text:F(417)}).onclick=()=>this.go(-1)),a.createEl($7,{cls:$2c,text:F(i?599:418)}).onclick=()=>{i?this.close():this.go(1)}}};N(),X(),Gp(),U(),wn();var Qb=(e,t)=>{O(()=>{if(!e.needVerify){G.setLocked(!1);return}G.setLocked(!0)},[e?.needVerify]),O(()=>{(async()=>{document.body.toggleClass(`hide-pro`,!await Up())})()},[t])},$b=(e,t)=>{O(()=>{if(!t)return;let n=new Zb(xn(),Yb(e),()=>G.setExitSteps(!1));return n.open(),()=>n.close()},[t])},ex=({settings:e,pathname:t,isMobileView:n,isPhoneView:r,memoListView:i,sectionRef:a})=>{let o=e?.DefaultThemeForThino,s=o===$3f,c=o===$1a,l=`memos-${t===`/`?i:$0y}-view`,u=c?Tf($1a,r&&`focus-mobile`):!s||n?$lu:$3f,d=`heatmap-${e?.HeatmapColorScheme||$3q}`;return Z(`section`,{ref:a,id:`page-wrapper`,"data-path":t,className:Tf(l,u,d),children:[Z(Ib,{sidebarPosition:$1y,className:$l2}),Z(`main`,{className:$hd,children:MT(t)}),s&&!n&&Z(Ib,{sidebarPosition:$2i,className:`right-sidebar`})]})};function tx(){let{settings:e,verifyState:t}=H(),{pathname:n}=V(),{isMobileView:r,isPhoneView:i,memoListView:a,globalEditorShown:o,locked:s,exited:c,loaded:l,immersiveMode:u}=B(),d=k(null),f=e?.FirstLoaded||xn().plugins.getPlugin($0f).settings?.FirstLoaded;return Qb(e,t),$b(e?.DefaultThemeForThino,c),O(()=>{if(e?.DefaultThemeForThino!==$1a){document.body.classList.remove($5b);return}return document.body.classList.toggle($5b,!!u),()=>{document.body.classList.remove($5b)}},[u,e?.DefaultThemeForThino]),O(()=>{if(e?.DefaultThemeForThino!==$1a||i)return;let t=e=>{if(e.defaultPrevented)return;let t=e.target,n=t?.tagName?.toLowerCase(),r=n===$09||n===$0o||t?.isContentEditable;if(e.key===$7m){G.getState().immersiveMode&&(G.setImmersiveMode(!1),e.preventDefault());return}(e.key===`f`||e.key===`F`)&&!r&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&(G.toggleImmersiveMode(),e.preventDefault())};return window.addEventListener($1s,t,!0),()=>window.removeEventListener($1s,t,!0)},[e?.DefaultThemeForThino,i]),f?Z(Kb,{}):!l&&!s&&!o?Z(`section`,{className:`memos-list-view`,children:[Z(Ib,{sidebarPosition:$1y,className:$l2}),Z(`main`,{className:$hd,children:Z(Lb,{rows:5})})]}):Z(E,{children:[s&&Z(Rb,{}),!s&&o&&Z(E,{children:e?.DefaultThemeForThino===$1a&&i?Z($0,{className:`thino-focus-mobile-fullscreen focus focus-mobile`,children:[Z(zb,{}),Z(Bb,{}),Z(Iv,{editorType:$64})]}):Z(Iv,{editorType:$64})}),!s&&!o&&Z(ex,{settings:e,pathname:n,isMobileView:r,isPhoneView:i,memoListView:a,sectionRef:d})]})}N();var nx={"*":Z(tx,{})};Ia(),rr(),X();var rx=async e=>{let t=e.querySelectorAll($6y);for(let e of t)e.src.startsWith($38)?e.src=await Ah(e.getAttribute($46)||(0,d.normalizePath)(e?.parentElement?.getAttribute($9a)||``)):e.src=await Ah(e.src)},ix=e=>{let{app:t,settings:n}=W.getState();n?.AutoSaveWhenOnMobile&&d.Platform.isMobile&&Fa(e.split($ls)[1],$14).arrayBuffer().then(async e=>{let n,r=Un();for(let e in r)if(r[e]instanceof d.TFile){n=r[e];break}n!==void 0&&await t.vault.createBinary(await t.vault.getAvailablePathForAttachments(`Pasted Image ${(0,d.moment)().format($08)}`,$jw,n),e)})};X(),Ia();var ax=e=>{let t=[];return e.map(e=>{t.length==0?t.push({date:(0,d.moment)(e.createdAt,$6).format($02),have:[e]}):t.some(t=>{if(t.date==(0,d.moment)(e.createdAt,$6).format($02))return t.have.push(e),!0})||t.push({date:(0,d.moment)(e.createdAt,$6).format($02),have:[e]})}),t},ox=e=>Y.getState().commentMemos.filter(t=>t.linkId===e.hasId).sort((e,t)=>R.getTimeStampByDate(e.createdAt)-R.getTimeStampByDate(t.createdAt)).map(e=>({...e,createdAtStr:R.getDateTimeString(e.createdAt),dateStr:R.getDateString(e.createdAt)})),sx=e=>{let t=W.getState().settings,n=Da(),r=t?.ShowDate?` `:``,i=/comment:(.*)$/g,a=/^\d{14}/g,o=(e,t,n)=>{let r=(0,d.moment)(e.createdAt,$6).format($17);return n?n.replace(/{TIME}/g,r).replace(/{CONTENT}/g,t):`${r} ${t}`},s=e=>{let t=e.match(/TASK-(.*)?/g);return t?t[1]:``},c=e=>e===$06?$7k:e===$0p?$dl:e.match(/TASK-(.*)?/g)?`- [${s(e)}] `:`- `,l=e=>e.reduce((e,s)=>{let l=s.sourceType===$0g?`[[${s.path}]]`:`${s.content}`,u=t?.ShowTime?o(s,l,t?.DefaultMemoComposition):l,f=`${c(s.thinoType)}${u}`,p=``;return t.CommentOnMemos&&s.hasId!==void 0&&s.hasId!==``&&(p=ox(s).reduce((e,o)=>{let s=c(o.thinoType),l=o.content.replace(i,``).replace(a,``),u=t?.ShowDate?`${s}[[${(0,d.moment)(o.createdAt).format(n)}]] ${(0,d.moment)(o.createdAt).format($17)} ${l}`:`${s}${l}`;return e+r+` `+u+`
  134. `},``)),e+r+f.replace(/ \^\S{6}/g,``)+`
  135. `+p},``);return e.reduce((e,r)=>{let i=t?.ShowDate?`- [[${(0,d.moment)(r.date,$02).format(n)}]]\n`:``,a=l(r.have),o=t?.ShowDate&&t?.AddBlankLineWhenDate&&!t?.CommentOnMemos?`
  136. `:``;return e+i+a+o},``).replace(/<br>/g,`
  137. `)};ia();function cx(e){let t=new Set;return e.forEach(e=>{let n=new RegExp(Gi).exec(e.content),r=new RegExp(qi).exec(e.content);if(n)for(let e=1;e<n.length;e++)t.add(n[e]);if(r)for(let e=1;e<r.length;e++)t.add(r[e])}),Array.from(t)}function lx(e,t){let n=e;for(let e of t.remove)n=n.replace(RegExp(`#${e}`,`g`),``);if(n=n.trim(),t.add.length===0)return n;let r=t.add.map(e=>`#${e}`).join(` `);return t.position===$bp?`${r} ${t.newLine?`
  138. `:``}${n}`:`${n} ${t.newLine?`
  139. `:``}${r}`}I(),X();var ux=class extends ph{selectedTags=[];selectedTagsEl;inputEl;suggester=null;renderBeforeSelection(e){}renderAfterInput(e){}onMount(){let e=this.containerEl.createDiv({cls:`thino-tag-operation`});e.createDiv({cls:`tag-operation-title`,text:this.title});let t=e.createDiv({cls:`tag-operation-content`});this.renderBeforeSelection(t);let n=t.createDiv({cls:`tag-operation-content-title selected-tags`});n.createDiv({cls:$o9,text:F(472)}),n.createDiv({cls:$9w,text:F(474)}),this.selectedTagsEl=t.createDiv({cls:`tag-operation-content-tags selected-tags`}),this.inputEl=t.createDiv({cls:`tag-operation-content-inputer`}).createEl($09,{attr:{placeholder:F(475)}}),this.registerDomEvent(this.inputEl,$1s,e=>{e.key===$28&&this.addTag(this.inputEl.value)}),this.suggester=new fh(this.inputEl,e=>this.addTag(e)),this.register(()=>this.suggester?.destroy()),this.renderAfterInput(t);let r=t.createDiv({cls:`tag-operation-content-btn-group`});r.createEl($7,{cls:`cancel-btn`,text:F(305)}).onclick=()=>this.onCancel(),r.createEl($7,{cls:`save-btn`,text:F(304)}).onclick=()=>this.onSave(),this.renderSelectedTags()}addTag(e){if(!e)return;let t=new Set(this.selectedTags);t.add(e),this.selectedTags=Array.from(t),this.suggester?.clearInput(),this.renderSelectedTags(),this.onSelectionChanged()}removeTag(e){this.selectedTags=this.selectedTags.filter(t=>t!==e),this.renderSelectedTags(),this.onSelectionChanged()}onSelectionChanged(){}renderSelectedTags(){this.selectedTagsEl.empty();for(let e of this.selectedTags){let t=this.selectedTagsEl.createDiv({cls:$8e,text:e});t.onclick=()=>this.removeTag(e)}}},dx=class extends ux{title=F(470);constructor(e,t){super(e),this.options=t}onCancel(){this.options.closeDialog([])}onSave(){this.options.closeDialog(this.selectedTags)}},fx=class extends ux{title=F(469);existTags=[];removedTags=[];existTagsEl=null;position=$j2;newLine=!1;constructor(e,t){super(e),this.options=t,this.existTags=t.thinos?.length?cx(t.thinos):[]}renderBeforeSelection(e){if(this.existTags.length===0)return;let t=e.createDiv({cls:`tag-operation-content-title exist-tags`});t.createDiv({cls:$o9,text:F(471)}),t.createDiv({cls:$9w,text:F(473)}),this.existTagsEl=e.createDiv({cls:`tag-operation-content-tags exist-tags`}),this.renderExistTags()}renderAfterInput(e){let t=e.createDiv({cls:`tag-operation-settings`});new d.Setting(t.createDiv()).setName(F(463)).addDropdown(e=>{e.addOption($j2,F(477)),e.addOption($bp,F(476)),e.setValue($j2).onChange(e=>{this.position=e})}),new d.Setting(t.createDiv()).setName(F(467)).addToggle(e=>{e.setValue(!1).onChange(e=>{this.newLine=e})})}onSelectionChanged(){this.renderExistTags()}renderExistTags(){if(this.existTagsEl){this.existTagsEl.empty();for(let e of this.existTags){let t=[$8e];this.removedTags.includes(e)&&t.push(`tag-operation-content-tag-removed`);let n=this.existTagsEl.createDiv({cls:t.join(` `),text:e});n.onclick=()=>{this.removedTags=this.removedTags.includes(e)?this.removedTags.filter(t=>t!==e):[...this.removedTags,e],this.selectedTags.includes(e)&&(this.selectedTags=this.selectedTags.filter(t=>t!==e),this.renderSelectedTags()),this.renderExistTags()}}}}onCancel(){this.options.closeDialog()}onSave(){this.options.closeDialog(),this.handleBulkTagEdit()}async handleBulkTagEdit(){let e=[];for(let t of this.options.thinos){let n=lx(t.content,{remove:this.removedTags,add:this.selectedTags,position:this.position,newLine:this.newLine});if(t&&t.content!==n){let r=await Y.updateMemo(t.id,n?.trim());e.push(r)}}e.length>0&&(Y.editMemoBulk(e),K.clearQuery())}};N(),U(),X(),Ia(),I(),kp();var px=async(e,t)=>{if(!(t!==$2z&&t!==$4v)){if(t===$4v){let t=e.querySelectorAll(`.thino-moment-icon`),n=e.find(`.moments-view-user-icon`),r=e.find(`.moments-view-background`);for(let e of t){let t=await hg(e);e.style.backgroundImage=`url(${t})`}if(n){let e=await hg(n);n.style.backgroundImage=`url(${e})`}if(r){let e=await hg(r);r.style.backgroundImage=`url(${e})`}}else if(t===$2z){let t=e.querySelectorAll(`.icon-img`);for(let e of t){let t=await hg(e);e.style.backgroundImage=`url(${t})`}}}},mx=class extends d.Modal{view=null;constructor(e,t){super(e),this.thinos=t}onOpen(){super.onOpen(),this.containerEl.toggleClass([$2m,$et],!0),this.contentEl.empty(),this.view=new fx(this.contentEl,{thinos:this.thinos,closeDialog:this.close.bind(this)}),this.view.load()}onClose(){super.onClose(),this.view?.unload(),this.view=null}},hx=({thinosCount:e,thinos:t})=>{let{memoListView:n}=B(),{query:r,pathname:i}=V(),{settings:a,app:o}=H(),{tag:s,duration:c,type:l,text:u,filter:f,path:p}=r,m=lf.getQueryById(f),h=!!(s||c&&c.from<c.to||l||u||m||p),g=async()=>{if(!(t?.length>0))return;let e=sx(ax(t));await R.copyTextToClipboard(e),new d.Notice(F(110))},_=async()=>{await M_(t)&&await L_(t,a.DeleteThinoDirectly,{updateTags:!0})},v=async()=>{await M_(t)&&await R_(t,{updateTags:!0})},y=async()=>{await M_(t)&&await I_(t,{updateTags:!0})},b=async()=>{await M_(t)&&await z_(t,{updateTags:!0,editRestoredDaily:!0})},x=async()=>{await M_(t)&&await F_(t,{updateTags:!0})},S=async()=>{await M_(t)&&new mx(o,t).open()},C=async e=>{document.body.toggleClass($2d,!0),window.setTimeout(()=>{(async()=>{if(new d.Notice(F(89)),!e){new d.Notice(F(493));return}await px(e,n),await rx(e);let t;t=document.body.hasClass(`theme-dark`)?`#232323`:`#eaeaea`,Kg(e,{backgroundColor:t,pixelRatio:window.devicePixelRatio*2}).then(t=>{ix(t),document.body.toggleClass($2d,!1),Uh({imgUrl:t}),new d.Notice(F(494)),e.hasClass($5r)?e.toggleClass($5r,!1):e.closest(`.share-image`).toggleClass($5r,!1)}).catch(e=>{document.body.toggleClass($2d,!1),console.error(e)})})()},0)},w=async()=>{let e=document.querySelector(`.memolist-container`);e.toggleClass($5r,!0);try{n===$1c?(e.find($ev)&&await C(e.find($ev)),e.find($gy)&&await C(e.find($gy))):n===$2x?e.find($kc)&&await C(e.find($kc)):await C(e)}catch(t){console.error(t),new d.Notice(F(495)),e.toggleClass($5r,!1)}},T=()=>{let e=``;t.forEach((n,r)=>{e+=`> [!thino] ${n.createdAt}\n${n.content.split(`
  140. `).map(e=>e.trim()?`> ${e}\n`:`>
  141. `)}\n\n`+(r===t.length-1?$bh:`
  142. ------
  143. `)});let n=(0,d.moment)().format($6);E_({createdAt:n,updatedAt:n,content:e.replace(/(^|\n),>/g,`
  144. >`),id:`temp-`+Math.random().toString(36).slice(2,11),thinoType:$9,sourceType:$00,rowStatus:$0b,visibility:$4k,pinned:!1,creatorName:$0c,deletedAt:``,path:``,resourceList:[]},`clean`)},E=e=>{let n=new d.Menu;G_(n,[[F(727),`x`,()=>K.clearQuery()]]),n.addSeparator(),G_(n,[[F(371),$27,()=>void g()],[F(496),$53,()=>void w()],[F(645),$53,T]]),n.addSeparator(),i===`/`?G_(n,[[F(374),$o2,()=>void S()],[F(373),$11,()=>j_(o,F(55),x)],[F(372),$3m,()=>j_(o,F(41),_)],[F(376),$er,()=>void(async()=>{if(!await k_()){Op();return}t?.length>0&&W_(o,t)})()]]):i===$6g?G_(n,[[F(375),$11,()=>j_(o,F(54),y)],[F(372),$3m,()=>j_(o,F(41),_)]]):i===$2p&&G_(n,[[F(375),$91,()=>j_(o,F(54),b)],[F(372),$3m,()=>j_(o,F(41),v)]]),n.showAtMouseEvent(e.nativeEvent)};return Z($0,{className:`filter-query-container ${h?``:$01}`,children:[Z($0,{className:`filter-query`,children:[Z($8,{className:$16,children:F(77)}),Z($0,{"data-filter-type":$pp,className:$1x+(m?``:$01),onClick:()=>{K.setMemoFilter(``)},children:[Z($8,{className:$2u,children:`🔖`}),` `,m?.title]}),Z($0,{"data-filter-type":$70,className:$1x+(s?``:$01),onClick:()=>{K.setTagQuery(``)},children:[Z($8,{className:$2u,children:`🏷️`}),` `,s]}),Z($0,{"data-filter-type":$gm,className:$1x+(l?``:$01),onClick:()=>{K.setMemoTypeQuery(``)},children:[Z($8,{className:$2u,children:`📦`}),` `,hp(l)]}),c&&c.from<c.to&&Z($0,{"data-filter-type":$g1,className:`filter-item-container`,children:[Z($0,{className:`day-picker-component-group`,children:[Z($8,{className:$2u,children:`🗓️`}),` `,Z(Th,{type:$0l,startOrEnd:$lc,defaultValue:(0,d.moment)(c.from,`x`).valueOf(),handleValueChange:e=>{let t=(0,d.moment)(c.to,`x`),n=(0,d.moment)(e,`x`),r=n.isAfter(t)||n.isSame(t);K.setFromAndToQuery(r?t.startOf($04).valueOf():(0,d.moment)(e,`x`).startOf($04).valueOf(),c.to)}}),Z($8,{children:F(1)}),Z(Th,{type:$0l,startOrEnd:$5q,defaultValue:(0,d.moment)(c.to,`x`).add(1,$2b).valueOf(),handleValueChange:e=>{let t=(0,d.moment)(c.from,`x`),n=(0,d.moment)(e,`x`),r=n.isBefore(t)||n.isSame(t),i=(0,d.moment)(e,`x`).endOf($04).valueOf();K.setFromAndToQuery(c.from,r?t.endOf($04).valueOf():i)}})]}),Z($0,{ref:xf(`x`),className:$6t,onClick:()=>{K.setFromAndToQuery(0,0)}})]}),Z($0,{className:$1x+(u?``:$01),onClick:()=>{K.setTextQuery(``)},children:[Z($8,{className:$2u,children:`🔍`}),` `,u]}),Z($0,{className:$1x+(p?``:$01),onClick:()=>{K.setPathQuery(``)},children:[Z($8,{className:$2u,children:`📦`}),` `,Z($8,{className:`path-text`,children:p})]})]}),Z($0,{className:`thino-filter-items`,children:[e&&Z($0,{className:`thinos-count`,children:`${e?`${e} Thinos `:``}`},$d2),Z($0,{ref:xf($15),className:`btn memo-action-menu`,onClick:E},`menu`)]})]})};N();function gx({allItems:e,initialCount:t=50,loadMoreCount:n=50,enabled:r=!0,onLoadMore:i}){let[a,o]=D(t),[s,c]=D(!1),l=k(null),u=k(!1),d=e.slice(0,a),f=a<e.length,p=j(()=>{!f||u.current||(u.current=!0,c(!0),window.requestAnimationFrame(()=>{o(Math.min(a+n,e.length)),c(!1),u.current=!1,i?.()}))},[f,a,n,e.length,i]),m=j(()=>{o(t),c(!1),u.current=!1},[t]);return O(()=>{e.length<a&&m()},[e.length,a,m]),O(()=>{if(!r||!l.current||!f)return;let e=new IntersectionObserver(e=>{e[0].isIntersecting&&!u.current&&p()},{root:null,rootMargin:$go,threshold:.01});return e.observe(l.current),()=>{e.disconnect()}},[r,f,p]),{displayedItems:d,hasMore:f,loadingMore:s,sentinelRef:l,loadMore:p,reset:m}}N();function _x(e=!1,t=`300px`,n=.01,r){let i=k(null),[a,o]=D(e);return O(()=>{if(a||!i.current)return;let e=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&o(!0)})},{root:r?document.querySelector(r):null,rootMargin:t,threshold:n});return e.observe(i.current),()=>e.disconnect()},[a]),[i,a]}N(),X(),I(),U();var vx=()=>{},yx=Ot(({memo:e,index:t})=>{let n=t<50,[r,i]=_x(n,`300px`,0,$7e);return n?Z(yy,{memo:e}):Z($0,{ref:r,className:`lazy-memo-container`,children:i?Z(yy,{memo:e}):Z($0,{className:$js,style:{minHeight:`80px`}})})},(e,t)=>e.memo.id===t.memo.id&&e.memo.updatedAt===t.memo.updatedAt&&e.memo.content===t.memo.content);yx.displayName=`LazyMemo`;var bx=({dayMark:e,isCollapsed:t,onToggle:n,onJumpToRange:r})=>{let i=k(null);O(()=>{!i.current||!d.setTooltip||(0,d.setTooltip)(i.current,F(409))},[e]);let a=j(e=>{if(d.Keymap.isModifier(e.nativeEvent,$gp)){e.preventDefault(),r&&r();return}n()},[r,n]);return Z($0,{ref:i,className:Tf(`day-mark`,e===$1w&&$1w,t&&`folded`),onClick:a,children:Z($8,{className:`day-mark-text`,children:`${t?`▸`:`▾`} ${e===$1w?`${e} 📌`:e}`})})},xx=Ot(({item:e,index:t})=>e.type===$b4?Z(bx,{dayMark:e.dayMark??``,isCollapsed:!!e.collapsed,onToggle:e.toggleCollapse??vx,onJumpToRange:e.jumpToRange}):Z(yx,{memo:e.memo,index:t}));xx.displayName=`ItemRenderer`;var Sx=({memos:e,className:t=``,showDayMark:n=!1,dayMarkRange:r=$04,sortConfig:i})=>{let a=H(e=>e.settings?.hidePinnedGroup??!1),o=B(e=>e.collapsedGroups),s=B(e=>e.toggleCollapsedGroup),c=B(e=>e.setCollapsedGroup),l=A(()=>new Set(o),[o]);O(()=>{a&&!l.has($1w)?c($1w,!0):!a&&l.has($1w)&&c($1w,!1)},[a]);let u=j(e=>{e&&s(e)},[s]),f=j(e=>{if(!r||e===$1w)return;let t={day:$02,week:`YYYY-[W]WW`,month:$b0,quarter:$op,year:$j9}[r],n=(0,d.moment)(e,t);n.isValid()&&K.setFromAndToQuery(n.startOf(r).valueOf(),n.endOf(r).valueOf())},[r]),p=e.length>100,m=Tt(e),h=p?m:e,{displayedItems:g,hasMore:_,loadingMore:v,sentinelRef:y}=gx({allItems:A(()=>{let e=[];if(n&&r){let t=EC(h,r);Object.keys(t).sort((e,t)=>e===$1w?-1:t===$1w?1:i?.sortOrder===$9w?t.localeCompare(e):e.localeCompare(t)).forEach(n=>{let r=l.has(n);e.push({type:$b4,dayMark:n,id:`dm-${n}`,collapsed:r,toggleCollapse:()=>u(n),jumpToRange:()=>f(n)}),!r&&(t[n]||[]).forEach(t=>{e.push({type:$jt,memo:t,id:t.id})})})}else h.forEach(t=>{e.push({type:$jt,memo:t,id:t.id})});return e},[h,n,r,i?.sortOrder,l,u,f]),initialCount:50,loadMoreCount:50,enabled:!0});return Z($0,{className:Tf(`simple-list`,t),children:[g.map((e,t)=>Z(xx,{item:e,index:t},e.id)),_&&Z($0,{ref:y,className:`infinite-scroll-sentinel`,style:{height:$iw,margin:$mu},children:v&&Z($0,{className:$f5,style:{textAlign:$1f,padding:$mv,opacity:.6},children:F(46)})}),!_&&g.length>0&&Z($0,{className:`completion-message`,style:{textAlign:$1f,padding:$mv,opacity:.6},children:F(59)}),!_&&g.length===0&&Z($0,{className:`empty-state`,style:{textAlign:$1f,padding:`40px`,opacity:.6},children:F(58)})]})};function Cx(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function wx(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)}function Tx(e){let t=`${e.getMonth()+1}`.padStart(2,`0`),n=`${e.getDate()}`.padStart(2,`0`);return`${e.getFullYear()}-${t}-${n}`}function Ex(e,t){return Tx(e)===Tx(t)}function Dx(e,t){let n=wx(e,-((e.getDay()-t+7)%7));return Array.from({length:7},(e,t)=>wx(n,t))}function Ox(e,t){let n=new Date(e.getFullYear(),e.getMonth(),1),r=Dx(new Date(e.getFullYear(),e.getMonth()+1,0),t)[6],i=[];for(let e=Dx(n,t)[0];e<=r;e=wx(e,7))i.push(Dx(e,t));return i}function kx(e,t){let n=[];for(let r=Cx(e);r<=t;r=wx(r,1))n.push(r);return n}function Ax(e,t=30){return{start:wx(e,-Math.floor(t/2)),end:wx(e,Math.floor(t/2))}}function jx(e,t,n){return t===$0s?new Date(e.getFullYear(),e.getMonth()+n,1):t===$22?wx(e,7*n):t===$no?wx(e,30*n):wx(e,n)}function Mx(e){let t=new Map;for(let n of[...e].sort((e,t)=>e.start-+t.start)){let e=Tx(n.start),r=t.get(e);r?r.push(n):t.set(e,[n])}return t}function Nx(e,t){return e.length<=t?{shown:[...e],hidden:0}:{shown:e.slice(0,t-1),hidden:e.length-(t-1)}}N(),I();function Px({byDay:e,date:t,onEdit:n}){let r=k(null),[i,a]=D(!1),[o,s]=D(!1),c=A(()=>{let{start:n,end:r}=Ax(t,30),a=kx(n,r).filter(t=>e.has(Tx(t)));return i?a.reverse():a},[e,t,i]),l=j(()=>window.setTimeout(()=>{r.current&&Kg(r.current,{backgroundColor:$4i,pixelRatio:window.devicePixelRatio*2}).then(e=>{new d.Notice(F(89)),ix(e),Uh({imgUrl:e})}).catch(e=>{console.error(e)})},0),[]),u=j(e=>{let t=new d.Menu;G_(t,[[F(138),$8d,()=>l()]]),t.showAtMouseEvent(e.nativeEvent)},[l]);return c.length===0?Z($0,{className:$hj,children:Z($8,{className:`rbc-agenda-empty`,children:F(411)})}):Z($0,{className:$hj,children:Z($2x,{ref:r,className:`rbc-agenda-table`,children:[Z(`thead`,{onContextMenu:u,children:Z(`tr`,{children:[Z(`th`,{className:$a7,onClick:()=>a(e=>!e),children:F(460)+(i?` 🔼`:` 🔽`)}),Z(`th`,{className:$a7,onClick:()=>s(e=>!e),children:F(461)+(o?` 🔼`:` 🔽`)}),Z(`th`,{className:$a7,children:F(462)})]})}),Z(`tbody`,{children:c.map(t=>{let r=Tx(t),i=e.get(r)??[],a=o?[...i].reverse():i;return a.map((e,i)=>Z(`tr`,{children:[i===0&&Z(`td`,{rowSpan:a.length,className:`rbc-agenda-date-cell`,children:(0,d.moment)(t).format(`ddd MMM DD`)}),Z(`td`,{className:`rbc-agenda-time-cell`,children:(0,d.moment)(e.start).format($17)}),Z(`td`,{className:`rbc-agenda-event-cell`,onDoubleClick:()=>n(e.resource),children:Z(yy,{memo:e.resource})})]},`${r}_${e.resource.id}`))})})]})})}N(),X();function Fx(e,t){e.hoverEl.toggleClass($dj,!0),e.addChild(new lg(e.hoverEl,yy,{memo:t}))}function Ix({event:e}){let t=e.resource,n=t.content.split(`
  145. `)[0].slice(0,20),r=M.useRef(null),i=M.useRef(null);O(()=>{if(i.current)return(0,d.setIcon)(i.current,$1c),()=>{r.current&&=null}},[r]);let a=j(e=>{r.current&&d.Keymap.isModifier(e.nativeEvent,$gp)&&Fx(new d.HoverPopover(W.getState().view,r.current,100),t)},[r.current]);return Z($8,{className:`rbc-event-renderer`,"data-source-type":t.sourceType,"data-thino-type":t.thinoType,"data-thino-id":t.id,ref:r,"aria-label":t.path,onMouseOver:a,children:[Z(Lx,{event:e}),Z($8,{children:n})]})}var Lx=({event:e})=>{let t=M.useRef(null),n=e.resource;O(()=>{t.current&&(0,d.setIcon)(t.current,n.thinoType===$9?$1c:n.thinoType===$06?`square`:$7v)},[n?.thinoType,t]);let r=j(async e=>{e.stopPropagation(),e.preventDefault(),await(async()=>{let e=await Y.updateMemo(n.id,n.content,n.thinoType===$06?$0p:$06);e&&Y.editMemo(e)})()},[n?.thinoType,n?.id,n?.content]);return Z(E,{children:Z($8,{className:`rbc-event-icon-group`,children:[Z($8,{className:`rbc-event-icon`,ref:t,onClick:e=>void r(e)}),Z($8,{className:Tf(`rbc-event-time`,$01),children:Z($8,{className:`rbc-event-time-text`,children:(0,d.moment)(e.start).format($17)})})]})})};N(),I();var Rx=e=>F(e===$0s?412:e===$22?413:e===$04?414:415);function zx({icon:e,label:t,onClick:n}){let r=k(null);return O(()=>{r.current&&(0,d.setIcon)(r.current,e)},[e]),Z($7,{ref:r,type:$7,onClick:n,"aria-label":t})}function Bx({date:e,label:t,view:n,views:r,onNavigate:i,onView:a}){return Z($0,{className:`rbc-toolbar`,children:[Z($8,{className:Tf($jx,`thino-view-custom-toolbar`),children:[Z(zx,{icon:$2v,label:F(417),onClick:()=>i(`PREV`)}),Z(zx,{icon:`dot`,label:F(364),onClick:()=>i(`TODAY`)}),Z(zx,{icon:$0z,label:F(418),onClick:()=>i(`NEXT`)})]}),Z($8,{className:`rbc-toolbar-label`,children:Z(Th,{type:$0l,handleValueChange:e=>i($fi,new Date(Number(e))),defaultText:t,defaultValue:e.valueOf()})}),Z($8,{className:$jx,children:r.map(e=>Z($7,{type:$7,className:Tf({"rbc-active":n===e}),onClick:()=>a(e),children:Rx(e)},e))})]})}N();var Vx=250;function Hx({children:e,onOpen:t,onEdit:n}){let r=k(null),i=k(null);O(()=>()=>{r.current!==null&&window.clearTimeout(r.current)},[]);let a=j(()=>{i.current&&t(i.current)},[t]),o=j(()=>{if(r.current!==null){window.clearTimeout(r.current),r.current=null,n();return}r.current=window.setTimeout(()=>{r.current=null,a()},Vx)},[a,n]),s=j(e=>{e.key!==$28&&e.key!==` `||(e.preventDefault(),a())},[a]);return Z($0,{ref:i,className:`rbc-event`,tabIndex:0,"aria-describedby":$0c,onClick:o,onKeyDown:s,children:e})}N(),I(),X(),wn();var Ux=[$0s,$no,$22,$04],Wx=({thinos:e})=>{let[t,n]=D(Sn()?.loadLocalStorage($di)||$0s),[r,i]=D(()=>new Date),[a,o]=D(null),[s,c]=D(!1),[l,u]=D(null),[f,p]=D(null),m=k(null),h=j(e=>{m.current=e,p(e)},[]),{styles:g}=oh(l,f,{placement:$4y,offset:[0,4]}),_=A(()=>d.moment.localeData().firstDayOfWeek(),[]),v=A(()=>Mx(e.map(e=>({start:(0,d.moment)(e.createdAt,$6).toDate(),resource:e}))),[e]);O(()=>{Sn()?.saveLocalStorage($di,t)},[t]),O(()=>{if(!a||!s)return;let t=e.find(e=>e.id===a.id);t&&t!==a&&o(t)},[e,a,s]);let y=j(()=>{c(!1),o(null)},[]);xp(m,y);let b=j((e,t)=>{u(t),o(e),c(!0)},[]),x=j(e=>{G.setEditMemoId(e.id)},[]),S=j((e,n)=>{y(),i(r=>e===`TODAY`?new Date:e===$fi?n??r:jx(r,t,e===`PREV`?-1:1))},[t,y]),C=A(()=>t===$0s?Ox(r,_):t===$22?[Dx(r,_)]:[[Cx(r)]],[t,r,_]),w=A(()=>{if(t===$0s)return(0,d.moment)(r).format(`MMMM YYYY`);if(t===$04)return(0,d.moment)(r).format(`dddd MMM DD`);if(t===$22){let e=C[0];return`${(0,d.moment)(e[0]).format(`MMM DD`)} — ${(0,d.moment)(e[6]).format(`MMM DD [W]WW`)}`}let{start:e,end:n}=Ax(r,30);return`${(0,d.moment)(e).format($02)} — ${(0,d.moment)(n).format($02)}`},[t,r,C]),T=new Date;return Z($0,{className:`calendar-view`,children:[Z($0,{className:`rbc-calendar`,children:[Z(Bx,{date:r,label:w,view:t,views:Ux,onNavigate:S,onView:n}),t===$no?Z(Px,{byDay:v,date:r,onEdit:x}):Z($0,{className:Tf(`thino-cal-grid`,`thino-cal-view-${t}`),children:[Z($0,{className:`thino-cal-head`,children:C[0].map(e=>Z($0,{className:$a7,children:(0,d.moment)(e).format(t===$04?$nv:`ddd`)},Tx(e)))}),Z($0,{className:`thino-cal-body`,children:C.map(e=>Z($0,{className:`thino-cal-week`,children:e.map(e=>{let a=v.get(Tx(e))??[],{shown:o,hidden:s}=t===$0s?Nx(a,3):{shown:a,hidden:0},c=t===$0s&&e.getMonth()!==r.getMonth();return Z($0,{className:Tf(`thino-cal-day`,Ex(e,T)&&`rbc-today`,c&&`rbc-off-range-bg`),children:[Z($0,{className:Tf(`rbc-date-cell`,c&&`rbc-off-range`),children:e.getDate()}),Z($0,{className:`thino-cal-events`,children:[o.map(e=>Z(Hx,{onOpen:t=>b(e.resource,t),onEdit:()=>x(e.resource),children:Z(Ix,{event:e})},e.resource.id)),s>0&&Z($7,{type:$7,className:`rbc-show-more`,onClick:()=>{i(e),n($04)},children:`+${s} ${F(379)}`})]})]},Tx(e))})},Tx(e[0])))})]})]}),Z($0,{ref:h,style:g.popper,className:Tf(`thino-popup-container`,s?``:$01),children:a&&Z(yy,{memo:a})})]})};function Gx(e,t){return t<=0?1:Math.max(1,Math.ceil(e/t))}function Kx(e,t){return Math.min(Math.max(e,0),Math.max(0,t-1))}function qx(e,t,n){if(n<=0)return[...e];let r=Kx(t,Gx(e.length,n))*n;return e.slice(r,r+n)}var Jx=class{items=[];currentPage=0;visibleCount;constructor(e,t){this.mode=e,this.pageSize=t,this.visibleCount=t>0?t:2**53-1}setItems(e){this.items=e,this.currentPage=0,this.visibleCount=this.pageSize>0?this.pageSize:2**53-1}get total(){return this.items.length}get visible(){return this.mode===$gb?this.items.slice(0,this.visibleCount):qx(this.items,this.currentPage,this.pageSize)}get page(){return Kx(this.currentPage,this.pageCount)}get pageCount(){return this.mode===$gb?1:Gx(this.items.length,this.pageSize)}get remaining(){return this.mode===$gb?Math.max(0,this.items.length-this.visibleCount):0}setPage(e){this.currentPage=Kx(e,this.pageCount)}loadMore(){this.pageSize<=0||(this.visibleCount+=this.pageSize)}};function Yx(e,t){if(!t)return 0;let n=String(e??``).toLowerCase(),r=t.toLowerCase(),i=n.indexOf(r);if(i===0)return n.length===r.length?4:3;if(i>0)return/[^\p{L}\p{N}]/u.test(n[i-1])?2:1;let a=0;for(let e of r)if(a=n.indexOf(e,a)+1,a===0)return-1;return .5}function Xx(e,t){return Yx(e,t)>=0}function Zx(e,t){let n=e==null||e===``,r=t==null||t===``;return n||r?n===r?0:n?1:-1:typeof e==$2s||typeof t==$2s?Number(e)-Number(t):typeof e==$0e&&typeof t==$0e?e-t:String(e).localeCompare(String(t),void 0,{numeric:!0,sensitivity:$nq})}function Qx(e,t,n,r,i,a){let o=n.filter(e=>e.id!==a&&e.value!==``),s=r.trim();return!o.length&&!s?[...e]:e.filter(e=>{for(let n of o){let r=t[n.id];if(r&&!Xx(r(e),n.value))return!1}return!s||i.some(n=>Xx(t[n]?.(e),s))})}function $x(e,t,n,r={}){let i=t[0],a=i&&n[i.id];if(!a)return[...e];let o=r[i.id]??``,s=i.desc?-1:1;return[...e].sort((e,t)=>{let n=a(e),r=a(t);return((o?Yx(r,o)-Yx(n,o):0)||Zx(n,r))*s})}function eS(e,t){let n=e[0]?.id===t?e[0]:void 0;return n?n.desc?[]:[{id:t,desc:!0}]:[{id:t,desc:!1}]}function tS(e,t){let n=new Set;for(let r of e)n.add(t(r));return[...n].sort(Zx)}var nS=``,rS=`\r
  146. `;function iS(e){return`"${String(e??``).replace(/"/g,`""`)}"`}function aS(e){if(!e.length)return``;let t=Object.keys(e[0]);return nS+[t,...e.map(e=>t.map(t=>e[t]))].map(e=>e.map(iS).join(`,`)+rS).join(``)}N(),I(),X(),ia(),Ia(),wn();var oS=[10,20,30,40,50],sS=({thino:e})=>{let t=k(null);O(()=>(t.current&&(0,d.setIcon)(t.current,$56),()=>{t.current&&=null}),[t]);let n=j(async()=>{e.pinned?await Y.unpinMemoById(e.id):await Y.pinMemoById(e.id)},[e]);return Z($8,{ref:t,className:Tf(`pinned-status`,e.pinned?$eb:`not-pinned`),onClick:()=>void n()})},cS=({thino:e})=>{let t=k(null);O(()=>(t.current&&(0,d.setIcon)(t.current,e.thinoType===$9?$1c:$7v),()=>{t.current&&=null}),[t,e?.thinoType]);let n=j(async()=>{if(e.thinoType===$9)return;let t=await Y.updateMemo(e.id,e.content,e.thinoType===$06?$0p:$06);t&&Y.editMemo(t)},[e]);return Z(E,{children:e.thinoType===$9?Z($8,{ref:t,className:$7i}):Z($09,{className:Tf($7i,$1t),type:$jf,checked:e.thinoType!==$06,"data-task":e.thinoType===$06?``:e.thinoType===$0p?`x`:e.thinoType?.slice(5),onClick:()=>void n()})})},lS=({id:e,path:t})=>{let n=k(null);return O(()=>(n.current&&(0,d.setIcon)(n.current,$3j),()=>{n.current&&=null}),[]),Z($8,{className:`source-thino`,onClick:j(()=>{!e||!t||Y.openThinoByID(e)},[e,t]),children:[Z($8,{children:t}),Z($8,{ref:n,className:`source-thino-icon`})]})},uS=({id:e,sourceType:t})=>{let n=k(null);O(()=>(n.current&&(0,d.setIcon)(n.current,ra.find(e=>e.title===t)?.icon||$0y),()=>{n.current&&=null}),[]);let r=j(async()=>{e&&await Y.openThinoByID(e)},[e]);return Z($8,{ref:n,className:`source-type-icon`,onClick:()=>void r()})};function dS({thinos:e,isFiltering:t}){let[n,r]=M.useState([]),[i,a]=M.useState(``),[o,s]=M.useState([]),[c,l]=M.useState(0),[u,f]=M.useState(20),p=A(()=>[{header:F(420),columns:[{id:$5k,header:()=>Z($8,{className:`create-at-header-cell`,children:F(422)}),cell:e=>e.createdAt,accessor:e=>e.createdAt,filterable:!1},{id:$65,header:()=>Z($8,{className:`thino-header-cell`,children:F(140)}),cell:e=>Z(yy,{memo:e,type:$2x}),accessor:e=>e.content,rankSorted:!0},{id:$cf,header:()=>Z($8,{children:F(424)}),cell:e=>Z(cS,{thino:e}),accessor:e=>e.thinoType},{id:$6z,header:()=>Z($8,{children:F(425)}),cell:e=>Z(uS,{id:e.id,sourceType:e.sourceType}),accessor:e=>e.sourceType}]},{header:F(421),columns:[{id:$eb,header:()=>Z($8,{children:F(428)}),cell:e=>Z(sS,{thino:e}),accessor:e=>e.pinned,rankSorted:!0},{id:$c7,header:()=>Z($8,{children:F(426)}),cell:e=>Z($8,{children:e.rowStatus===$0b?``:e.rowStatus}),accessor:e=>e.rowStatus},{id:$46,header:()=>F(427),cell:e=>Z(lS,{id:e.id,path:e.path}),accessor:e=>e.path}]}],[]),m=A(()=>p.flatMap(e=>e.columns),[p]),h=A(()=>Object.fromEntries(m.map(e=>[e.id,e.accessor])),[m]),g=A(()=>m.filter(e=>e.id!==$eb).map(e=>e.id),[m]),_=A(()=>Object.fromEntries(n.filter(e=>m.find(t=>t.id===e.id)?.rankSorted).map(e=>[e.id,e.value])),[n,m]),v=A(()=>$x(Qx(e,h,n,i,g),o,h,_),[e,h,n,i,g,o,_]),y=A(()=>{let t={};for(let r of m)r.filterable!==!1&&(t[r.id]=tS(Qx(e,h,n,i,g,r.id),r.accessor));return t},[e,h,n,i,g,m]),b=Gx(v.length,u),x=Kx(c,b),S=qx(v,x,u),C=j((e,t)=>{r(n=>(n.find(t=>t.id===e)?.value??``)===t?n:[...n.filter(t=>t.id!==e),...t?[{id:e,value:t}]:[]]),l(0)},[]);async function w(e,t){let n=F(422),r=F(680),i=F(423),a=F(427),o=e.map(e=>({[n]:e.createdAt,[r]:e.updatedAt,[i]:e.content,Thino:`=hyperlink("obsidian://thino?openId=${e.id}","${e.id}")`,[a]:`=hyperlink("obsidian://open?path=${(0,d.normalizePath)(e.path)},"${e.path}")`})),s=W.getState().app||Sn();return{file:await s.vault.create(`${t}-${R.randomId(6)}.csv`,aS(o)+`
  147. `),app:s}}async function T(e){let{file:t,app:n}=await w(e,`thino-export`),r=createFragment(),i=r.createDiv({cls:`export-file-btn-group`});r.createDiv({cls:`open-file-button`}),new d.Setting(i).setName(F(679)).addButton(e=>{e.setButtonText(F(678)).onClick(()=>{let e=(0,d.normalizePath)(t.path);n.openWithDefaultApp(e)})}),new d.Notice(r)}return Z($0,{className:`table-view`,children:[Z($0,{children:[Z(mS,{value:i||``,onChange:e=>a(String(e)),className:`table-search-bar`,placeholder:F(419)}),d.Platform.isDesktop&&(i||n.length>0||t)&&Z($7,{className:$2c,disabled:v.length===0,onClick:()=>void T(v),children:F(681)})]}),Z($2x,{className:`thino-table`,children:[Z(`thead`,{children:[Z(`tr`,{children:p.map(e=>Z(`th`,{colSpan:e.columns.length,children:Z($0,{className:$ld,children:e.header})},e.header))}),Z(`tr`,{children:m.map(e=>{let t=o[0]?.id===e.id?o[0]:void 0;return Z(`th`,{children:[Z($0,{className:Tf(`filter-header`,$ld,e.id===$65&&`content-header`),onClick:()=>s(t=>eS(t,e.id)),children:[e.header(),t?t.desc?` 🔽`:` 🔼`:null]}),e.filterable===!1?null:Z(pS,{column:e,facet:y[e.id]??[],value:n.find(t=>t.id===e.id)?.value??``,onChange:t=>C(e.id,t)})]},e.id)})})]}),Z(`tbody`,{children:S.map(e=>Z(`tr`,{className:Tf(e.pinned?$eb:``),children:m.map(t=>Z(`td`,{children:t.cell(e)},t.id))},e.id))})]}),Z($0,{className:`table-nav-bar`,children:[[[`prev-start-btn`,`<<`,0,x===0],[`prev-btn`,`<`,x-1,x===0],[`next-btn`,`>`,x+1,x>=b-1],[`next-end-btn`,`>>`,b-1,x>=b-1]].map(([e,t,n,r])=>Z($7,{className:e,onClick:()=>l(n),disabled:r,children:t},e)),Z($8,{className:`table-page-info`,children:[Z($0,{children:F(435)}),Z($7x,{children:[x+1,` of `,b]})]}),Z($8,{className:`table-page-jump`,children:[`| `,F(434),`:`,Z($09,{type:$0e,defaultValue:x+1,onChange:e=>l(e.target.value?Number(e.target.value)-1:0),className:`jump-inputer`})]}),Z($ef,{value:u,onChange:e=>f(Number(e.target.value)),children:oS.map(e=>Z($a5,{value:e,children:[F(436),` `,e,` `,F(437)]},e))})]})]})}var fS=e=>e===$6z?[$ml]:[$ml,`ALL-TASK`];function pS({column:e,facet:t,value:n,onChange:r}){if(t.length<=1)return null;let i=e.id===$cf||e.id===$6z;return Z(E,{children:[!i&&e.id!==$46&&e.id!==$65&&Z(`datalist`,{id:e.id+$0y,children:t.slice(0,5e3).map(e=>Z($a5,{value:String(e)},String(e)))}),i?Z($ef,{id:e.id,onChange:e=>r(e.target.value===$ml?``:e.target.value===`ALL-TASK`?$fu:e.target.value),children:[...fS(e.id),...t].map(e=>{let t=String(e);return Z($a5,{value:t,children:F(t)||t},t)})}):Z(mS,{type:$0l,value:n,onChange:e=>r(String(e)),placeholder:`Search... (${t.length})`,className:`filter-input-long`,list:e.id+$0y})]})}function mS({value:e,onChange:t,debounce:n=500,...r}){let[i,a]=M.useState(e);return M.useEffect(()=>{a(e)},[e]),M.useEffect(()=>{let e=window.setTimeout(()=>{t(i)},n);return()=>window.clearTimeout(e)},[i]),Z($09,{...r,value:i,onChange:e=>a(e.target.value)})}N();var hS=Te(null),gS=()=>{let e=Xe(hS);if(!e)throw Error(`useScroll must be used within ScrollProvider`);return e},_S=({children:e,scrollRef:t})=>{let n=A(()=>({scrollToTop:e=>{t.current?.scrollToTop(e)},scrollToBottom:e=>{t.current?.scrollToBottom(e)},scrollToPosition:(e,n)=>{t.current?.scrollToPosition(e,n)}}),[t]),r=k(n),i=j(e=>(r.current={scrollToTop:e.scrollToTop||n.scrollToTop,scrollToBottom:e.scrollToBottom||n.scrollToBottom,scrollToPosition:e.scrollToPosition||n.scrollToPosition},()=>{r.current=n}),[n]),a=j(e=>{r.current.scrollToTop(e)},[]),o=j(e=>{r.current.scrollToBottom(e)},[]),s=j((e,t)=>{r.current.scrollToPosition(e,t)},[]),c=j(()=>t.current?.getScrollElement()||null,[t]),l=A(()=>({scrollRef:t,scrollToTop:a,scrollToBottom:o,scrollToPosition:s,getScrollElement:c,registerScrollController:i}),[t,a,o,s,c,i]);return Z(hS.Provider,{value:l,children:e})};N();function vS(e,t){let{registerScrollController:n}=gS();O(()=>{let r=(t,n)=>{let r=e();r&&r.scrollTo({top:t,behavior:n?$5z:$4l})};return n({scrollToTop:e=>r(0,e),scrollToBottom:n=>t?t(n?$5z:$4l):r(e()?.scrollHeight??0,n),scrollToPosition:(e,t)=>r(e,t)})},[n,t])}N(),X(),I();var yS=()=>{let e=Ov(e=>e.selectedMessageIds),t=Ov(e=>e.conversations),n=A(()=>t.flatMap(e=>e.messages).filter(t=>e.includes(t.id)).sort((e,t)=>e.timestamp-t.timestamp),[e,t]),r=j(async()=>{if(n.length===0)return;let e=n.map(e=>e.content).join(`
  148. ---
  149. `);try{let t=await Y.createMemoDaily(e,!0);t&&(Y.pushMemo(t),Ov.getState().clearMessageSelection(),new d.Notice(F(1026)))}catch(e){new d.Notice(`Failed to create thino: ${e instanceof Error?e.message:String(e)}`)}},[n]),i=j(()=>{Ov.getState().clearMessageSelection()},[]);return e.length===0?null:Z($0,{className:`super-selection-toolbar`,children:[Z($8,{className:`super-selection-count`,children:[e.length,` message`,e.length>1?`s`:``,$hs]}),Z($0,{className:`super-selection-actions`,children:[Z($7,{className:`super-create-thino-btn clickable-icon`,onClick:()=>void r(),children:$kj}),Z($7,{className:`super-cancel-btn clickable-icon`,onClick:i,children:$n5})]})]})};Fr();var bS=kr(`thino-image-cache`,`generated-images`),xS={async put(e){let t=`img-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return await Mr(t,{...e,id:t,createdAt:Date.now()},bS),t},async get(e){return jr(e,bS)},async remove(e){await Nr(e,bS)},createObjectUrl(e){let t=atob(e.base64),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);let r=new Blob([n],{type:e.mimeType});return URL.createObjectURL(r)}},SS=/data:(image\/(?:png|jpe?g|gif|webp|svg\+xml));base64,([A-Za-z0-9+/=\s]+)/g,CS=/!\[([^\]]*)\]\((data:image\/(?:png|jpe?g|gif|webp|svg\+xml);base64,[A-Za-z0-9+/=\s]+)\)/g,wS=/!\[([^\]]*)\]\((https?:\/\/[^\s)]+\.(?:png|jpe?g|gif|webp|svg)(?:\?[^\s)]*)?)\)/g;function TS(e){let t=[],n=e;for(let n of e.matchAll(CS)){let e=n[2].match(/^data:(image\/[^;]+);base64,(.+)$/s);e&&t.push({match:n[0],mimeType:e[1],base64:e[2].replace(/\s/g,``),alt:n[1]||void 0})}if(t.length===0)for(let n of e.matchAll(SS))t.some(e=>e.match.includes(n[0]))||t.push({match:n[0],mimeType:n[1],base64:n[2].replace(/\s/g,``)});for(let e=0;e<t.length;e++)n=n.replace(t[e].match,`[generated-image:${e}]`);return{images:t,cleanContent:n}}function ES(e){let t=[];for(let n of e.matchAll(wS))t.push({url:n[2],alt:n[1]||``});return t}function DS(e){let t=!!e.isStreaming,n=!!(e.toolCalls&&e.toolCalls.length>0),r=e.toolCallOffset??0,i=n?e.content.slice(0,r):``,a=n?e.content.slice(r):e.content,o=t?[]:ES(a),s=OS(a,o);return{contentBefore:i,contentAfter:s,urlImages:o,isStreaming:t,showWorking:t&&!s}}function OS(e,t){if(t.length===0)return e;let n=e;for(let e of t)n=n.replace(`![${e.alt}](${e.url})`,``);return n.trim()}var kS=/!\[([^\]]*)\]\((https?:\/\/[^)]+)\)/g,AS=/(https?:\/\/[^\s"'<>]+\.(?:png|jpe?g|gif|webp|svg|bmp)(?:\?[^\s"'<>]*)?)/gi;function jS(e){let t=[];for(let n of e.matchAll(kS))t.push({url:n[2],alt:n[1]||``});if(t.length>0)return t;for(let n of e.matchAll(AS))t.push({url:n[1],alt:``});return t}var MS=300,NS=class extends ph{rendered=null;pending=null;flush=(0,d.debounce)(()=>this.renderPending(),MS);constructor(e,t,n){super(e),this.app=t,this.hoverParentEl=n}setContent(e,t=!1){if(e!==this.rendered){if(this.pending=e,t){this.flush();return}this.flush.cancel(),this.renderPending()}}onUnmount(){this.flush.cancel()}renderPending(){let e=this.pending;e===null||e===this.rendered||(this.rendered=e,this.containerEl.empty(),this.containerEl.addClass($32),d.MarkdownRenderer.render(this.app,e,this.containerEl,``,this).then(()=>this.wireInternalLinks()))}wireInternalLinks(){let e=this.hoverParentEl??this.containerEl;this.containerEl.querySelectorAll($i4).forEach(t=>{let n=t.getAttribute($hw);n&&(this.app.metadataCache.getFirstLinkpathDest(n,``)||t.addClass($jp),t.addEventListener($p5,r=>{r.stopPropagation(),this.app.workspace.trigger($a2,{event:r,source:`thino-super`,hoverParent:e,targetEl:t,linktext:n,sourcePath:``})}))})}},PS=class extends ph{headerEl;labelEl;resultEl;expanded=!1;reasoning=``;isStreaming=!1;onMount(){this.containerEl.addClass(`super-reasoning-block`),this.headerEl=this.containerEl.createDiv({cls:$f9}),(0,d.setIcon)(this.headerEl.createSpan({cls:$ho}),`brain`),this.labelEl=this.headerEl.createSpan({cls:$gf}),this.resultEl=this.containerEl.createEl(`pre`,{cls:$fa}),this.registerDomEvent(this.headerEl,$05,()=>{this.isStreaming||(this.expanded=!this.expanded,this.syncBody())})}update(e,t){this.reasoning=e,this.isStreaming=t,this.headerEl.toggleClass($68,t),this.headerEl.toggleClass($82,!t),this.labelEl.toggleClass($68,t),this.labelEl.setText(t?`Thinking...`:`Thought`),this.syncBody()}syncBody(){let e=this.expanded&&!this.isStreaming;this.resultEl.toggle(e),e&&this.resultEl.setText(this.reasoning)}};function FS(e,t,n){try{let r=document.body.createEl(`a`,{attr:{href:e,download:t,...n?{target:n}:{}}});r.click(),r.remove()}catch(e){console.warn(`[Super] Download failed:`,e)}}var IS=class extends ph{gridEl;items=[];signature=``;objectUrls=[];lightboxEl=null;generation=0;onMount(){this.containerEl.addClass(`super-image-grid`),this.gridEl=this.containerEl.createDiv({cls:`super-generated-images`}),this.gridEl.hide()}onUnmount(){this.closeLightbox(),this.revokeObjectUrls()}setCachedImages(e){let t=`cache:${e.map(e=>e.cacheId).join(`,`)}`;if(t===this.signature)return;this.signature=t;let n=++this.generation;this.revokeObjectUrls(),this.items=e.map(e=>({key:e.cacheId,alt:e.alt??``,src:null,cacheId:e.cacheId})),this.renderGrid(),(async()=>{for(let t of e){let e=await xS.get(t.cacheId);if(n!==this.generation||!e)continue;let r=xS.createObjectUrl(e);this.objectUrls.push(r);let i=this.items.find(e=>e.key===t.cacheId);i&&(i.src=r)}n===this.generation&&this.renderGrid()})()}setUrlImages(e){let t=`url:${e.map(e=>e.url).join(`,`)}`;t!==this.signature&&(this.signature=t,this.generation++,this.revokeObjectUrls(),this.items=e.map((e,t)=>({key:`${t}:${e.url}`,alt:e.alt,src:e.url})),this.renderGrid())}renderGrid(){this.gridEl.empty(),this.gridEl.toggle(this.items.length>0),this.gridEl.toggleClass(`single`,this.items.length===1),this.gridEl.toggleClass(`grid`,this.items.length>1);for(let e of this.items){let t=this.gridEl.createDiv({cls:`super-generated-image-wrap`});if(!e.src){t.createDiv({cls:`super-generated-image-loading`}).createSpan({text:$fq});continue}t.createEl($6y,{cls:`super-generated-image`,attr:{src:e.src,alt:e.alt||$8x,loading:$o5}}).addEventListener($05,()=>this.openLightbox(e))}}openLightbox(e){if(!e.src)return;this.closeLightbox();let t=this.containerEl.createDiv({cls:`super-image-lightbox`});t.addEventListener($05,()=>this.closeLightbox());let n=t.createDiv({cls:`super-image-lightbox-content`});n.addEventListener($05,e=>e.stopPropagation()),n.createEl($6y,{cls:`super-image-lightbox-img`,attr:{src:e.src,alt:e.alt||`Generated image preview`}});let r=n.createDiv({cls:`super-image-lightbox-actions`});if(e.cacheId){let t=r.createEl($7,{cls:$3p,attr:{"aria-label":`Save image`}});(0,d.setIcon)(t,$37),t.addEventListener($05,()=>void LS(e.cacheId))}let i=r.createEl($7,{cls:$3p,attr:{"aria-label":$9e}});(0,d.setIcon)(i,`x`),i.addEventListener($05,()=>this.closeLightbox()),this.lightboxEl=t}closeLightbox(){this.lightboxEl?.remove(),this.lightboxEl=null}revokeObjectUrls(){for(let e of this.objectUrls)URL.revokeObjectURL(e);this.objectUrls=[]}};async function LS(e){let t=await xS.get(e);if(!t)return;let n=t.mimeType.split(`/`)[1]?.replace(`jpeg`,`jpg`)||$jw,r=atob(t.base64),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);let a=URL.createObjectURL(new Blob([i],{type:t.mimeType}));FS(a,`generated-${e}.${n}`),URL.revokeObjectURL(a)}var RS={search_memos:[`Searched memos`,`Searching memos`],filter_memos:[`Filtered memos`,`Filtering memos`],get_memo:[`Read memo`,`Reading memo`],get_related_memos:[`Found related memos`,`Finding related memos`],generate_image:[$8x,`Generating image`],summarize_text:[`Summarized text`,`Summarizing text`],summarize_url:[`Summarized URL`,`Summarizing URL`],delegate_fast:[`Delegated task`,`Delegating task`]},zS=$a0,BS=60;function VS(e){return e?typeof e.query==$q?e.query:typeof e.tag==$q?e.tag:e.memo_id===void 0?typeof e.prompt==$q?e.prompt.slice(0,BS):typeof e.url==$q?e.url:typeof e.task==$q?e.task.slice(0,BS):``:`#${String(e.memo_id)}`:``}var HS=class extends ph{headerEl;labelEl;queryEl;resultEl;imagesEl;toolCall=null;expanded=!1;autoExpanded=!1;renderedImages=``;onMount(){this.containerEl.addClass(`super-tool-call`),this.headerEl=this.containerEl.createDiv({cls:$f9}),(0,d.setIcon)(this.headerEl.createSpan({cls:$ho}),`square-pen`),this.labelEl=this.headerEl.createSpan({cls:$gf}),this.queryEl=this.headerEl.createSpan({cls:`super-tool-query`}),this.resultEl=this.containerEl.createEl(`pre`,{cls:$fa}),this.imagesEl=this.containerEl.createDiv({cls:`super-tool-image-result`}),this.registerDomEvent(this.headerEl,$05,()=>{let e=this.toolCall;!e||US(e)||!e.result||(this.expanded=!this.expanded,this.syncBody())})}update(e){let t=this.toolCall===null;this.toolCall=e;let n=US(e);for(let t of[`pending`,$68,$82,$12])this.headerEl.toggleClass(t,e.status===t);this.labelEl.setText(RS[e.name]?.[n?1:0]||e.name),this.labelEl.toggleClass($68,n);let r=VS(e.parsedArgs);this.queryEl.setText(r),this.queryEl.toggle(!!r),t&&e.name===zS&&e.status===$82&&(this.expanded=!0),!this.autoExpanded&&this.imageUrls().length>0&&(this.expanded=!0,this.autoExpanded=!0),this.syncBody()}imageUrls(){let e=this.toolCall;return!e||e.name!==zS||!e.result?[]:jS(e.result)}syncBody(){let e=this.toolCall,t=this.expanded&&!!e?.result,n=t?this.imageUrls():[];if(this.imagesEl.toggle(n.length>0),this.resultEl.toggle(t&&n.length===0),t&&n.length===0){this.resultEl.setText(e?.result??``);return}if(n.length===0)return;let r=n.map(e=>e.url).join(`
  150. `);if(r!==this.renderedImages){this.renderedImages=r,this.imagesEl.empty();for(let e of n){let t=this.imagesEl.createDiv({cls:`super-tool-image-wrapper`});t.createEl($6y,{attr:{src:e.url,alt:e.alt||$8x,loading:$o5}});let n=t.createEl($7,{cls:`super-tool-image-download`,attr:{title:$i7,"aria-label":$i7}});(0,d.setIcon)(n,$37),n.addEventListener($05,t=>{t.stopPropagation(),FS(e.url,`generated-image-${Date.now()}.jpg`,$1l)})}}}};function US(e){return e.status===$68||e.status===`pending`}var WS=class extends ph{beforeEl;toolCallsEl;reasoningEl;afterEl;workingEl;beforeView;afterView;cachedImages;urlImages;reasoningView;toolCards=new Map;constructor(e,t,n){super(e),this.app=t,this.hoverParentEl=n}onMount(){this.containerEl.addClass(`super-message-parts`),this.beforeEl=this.containerEl.createDiv({cls:$3l}),this.beforeView=this.mount(new NS(this.beforeEl,this.app,this.hoverParentEl)),this.toolCallsEl=this.containerEl.createDiv({cls:`super-tool-calls`}),this.reasoningEl=this.containerEl.createDiv(),this.reasoningView=this.mount(new PS(this.reasoningEl)),this.cachedImages=this.mount(new IS(this.containerEl.createDiv())),this.urlImages=this.mount(new IS(this.containerEl.createDiv())),this.afterEl=this.containerEl.createDiv({cls:$3l}),this.afterView=this.mount(new NS(this.afterEl,this.app,this.hoverParentEl)),this.workingEl=this.containerEl.createDiv({cls:`super-working-indicator`}),this.workingEl.createSpan({cls:`super-working-label`,text:`Working`});let e=this.workingEl.createSpan({cls:`super-working-dots`});for(let t=0;t<3;t++)e.createSpan({text:`.`})}update(e){let t=DS(e);this.beforeEl.toggle(!!t.contentBefore),t.contentBefore&&this.beforeView.setContent(t.contentBefore,!1);let n=e.toolCalls??[];this.toolCallsEl.toggle(n.length>0),this.syncToolCalls(n),this.reasoningEl.toggle(!!e.reasoning),e.reasoning&&this.reasoningView.update(e.reasoning,t.isStreaming),this.cachedImages.setCachedImages(e.generatedImages??[]),this.urlImages.setUrlImages(t.urlImages),this.afterEl.toggle(!!t.contentAfter),t.contentAfter&&this.afterView.setContent(t.contentAfter,t.isStreaming),this.workingEl.toggle(t.showWorking)}syncToolCalls(e){Cy(this.toolCards,e,e=>e.id,{create:()=>this.mount(new HS(this.toolCallsEl.createDiv())),update:(e,t)=>e.update(t),destroy:e=>this.unmount(e)})}};N();var GS=({msg:e,app:t})=>{let n=k(null),r=k(null);return O(()=>{let e=n.current;if(!e)return;e.empty();let i=new WS(e,t);return i.load(),r.current=i,()=>{i.unload(),r.current=null}},[t]),O(()=>{r.current?.update(e)},[e]),Z($0,{ref:n})};U();var KS=12;function qS(e,t){let n=e.slice(0,t);for(let e=n.length-1;e>=0;e--){let t=n[e];if(t===`
  151. `)break;if(t===`@`||t===`#`){if(e===0||/\s/.test(n[e-1])){let r=n.slice(e+1);return r.length>60?null:{kind:t===`@`?$0c:$44,triggerIndex:e,query:r}}break}}return null}var JS=class extends uh{app;detection=null;onMentionSelect;constructor(e,t,n){super(t),this.app=e,this.onMentionSelect=n,this.placement=`top-start`}getSuggestions(){let e=this.inputEl.selectionStart??this.inputEl.value.length;return this.detection=qS(this.inputEl.value,e),this.detection?this.detection.kind===$0c?YS(this.detection.query):ZS(this.app,this.detection.query):[]}renderSuggestion(e,t){t.addClass(`super-suggest-item`);let n=t.createSpan({cls:`super-suggest-icon`});n.textContent=e.kind===$0c?`@`:`#`;let r=t.createDiv({cls:`super-suggest-body`});r.createSpan({cls:`super-suggest-label`,text:e.label}),r.createSpan({cls:`super-suggest-secondary`,text:e.secondary})}selectSuggestion(e){if(!this.detection)return;let t=this.inputEl.value,n=t.slice(0,this.detection.triggerIndex),r=n+t.slice(this.detection.triggerIndex+1+this.detection.query.length),i=n.length;this.onMentionSelect({kind:e.kind,id:e.id,label:e.label,content:e.content},r,i),this.close()}updateOnSelect(e){this.onMentionSelect=e}};function YS(e){let t=z.getState().memos.filter(e=>!e.deletedAt&&e.rowStatus!==$07);if(!e)return t.slice(0,KS).map(XS);let n=(0,d.prepareFuzzySearch)(e),r=[];for(let e of t){let t=n(e.content);t&&r.push({item:e,score:t.score})}return r.sort((e,t)=>t.score-e.score),r.slice(0,KS).map(e=>XS(e.item))}function XS(e){let t=e.content.replace(/\n/g,` `).slice(0,60);return{kind:$0c,id:e.id,label:t,secondary:e.createdAt,content:e.content}}function ZS(e,t){let n=e.vault.getAllLoadedFiles().filter(e=>e instanceof d.TFile&&(e.extension===`md`||e.extension===$4o));if(!t)return n.slice(0,KS).map(QS);let r=(0,d.prepareFuzzySearch)(t),i=[];for(let e of n){let t=r(e.path);t&&i.push({item:e,score:t.score})}return i.sort((e,t)=>t.score-e.score),i.slice(0,KS).map(e=>QS(e.item))}function QS(e){return{kind:$44,id:e.path,label:e.basename,secondary:e.parent?.path||`/`,content:e.path}}N(),U();var $S=Ot(({message:e,isSelected:t,onSelect:n})=>{let{app:r}=H(),i=e.role===$3n;return Z($0,{className:Tf(`thino-super-message`,i?$3n:$1u,t&&$57,e.isStreaming&&`streaming`),onClick:t=>n(e,t),children:[!i&&Z($0,{className:`super-avatar`,ref:xf($58)}),Z($0,{className:`super-message-content`,children:[Z($0,{className:`super-message-role`,children:i?`You`:$9f}),i?Z($0,{className:$eg,children:e.content}):r?Z(GS,{msg:e,app:r}):Z($0,{className:$eg,children:e.content||(e.isStreaming?$6f:``)})]})]})},(e,t)=>e.message.id===t.message.id&&e.message.content===t.message.content&&e.message.isStreaming===t.message.isStreaming&&e.isSelected===t.isSelected&&e.message.toolCalls===t.message.toolCalls&&e.message.toolCallOffset===t.message.toolCallOffset&&e.message.reasoning===t.message.reasoning);$S.displayName=`SuperMessageBubble`;var eC=({conversationId:e})=>{let{app:t}=H(),n=Ov(e=>e.isProcessing),[r,i]=D(``),[a,o]=D([]),s=k(null),c=k(null);O(()=>{let e=s.current;if(!e||!t)return;let n=new JS(t,e,(t,n,r)=>{i(n),o(e=>e.some(e=>e.id===t.id)?e:[...e,t]),window.requestAnimationFrame(()=>{e.focus(),e.setSelectionRange(r,r)})});return c.current=n,()=>{n.destroy(),c.current=null}},[t]);let l=j(e=>{i(e.target.value)},[]),u=j(e=>{o(t=>t.filter(t=>t.id!==e))},[]),f=j(e=>{let t=s.current;if(!t)return;let n=t.selectionStart??r.length,a=(n>0&&!/\s/.test(r[n-1])?` `:``)+e;i(r.slice(0,n)+a+r.slice(n));let o=n+a.length;window.requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(o,o),t.dispatchEvent(new Event($09,{bubbles:!0}))})},[r]),p=j(async()=>{let s=r.trim();if(!s&&a.length===0||n)return;let c=``;if(a.length>0&&t){let e=[];for(let n of a)if(n.kind===$0c)e.push(`[Referenced Thino] ${n.content}`);else{let r=t.vault.getAbstractFileByPath(n.content);if(r instanceof d.TFile)try{let i=await t.vault.cachedRead(r),a=i.slice(0,2e3);e.push(`[Referenced File: ${n.label}]\n${a}${i.length>2e3?$gv:``}`)}catch{e.push(`[Referenced File: ${n.label}] (could not read)`)}}c=e.join($bh)}let l=c?`${c}\n\n---\n\n${s}`:s,u=jv(e,s);i(``),o([]),await Nv(e,u,l)},[r,n,a,e,t]),m=j(e=>{c.current?.isOpen||e.key===$28&&!e.shiftKey&&(e.preventDefault(),p())},[p]),h=(r.trim()||a.length>0)&&!n;return Z($0,{className:`super-inline-input`,children:[a.length>0&&Z($0,{className:$9c,children:a.map(e=>Z($8,{className:`super-attachment-chip super-attachment-${e.kind}`,children:[Z($8,{className:$as,children:e.kind===$0c?`@`:`#`}),Z($8,{className:$ab,children:e.label}),Z($7,{className:$3y,onClick:()=>u(e.id),"aria-label":`Remove`,children:`×`})]},e.id))}),Z($0,{className:`super-inline-input-row`,children:[Z($0o,{ref:s,className:`super-inline-textarea`,placeholder:`Continue the conversation...`,value:r,onChange:l,onKeyDown:m,rows:1,disabled:n}),Z($0,{className:`super-inline-actions`,children:[Z($7,{className:$2g,onClick:()=>f(`@`),"aria-label":$h8,children:`@`}),Z($7,{className:$2g,onClick:()=>f(`#`),"aria-label":$ia,children:`#`}),Z($7,{className:`clickable-icon super-toolbar-send ${h?$3e:``}`,onClick:()=>void p(),disabled:!h,"aria-label":`Send`,children:Z($mp,{xmlns:$29,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:$1i,stroke:$ky,strokeWidth:`2`,strokeLinecap:$l9,strokeLinejoin:$l9,children:[Z($46,{d:`m22 2-7 20-4-9-9-4Z`}),Z($46,{d:`M22 2 11 13`})]})})]})]})]})},tC=Ot(({conversation:e})=>{let t=Ov(e=>e.selectedMessageIds),n=Ov,r=j((e,t)=>{let r=n.getState();t.ctrlKey||t.metaKey?r.toggleMessageSelection(e.id):r.selectSingleMessage(e.id)},[]),i=j(()=>{let t=n.getState();t.deactivateConversation(e.id),t.activeConversationId===e.id&&t.setActiveConversation(null)},[e.id]),a=j(()=>{let t=n.getState(),r=t.conversations.find(t=>t.isActive&&t.id!==e.id);r&&t.deactivateConversation(r.id),t.reactivateConversation(e.id),t.setActiveConversation(e.id)},[e.id]),o=j(()=>{n.getState().toggleCollapseConversation(e.id)},[e.id]),s=j(t=>{t.preventDefault();let r=new d.Menu;r.addItem(t=>{t.setIcon($gl).setTitle($cm).setWarning(!0).onClick(()=>{n.getState().removeConversation(e.id)})}),r.showAtMouseEvent(t.nativeEvent)},[e.id]),c=A(()=>t.some(t=>e.messages.some(e=>e.id===t)),[t,e.messages]),l=!e.isActive&&e.isCollapsed!==!1,u=e.messages.length;return Z($0,{className:Tf(`thino-super-conversation`,e.isActive&&$0v,l&&`collapsed`),onContextMenu:s,children:[Z($0,{className:`super-conversation-header`,children:[Z($8,{className:`super-badge`,ref:xf($58)}),Z($8,{className:`super-badge-text`,children:$9f}),l&&Z($8,{className:`super-collapsed-hint`,children:[u,` message`,u===1?``:`s`]}),Z($0,{className:`super-conversation-header-right`,children:[e.isActive&&Z($7,{className:`super-end-btn clickable-icon`,onClick:i,children:$j2}),!e.isActive&&Z(E,{children:[Z($7,{className:`super-resume-btn clickable-icon`,onClick:a,"aria-label":`Resume conversation`,ref:xf(`message-square-plus`)}),Z($7,{className:`super-collapse-btn clickable-icon`,onClick:o,"aria-label":l?`Expand conversation`:`Collapse conversation`,ref:e=>{e&&(0,d.setIcon)(e,l?$0z:$4z)}})]})]})]}),!l&&Z($0,{className:`super-conversation-messages`,children:e.messages.map(e=>Z($S,{message:e,isSelected:t.includes(e.id),onSelect:r},e.id))}),e.isActive&&Z(eC,{conversationId:e.id}),!l&&c&&Z(yS,{})]})});tC.displayName=`ChatSuperConversation`,N(),U(),X(),Zd();var nC=Ot(({memo:e,onDoubleClick:t})=>{let[n,r]=_x(!1,$go);return Z($0,{ref:n,className:`chat-memo-wrapper`,onDoubleClick:t,children:r?Z(yy,{memo:e,type:$1g}):Z($0,{className:`memo-placeholder`,style:{minHeight:`60px`,padding:`8px`},children:Z($0,{style:{opacity:.6},children:[e.content.substring(0,100),$6f]})})})},(e,t)=>e.memo.id===t.memo.id&&e.memo.content===t.memo.content);nC.displayName=`ChatMemo`;var rC=Ot(({item:e,iconString:t,handleClickTimeStamp:n,handleToggleCheckBox:r,handleDayMarkClick:i})=>{let a=e.memo,o=A(()=>a?.createdAt.substring(11,19)??``,[a?.createdAt]),s=j(()=>{a&&mg(a)},[a]);if(e.type===$b4)return Z($0,{className:`thino-chat-day-mark day-mark`,onClick:t=>i(e.dayMark,t),children:Z($0,{className:`day-mark-bubble`,children:e.dayMark===$1w?e.dayMark+` 📌`:e.dayMark})});if(e.type===$23&&e.conversation)return Z(tC,{conversation:e.conversation});let c=e.memo,l=c.thinoType!==$9;return Z($0,{className:`thino-bubble right`,children:[Z($0,{className:`icon-img`,style:{backgroundImage:t?`url("${t}")`:void 0},ref:e=>{e&&!t&&(0,d.setIcon)(e,$2e)}}),Z($0,{className:`wrap`,children:Z($0,{className:l?`content task`:$65,children:[l&&Z($0,{className:`task-inputer`,children:Z($09,{className:Tf($7i,$1t),type:$jf,checked:c.thinoType!==$06,onClick:()=>r(c)})}),Z($0,{className:`time-stamp`,onClick:()=>n(c),children:o}),Z(nC,{memo:c,onDoubleClick:s})]})})]})});rC.displayName=`ChatItemRenderer`;var iC=({thinos:e})=>{let{settings:t}=H(),n=Gy(t?.MomentsIcon)||t?.MomentsIcon||``,r=k(null),i=k(null),a=J(e=>e.enabled),o=Ov(e=>e.conversations),s=A(()=>{let t=[],n=EC(e,$04);if(Object.keys(n).sort((e,t)=>e===$1w?1:t===$1w?-1:e.localeCompare(t)).forEach(e=>{t.push({type:$b4,dayMark:e,id:`dm-${e}`}),n[e].forEach((n,r)=>{t.push({type:$0c,memo:n,dayMark:e,thinoIndex:r,id:`t-${n.id}`})})}),a&&o.length>0){let e=[...o].filter(e=>e.messages.length>0).sort((e,t)=>e.createdAt-t.createdAt);for(let n of e){let e=t.length,r=t.findIndex(e=>e.type===$b4&&e.dayMark===$1w),i=r>=0?r:t.length;for(let r=i-1;r>=0;r--){let i=t[r];if(i.type===$0c&&i.memo&&(i.memo.createdAtTs||new Date(i.memo.createdAt).getTime())<=n.createdAt){e=r+1;break}r===0&&(e=0)}r>=0&&e>r&&(e=r),t.splice(e,0,{type:$23,dayMark:``,id:`super-${n.id}`,conversation:n})}}return t},[e,a,o]);O(()=>{r.current=document.querySelector($7e)},[]);let{displayedItems:c,hasMore:l,sentinelRef:u}=gx({allItems:A(()=>[...s].reverse(),[s]),initialCount:100,loadMoreCount:50,enabled:!0}),f=A(()=>[...c].reverse(),[c]),p=j(e=>{mg(e)},[]),m=j(async e=>{if(e.thinoType===$9)return;let t=await Y.updateMemo(e.id,e.content,e.thinoType===$06?$0p:$06);t&&Y.editMemo(t)},[]),h=j((e,t)=>{if(d.Keymap.isModifier(t.nativeEvent,$gp)){let t=(0,d.moment)(e,$02);K.setFromAndToQuery(t.startOf($04).valueOf(),t.endOf($04).valueOf())}},[]),g=j((e=$4l)=>{let t=r.current;t&&window.requestAnimationFrame(()=>{t.scrollTo({top:t.scrollHeight,behavior:e})})},[]);vS(()=>r.current,g);let _=k(!1);O(()=>{!_.current&&c.length>0&&(_.current=!0,window.setTimeout(()=>g($4l),100))},[c.length,g]);let v=k(0),y=k(0);return O(()=>{let e=r.current;if(!e||!_.current)return;let t=f.length,n=v.current;if(t===n)return;let i=e.scrollHeight-e.scrollTop-e.clientHeight<200;if(t>n)if(i)window.requestAnimationFrame(()=>g($5z));else{let t=y.current,n=e.scrollHeight-t;n>0&&t>0&&(e.scrollTop+=n)}v.current=t,y.current=e.scrollHeight},[f.length,g]),Z($0,{ref:i,className:Tf(`chat-view`,`simple-chat-view`,`${t?.chatViewStyle}-style`),children:[l&&Z($0,{ref:u,className:`chat-load-more-sentinel`,style:{height:$iw,margin:`10px 0`}}),f.map(e=>Z(rC,{item:e,iconString:n,handleClickTimeStamp:p,handleToggleCheckBox:e=>void m(e),handleDayMarkClick:h},e.id))]})};N(),U();var aC=({icon:e,className:t})=>{let n=k(null);return O(()=>{n.current&&(e?(n.current.style.backgroundImage=`url("${e}")`,n.current.empty()):(0,d.setIcon)(n.current,$2e))},[e]),Z($0,{ref:n,className:t,style:e?{backgroundImage:`url("${e}")`}:void 0})},oC=Ot(({memo:e})=>{let[t,n]=_x(),{settings:r}=H();return Z($0,{ref:t,className:`thino-moment-wrapper`,children:[Z(aC,{icon:Gy(r?.MomentsIcon),className:`thino-moment-icon`}),Z($0,{className:`thino-moment-container`,children:[Z($0,{className:`thino-moment-user-name`,children:r?.UserName||$0h}),Z($0,{className:`thino-moment-user-content`,children:n?Z(yy,{memo:e}):Z($0,{className:$l5,style:{minHeight:`80px`,paddingTop:`var(--size-2-2)`,opacity:.7},children:Z($0,{className:$4d,style:{fontSize:`0.9em`,color:`var(--thino-modern-text-faint)`},children:[e.content.substring(0,120),$6f]})})})]})]})},(e,t)=>e.memo.id===t.memo.id&&e.memo.content===t.memo.content);oC.displayName=`MomentMemo`;var sC=()=>{let{settings:e}=H(),t=Gy(e?.MomentsBackgroundImage);return Z($0,{className:`moments-view-background`,style:{backgroundImage:t?`url("${t}")`:void 0}})},cC=({thinos:e})=>{let t=k(null),n=k(null),{app:r,settings:i}=H(),a=B(e=>e.editMemoId),o=B(e=>e.markMemoId),[s,c]=D(!1),l=Gy(i?.MomentsIcon);O(()=>{if(!a){c(!1);return}c(!0);let e=window.setTimeout(()=>r?.workspace.trigger($1h),200);return()=>window.clearTimeout(e)},[a,r]),O(()=>{o&&c(!0)},[o]),O(()=>{t.current=document.querySelector($7e)},[]);let{displayedItems:u,hasMore:f,sentinelRef:p,loadingMore:m}=gx({allItems:e,initialCount:50,loadMoreCount:30,enabled:!0});return vS(()=>t.current),Z($0,{ref:n,className:Tf(`moments-view`,`simple-moments`,s?`show-editor`:``),style:{width:$2n,height:$2n,position:`relative`},children:[Z($0,{className:`moments-view-background-wrapper`,children:[Z(sC,{}),Z($0,{className:`moments-show-editor-btn`,ref:e=>{e&&(0,d.setIcon)(e,`camera`)},onClick:()=>{c(!s)}}),Z($0,{className:`moments-view-background-overlay`,children:[Z($0,{className:`moments-view-user-info`,children:[Z($0,{className:`moments-view-user-name`,children:i?.UserName||$0h}),Z(aC,{icon:l,className:`moments-view-user-icon`})]}),Z($0,{className:`moments-view-user-idea`,children:i?.MomentsQuote||` `})]})]}),Z($0,{className:`moments-list`,children:[u.map(e=>Z(oC,{memo:e},e.id)),f&&Z($0,{ref:p,className:`moments-sentinel`,style:{height:$iw,margin:$mu},children:m&&Z($0,{style:{textAlign:$1f,padding:$mv,opacity:.6},children:$h3})})]})]})};N();var lC=Ot(({memo:e})=>{let[t,n]=_x();return Z($0,{ref:t,className:`waterfall-memo-container`,style:{width:$2n,maxWidth:$2n,minWidth:0,overflow:$5w},children:n?Z(yy,{memo:e}):Z($0,{className:$js,style:{minHeight:`100px`,padding:`12px`,backgroundColor:`var(--background-secondary)`,borderRadius:`8px`,opacity:.7},children:Z($0,{style:{fontSize:`0.9em`,opacity:.8,overflowWrap:`anywhere`,wordBreak:`break-word`},children:[e.content.substring(0,150),$6f]})})})},(e,t)=>e.memo.id===t.memo.id&&e.memo.content===t.memo.content);lC.displayName=`WaterfallMemo`;var uC=({memos:e,className:t=``,columns:n=3,gap:r=10})=>{let{displayedItems:i,hasMore:a,sentinelRef:o,loadingMore:s}=gx({allItems:e,initialCount:50,loadMoreCount:30,enabled:!0}),c=A(()=>{let e=Array.from({length:n},()=>[]);return i.forEach((t,r)=>{e[r%n].push(t)}),e},[i,n]);return Z($0,{className:Tf(`simple-waterfall-list`,t),style:{width:$2n,maxWidth:$2n,minWidth:0,overflowX:$5w},children:[Z($0,{className:`waterfall-columns`,style:{display:`grid`,gridTemplateColumns:`repeat(${n}, 1fr)`,gap:`${r}px`,width:$2n,maxWidth:$2n,minWidth:0,overflow:$5w},children:c.map((e,t)=>Z($0,{className:`waterfall-column`,style:{display:`flex`,flexDirection:`column`,gap:`${r}px`,minWidth:0,maxWidth:$2n},children:e.map(e=>Z(lC,{memo:e},e.id))},`col-${t}`))}),a&&Z($0,{ref:o,className:`waterfall-sentinel`,style:{height:$iw,margin:$mu},children:s&&Z($0,{style:{textAlign:$1f,padding:$mv,opacity:.6},children:$h3})})]})};N();var dC=kt(({children:e,className:t,mode:n=$4f,onScroll:r,style:i},a)=>{let o=k(null),s=j((e=!1)=>{o.current&&o.current.scrollTo({top:0,behavior:e?$5z:$4l})},[]),c=j((e=!1)=>{o.current&&o.current.scrollTo({top:o.current.scrollHeight,behavior:e?$5z:$4l})},[]),l=j((e,t=!1)=>{o.current&&o.current.scrollTo({top:e,behavior:t?$5z:$4l})},[]),u=j(()=>o.current,[]),d=j(()=>o.current?{top:o.current.scrollTop,height:o.current.clientHeight,scrollHeight:o.current.scrollHeight}:{top:0,height:0,scrollHeight:0},[]);return Ye(a,()=>({scrollToTop:s,scrollToBottom:c,scrollToPosition:l,getScrollElement:u,getScrollPosition:d}),[s,c,l,u,d]),M.useLayoutEffect(()=>{n===$1m&&c(!1)},[n,c]),Z($0,{ref:o,className:t,onScroll:r,style:{overflowY:$4l,overflowX:$5w,WebkitOverflowScrolling:`touch`,...i},children:e})});dC.displayName=`ScrollContainer`,N();var fC=({itemId:e,initialContent:t,placeholder:n=``,onContentChange:r,onSubmit:i,onCancel:a})=>{let[o,s]=D(null),c=k(null),l=k(!1),u=k(t??``),d=k(null),{instance:f,value:p,setFullContent:m,get:h,editorView:g}=vv(o,!0),_=j(e=>{s(e)},[]),v=j(()=>{let e=h?.(),t=typeof e==$q?e:u.current;u.current=t,d.current!==t&&(r(t),d.current=t)},[h,r]);return O(()=>{f&&c.current!==e&&(c.current=e,l.current=!0,u.current=t??``,d.current=null,m(t||``,!0))},[f,e,t,m]),O(()=>{if(f){if(l.current){l.current=!1,u.current=p;return}u.current=p}},[p,f]),O(()=>{let e=g;if(e)return n&&(e.dom.dataset.placeholder=n),e.focus(),()=>{n&&delete e.dom.dataset.placeholder}},[g,n]),O(()=>{g||f?.editor&&f.editor.focus()},[g,f]),O(()=>{let e=g?.dom||o;if(!e)return;let t=e=>{if(e.key===$7m&&(e.preventDefault(),a()),e.key===$28&&(e.ctrlKey||e.metaKey)){e.preventDefault(),v(),i();return}e.key===$28&&!e.shiftKey&&(e.preventDefault(),v(),a())};return e.addEventListener($1s,t,!0),()=>{e.removeEventListener($1s,t,!0)}},[g,o,v,a,i]),Z($0,{ref:_,className:`temp-editor`})};N(),U(),I(),X(),Ia(),us();var pC=e=>!e.isPending,mC=({item:e,index:t,isFocused:n,isEditing:r,onFocus:i,onEdit:a,onExitEdit:o,onContentChange:s,onCreateNext:c,onDelete:l,itemRef:u})=>{let{app:f,view:p,settings:m}=H(),h=k(null),g=k(null),_=k(null),v=k(null),y=k(null),[b,x]=D(!1),{isSelected:S,handleClick:C}=zv(e.id);O(()=>(u(h.current,e.id),()=>u(null,e.id)),[e.id,u]),O(()=>{if(!r&&g.current&&f&&p){let t=e.optimisticContent??e.content??``;g.current.empty(),d.MarkdownRenderer.render(f,t,g.current,pC(e)?e.path:``,p),g.current.classList.add($32)}},[e.content,e.optimisticContent,r,f,p,e.isPending]);let w=new Date(e.createdAt),T=!Number.isNaN(w.getTime()),E=T?w.toLocaleString():String(e.createdAt),ee=T?(0,d.moment)(w).format($17):E,te=j(t=>{if(pC(e)){if(t.ctrlKey||t.metaKey){let t=(0,d.moment)(e.createdAt,$6);K.setFromAndToQuery(t.startOf($04).valueOf(),t.endOf($04).valueOf());return}mg(e)}},[e]),ne=j(()=>{e.isPending||eg(e.id,m)},[e,m]),re=j(async()=>{pC(e)&&await Qh(e)},[e]),ie=j(()=>{a(t)},[t,a]),ae=j(async()=>{e.isPending||await Y.openThinoByID(e.id)},[e]),oe=j(async()=>{pC(e)&&await $h(e)},[e]),se=j(async()=>{l(e.id)},[e.id,l]),ce=j(()=>{pC(e)&&E_(e)},[e]),le=j(async()=>Xh(e.content),[e.content]),ue=j(async t=>{pC(e)&&await Zh(e,t)},[e]),de=j(async t=>{if(!pC(e))return;t.preventDefault(),t.stopPropagation();let n=t.target;if(t.ctrlKey||t.metaKey){await ae();return}if(n.tagName===`A`){await Kh(f,p,n);return}if(n.tagName===`IMG`){qh(h.current,n);return}if(n.tagName===`A`&&n.getAttribute($g6)){let e=n.getAttribute($g6);window.open(e,$1l);return}if(n.className===$40){Jh(n);return}if(n.tagName===$7o&&n.hasClass($1t)){await Yh(m,e,h.current,n);return}},[e,f,p,m,ae]),fe=j(t=>{pC(e)&&_y(e,t)},[e]),pe=j(t=>{t.preventDefault(),t.stopPropagation();let n=new d.Menu;n.dom.toggleClass($f6,!0);let r=window.getSelection();r?.toString().length>0&&G_(n,[[F(299),$27,()=>{navigator.clipboard.writeText(r.toString()).then(()=>{new d.Notice(F(298))}).catch(()=>{new d.Notice(F(297))})}]]).addSeparator(),pC(e)&&e.sourceType===$00&&G_(n,[[F(729),$3j,()=>void ue(!0)],[F(728),$3j,()=>void ue(!1)]]).addSeparator();let i=pC(e)&&e.pinned;G_(n,[m?.enableReferenceLinksGroup&&!e.isPending&&[F(743),$3j,()=>fe(t)],[F(300).toLocaleUpperCase(),$27,async()=>{await le(),n.close()}],[F(50),$c0,()=>te(t)],pC(e)&&[F(i?40:39),i?$8a:$56,re],[F(51),$e1,ne],!e.isPending&&[F(52),$8d,ce],[F(38),$ea,ie],!e.isPending&&[F(53),$jm,()=>ae()]]).addSeparator(),G_(n,[!e.isPending&&[F(55).toLocaleUpperCase(),$11,()=>oe(),!0],[F(41),$3m,()=>void se(),!0]]),n.showAtMouseEvent(t.nativeEvent)},[e,m,ue,fe,le,te,re,ne,ce,ie,ae,oe,se]),me=j(t=>{if(!pC(e)||!t.shiftKey||!p||!f)return;t.stopPropagation();let n=e;f.workspace.trigger($a2,{event:t,source:$0c,hoverParent:p.containerEl,targetEl:h.current,linktext:n.path,sourcePath:n.path,state:{scroll:n.sourceType===$00?parseInt(n.id.slice(14)):0}})},[e,f,p]),he=()=>{let t=new d.Menu;t.dom.toggleClass([$8t],!0);let n=t.useNativeMenu,i=e=>n?0:e;if(n?(t.setNoIcon(),G_(t,[!r&&[F(38),0,ie]])):K_(t,[!r&&[$ea,ie],!e.isPending&&[$27,()=>void le()]]),pC(e)){let r=e;n||t.addSeparator(),G_(t,[n&&[F(301),0,le],[r.pinned?F(40):F(39),i(r.pinned?$8a:$56),re],[F(52),i($8d),ce],[F(53),i($jm),ae]]).addSeparator(),G_(t,[[F(51),i($e1),ne],[F(55),i($11),oe]])}return t.addSeparator(),G_(t,[[F(41),i($3m),n?se:e=>{e.stopPropagation(),e.preventDefault(),se(),t.close()},!0]]),t.onHide(()=>{v.current=null}),v.current=t,t},ge=e=>{if(e.stopPropagation(),v.current){v.current.close();return}he().showAtMouseEvent(e.nativeEvent)},_e=e=>{C(e)||n||i(t)},ve=j(n=>{if(n&&n.target.tagName!==$7o)switch(m?.doubleClickBehavior||$4r){case $gd:pC(e)&&mg(e);break;case $4r:r||a(t);break;case $d7:e.isPending||ae();break;case $g2:break;default:r||a(t);break}},[e,t,m,r,a,ae]);return O(()=>{if(!pC(e)||!y.current||b||!h.current)return;let t=e;f.dragManager.handleDrag(y.current,n=>{if(f.dragManager.updateSource([h.current],$mf),n.dataTransfer.setData($oj,e.content),n.dataTransfer.setData($k4,e.content),n.dataTransfer.setData($nm,e.content),m?.DraggingBehavior===$9u)if(t?.sourceType===$00){let e=f.vault.getFileByPath(t.path),n=t.hasId;return t.hasId||(n=R.randomId(6),$o(t,{id:t.id,hasId:n})),{type:$3j,icon:$mh,title:e.basename,linktext:`${t.path}#^${n}`,sourcePath:t.path,file:e,memo:t,blockId:n,source:$lg}}else return null;else if(m?.DraggingBehavior===$0l)return null}),x(!0)},[e,y.current,h.current,m?.DraggingBehavior,b]),Z($0,{ref:h,className:Tf(`flow-item`,{focused:n,editing:r,pending:e.isPending,pinned:pC(e)&&e.pinned,selected:S}),"data-source-type":pC(e)?e.sourceType:void 0,"data-thino-type":pC(e)?e.thinoType:void 0,"data-thino-id":e.id,onClick:_e,onDoubleClick:ve,onContextMenu:pe,onMouseOver:me,tabIndex:-1,children:[Z($0,{ref:y,className:$g3,draggable:!e.isPending,children:Z($8,{ref:_,className:$ii,onClick:ge,"aria-label":E,children:ee})}),Z($0,{className:$f2,onClick:e=>void de(e),children:r?Z($0,{className:$6v,children:Z(fC,{itemId:e.id,initialContent:e.content,placeholder:`Write your note here... (Shift+Enter for new line, Enter to save, Ctrl+Enter for new note)`,onContentChange:t=>s(e.id,t),onSubmit:()=>c(t),onCancel:o})},$3d):Z($0,{ref:g,className:`flow-item-preview`,children:(e.optimisticContent??e.content)||Z(`em`,{className:`empty-content`,children:`Empty note`})},$8b)})]})};N(),X(),Kd(),Wd();var hC=()=>`pending-${Date.now()}-${Math.random().toString(36).slice(2,11)}`,gC=e=>{let[t,n]=D([]),[r,i]=D(new Map),a=k(new Map),o=k(new Map);O(()=>{a.current=r},[r]);let s=Gd(e=>e.sort),c=A(()=>t.slice().sort((e,t)=>t.createdAt-e.createdAt),[t]),l=A(()=>Vd(e,s).map(e=>({...e,isPending:!1})),[e,s]),u=A(()=>{let e=new Set(l.map(e=>e.id)),t=c.filter(t=>{let n=o.current.get(t.id);return!(n&&e.has(n))}),n=l.filter(e=>e.pinned),i=l.filter(e=>!e.pinned);return[...n,...t,...i].map(e=>{let t=r.get(e.id);return t===void 0?e:{...e,optimisticContent:t}})},[c,l,r]);O(()=>{r.size!==0&&r.forEach((t,n)=>{if(n.startsWith($jv))return;let r=e.find(e=>e.id===n);r&&r.content===t&&i(e=>{let t=new Map(e);return t.delete(n),t})})},[e,r]);let f=j(e=>{let t=hC(),r={id:t,content:``,isPending:!0,createdAt:Date.now()};return n(t=>{if(e!==void 0&&e>=0){let n=[...t];return n.splice(e,0,r),n}else return[...t,r]}),t},[]),p=j((e,t)=>{o.current.set(e,t.id)},[]);O(()=>{if(t.length===0)return;let r=new Set(e.map(e=>e.id)),a=[];for(let e of t){let t=o.current.get(e.id);t&&r.has(t)&&a.push(e.id)}a.length>0&&(n(e=>e.filter(e=>!a.includes(e.id))),i(e=>{let t=new Map(e);return a.forEach(e=>t.delete(e)),t}),a.forEach(e=>o.current.delete(e)))},[e,t]);let m=j(e=>{n(t=>t.filter(t=>t.id!==e)),i(t=>{let n=new Map(t);return n.delete(e),n})},[]),h=A(()=>(0,d.debounce)(async(e,t)=>{let n=a.current.get(e);if(!n||n!==t)return;let r=e.startsWith($jv);if(!t.trim()){r&&m(e);return}try{if(r){let n=await Y.createMemoDaily(t,!0);n&&(o.current.set(e,n.id),p(e,n))}else await Y.updateMemo(e,t)}catch(e){console.error(`Failed to save content:`,e)}},1e3),[m,p]),g=j(async e=>{let t=a.current.get(e)??``;if(e.startsWith($jv)&&t.trim())try{let n=await Y.createMemoDaily(t,!0);n&&(o.current.set(e,n.id),p(e,n))}catch(e){console.error(`Immediate save failed:`,e)}},[p]);return{allItems:u,addPendingItem:f,confirmPendingItem:p,removePendingItem:m,updateItemContent:j((e,t)=>{i(n=>{let r=new Map(n);return r.set(e,t),r}),n(n=>n.map(n=>n.id===e?{...n,content:t}:n)),h(e,t)},[h]),savePendingImmediately:g}};N();var _C=e=>{let[t,n]=D(0),[r,i]=D(null),a=k(new Map),o=j(t=>{if(t<0||t>=e.length)return;n(t);let r=e[t].id,i=a.current.get(r);i&&(typeof i.focus==$z&&i.focus({preventScroll:!0}),i.scrollIntoView({block:`nearest`,behavior:$5z}))},[e]);return{focusedIndex:t,editingIndex:r,itemRefs:a,setFocusedIndex:n,setEditingIndex:i,focusItem:o,handleKeyDown:j(e=>{if(r===null)switch(e.key){case $lo:e.preventDefault(),o(t-1);break;case $ht:e.preventDefault(),o(t+1);break;case $28:e.preventDefault(),i(t);break;case $7m:break;default:break}},[r,t,o])}};N();var vC=60,yC=40,bC=({thinos:e})=>{let t=k(null),n=k(null),r=k([]),i=k(`top-composer-${Date.now()}`),[a,o]=D(``),[s,c]=D((0,d.moment)().format($17)),[l,u]=D(new Date().toLocaleString()),[f,p]=D(()=>Math.min(vC,e.length)),{getScrollElement:m}=gS(),[h,g]=D(!1),_=k(null),v=k(!1);M.useEffect(()=>{let e=window.setInterval(()=>{c((0,d.moment)().format($17)),u(new Date().toLocaleString())},3e4);return()=>window.clearInterval(e)},[]);let{allItems:y,addPendingItem:b,removePendingItem:x,updateItemContent:S,savePendingImmediately:C}=gC(e),{focusedIndex:w,editingIndex:T,itemRefs:E,setEditingIndex:ee,focusItem:te,handleKeyDown:ne}=_C(y);M.useEffect(()=>{r.current=y},[y]);let re=M.useMemo(()=>f>=y.length?y:y.slice(0,f),[y,f]),ie=f<y.length;M.useEffect(()=>{p(e=>{if(y.length===0)return 0;let t=Math.min(vC,y.length);if(e===0)return t;let n=Math.min(e,y.length);return n<t?t:n})},[y.length]),M.useEffect(()=>{let e=T??w;e>=f&&e<y.length&&p(t=>{let n=Math.max(t,e+1);return Math.min(y.length,n+yC)})},[w,T,f,y.length]),M.useEffect(()=>{if(y.length!==0){if(v.current){v.current=!1;return}te(w)}},[f,y.length,w,te]),M.useEffect(()=>{let e=n.current,t=m()??null;if(!e||!ie)return;let r=new IntersectionObserver(e=>{let t=e.some(e=>e.isIntersecting);g(e=>e===t?e:t)},{root:t,rootMargin:$go});return r.observe(e),()=>r.disconnect()},[m,ie]);let ae=j(()=>{let e=m();e?_.current={prevScrollTop:e.scrollTop,prevScrollHeight:e.scrollHeight}:_.current=null,v.current=!0,p(e=>Math.min(y.length,e+yC))},[y.length,m]);Je(()=>{let e=_.current;if(!e)return;let t=m();if(_.current=null,!t)return;let n=t.scrollHeight-e.prevScrollHeight;n!==0&&t.scrollTo({top:e.prevScrollTop+n,behavior:$4l})},[f,m]);let oe=j(e=>{te(e)},[te]),se=j(e=>{o(e)},[]),ce=j(()=>{let e=a.trim();if(!e)return;let t=b(0);S(t,e),C?.(t),o(``),i.current=`top-composer-${Date.now()}`,window.setTimeout(()=>{let e=r.current.findIndex(e=>e.id===t);e!==-1&&te(e)},0)},[a,b,S,te]),le=j(()=>{ce()},[ce]),ue=j(e=>{ee(e)},[ee]),de=j(()=>{ee(null),te(w)},[ee,te,w]),fe=j((e,t)=>{S(e,t)},[S]),pe=j(e=>{let t=b(e+1);window.setTimeout(()=>{let e=r.current.findIndex(e=>e.id===t);if(e===-1){ee(null);return}ee(e),te(e)},0)},[b,ee,te]),me=j(e=>{y.find(t=>t.id===e)?.isPending&&x(e)},[y,x]),he=j((e,t)=>{e?E.current.set(t,e):E.current.delete(t)},[E]);return M.useEffect(()=>{let e=t.current;if(!e)return;let n=e=>{let t=e.target;if(!(t&&t.closest($kb))){if(y.length===0&&e.key===$28){e.preventDefault(),e.stopPropagation();let t=b(0);window.setTimeout(()=>{let e=r.current.findIndex(e=>e.id===t);e!==-1&&(ee(e),te(e))},0);return}T===null&&([$lo,$ht,$28].includes(e.key)&&e.stopPropagation(),ne(e))}};return e.addEventListener($1s,n,{capture:!0}),()=>{e.removeEventListener($1s,n,{capture:!0})}},[T,ne]),Z($0,{ref:t,className:`flow-view`,tabIndex:-1,children:[Z($0,{className:`flow-list`,children:[Z($0,{className:`flow-top-composer flow-item`,children:[Z($0,{className:$g3,children:Z($8,{className:$ii,"aria-label":l,children:s})}),Z($0,{className:$f2,children:Z($0,{className:$6v,children:Z(fC,{itemId:i.current,initialContent:a,placeholder:`Start a new note at the top...`,onContentChange:se,onSubmit:ce,onCancel:le})})})]}),re.map((e,t)=>Z(mC,{item:e,index:t,isFocused:w===t,isEditing:T===t,onFocus:oe,onEdit:ue,onExitEdit:de,onContentChange:fe,onCreateNext:pe,onDelete:me,itemRef:he},e.id)),ie&&Z($0,{className:`flow-load-more-region`,children:[Z($0,{ref:n,className:`flow-load-more-sentinel`,"aria-hidden":$0q}),h&&Z($7,{type:$7,className:`flow-load-more-button`,onClick:ae,children:`加载更多`})]})]}),y.length===0&&Z($0,{className:`flow-empty-state`,children:Z(`p`,{children:`Press Enter to create your first note`})})]})};N(),U(),X(),I();var xC=class extends d.Modal{message;onConfirm;onCancel;constructor(e,t,n,r){super(e),this.message=t,this.onConfirm=n,this.onCancel=r}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass(`thino-confirm-modal`),e.createEl(`h2`,{text:F(791)}),e.createEl(`p`,{text:this.message});let t=e.createDiv({cls:$1z});t.createEl($7,{text:F(305)}).addEventListener($05,()=>{this.onCancel(),this.close()}),t.createEl($7,{text:F(791),cls:$8s}).addEventListener($05,()=>{this.onConfirm(),this.close()})}onClose(){let{contentEl:e}=this;e.empty()}},SC=({app:e})=>{let t=Qa(e=>e.getSelectedCount()),n=Qa(e=>e.getSelectedIds),r=Qa(e=>e.clearSelection),i=z(e=>e.memos),[a,o]=D(!1),s=j(()=>{let e=n();return i.filter(t=>e.includes(t.id))},[n,i]),c=j(t=>new Promise(n=>{new xC(e,t,()=>n(!0),()=>n(!1)).open()}),[e]),l=j(async()=>{let e=s();if(e.length===0||!await c(`Are you sure you want to delete ${e.length} ${F(798)}? This action cannot be undone.`))return;o(!0);let t=new d.Notice(F(786),0),n=0,i=0;for(let t of e)try{await Y.deleteMemoById(t.id),n++}catch(e){console.error(`Failed to delete memo:`,t.id,e),i++}o(!1),t.hide(),r(),i===0?new d.Notice(`${F(792)} ${n} ${F(798)}`):new d.Notice(`${F(792)} ${n} ${F(798)}, ${F(797)} ${i}`)},[s,c,r]),u=j(async()=>{let e=s();if(e.length===0||!await c(`Are you sure you want to archive ${e.length} ${F(798)}?`))return;o(!0);let t=new d.Notice(F(787),0),n=0,i=0;for(let t of e)try{await Y.archiveMemo(t)?n++:i++}catch(e){console.error(`Failed to archive memo:`,t.id,e),i++}o(!1),t.hide(),r(),i===0?new d.Notice(`${F(793)} ${n} ${F(798)}`):new d.Notice(`${F(793)} ${n} ${F(798)}, ${F(797)} ${i}`)},[s,c,r]),f=j(async()=>{let e=s();if(e.length===0)return;let t=e.every(e=>e.pinned)?`unpin`:$56;if(!await c(t===$56?`Are you sure you want to pin ${e.length} ${F(798)}?`:`Are you sure you want to unpin ${e.length} ${F(798)}?`))return;o(!0);let n=new d.Notice(F(t===$56?788:789),0),i=0,a=0;for(let n of e)try{t===$56?await Y.pinMemoById(n.id):await Y.unpinMemoById(n.id),i++}catch(e){console.error(`Failed to ${t} memo:`,n.id,e),a++}o(!1),n.hide(),r(),a===0?new d.Notice(t===$56?`${F(794)} ${i} ${F(798)}`:`${F(795)} ${i} ${F(798)}`):new d.Notice(`${F(799)} ${i} ${F(798)}, ${F(797)} ${a}`)},[s,c,r]),p=j(async()=>{let e=s();if(e.length===0)return;o(!0);let t=e.map(e=>`${`## ${e.createdAt}${e.pinned?` 📌`:``}`}\n\n${e.content}`).join(`
  152. ---
  153. `);try{await navigator.clipboard.writeText(t),new d.Notice(`${F(796)} ${e.length} ${F(798)} to clipboard`),r()}catch(e){console.error(`Failed to copy to clipboard:`,e),new d.Notice(F(618))}finally{o(!1)}},[s,r]),m=j(()=>{r()},[r]);return t===0?null:Z($0,{className:Tf(`selection-toolbar`,{loading:a}),children:Z($0,{className:`selection-toolbar-content`,children:[Z($8,{className:`selection-toolbar-count`,children:`${t} ${F(785)}`}),Z($0,{className:`selection-toolbar-actions`,children:[Z($0,{className:$26,onClick:()=>void f(),title:F(993),children:[Z($8,{ref:e=>e&&(0,d.setIcon)(e,$56)}),F(790)]}),Z($0,{className:$26,onClick:()=>void u(),"aria-label":F(926),children:[Z($8,{ref:e=>e&&(0,d.setIcon)(e,$11)}),F(925)]}),Z($0,{className:$26,onClick:()=>void p(),"aria-label":F(943),children:[Z($8,{ref:e=>e&&(0,d.setIcon)(e,$27)}),F(942)]}),Z($0,{className:`clickable-icon selection-toolbar-btn danger`,onClick:()=>void l(),"aria-label":F(950),children:[Z($8,{ref:e=>e&&(0,d.setIcon)(e,$3m)}),F(873)]}),Z($0,{className:`clickable-icon selection-toolbar-btn selection-toolbar-clear`,onClick:m,title:F(936),children:Z($8,{ref:e=>e&&(0,d.setIcon)(e,`x`)})})]})]})})};N(),U(),$d(),X(),ro(),wn();var CC=new Map,wC=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function TC(e,t){let n=e.replaceAll(`-`,`/`),r=n.substring(0,4),i=n.substring(5,7),a=n.substring(8,10);switch(t){case $3b:return r;case $0s:return`${r}-${i}`;case $m1:return`${r}-Q${Math.ceil(parseInt(i)/3)}`;case $22:{let e=(0,d.moment)([parseInt(r),parseInt(i)-1,parseInt(a)]),t=e.isoWeekYear(),n=e.isoWeek();return`${t}-W${String(n).padStart(2,`0`)}`}case $04:return`${r}-${i}-${a} ${wC[new Date(parseInt(r),parseInt(i)-1,parseInt(a)).getDay()]}`;default:return e.substring(0,10)}}function EC(e,t){let n={};return e.forEach(e=>{let r;if(e.pinned)r=$1w;else{let n=`${e.createdAt}-${t}`,i=CC.get(n);i||(i=TC(e.createdAt,t),CC.set(n,i),CC.size>1e3&&Array.from(CC.keys()).slice(0,500).forEach(e=>CC.delete(e))),r=i}n[r]||(n[r]=[]),n[r].push(e)}),n}function DC(e){let{tag:t,duration:n,type:r,text:i,filter:a,path:o,metadata:s}=e,c=lf.getQueryById(a),l=!s||Object.keys(s).length===0;return!(t||n&&n.from<n.to||r||i||!l||o||c?.id||c)}var OC=({updateThinos:e,listView:t,sortConfig:n})=>{let r=V(e=>e.query),i=z(e=>e.memos),a=i?.length||0,o=H(e=>e.app),s=H(e=>e.settings?.showDayMark),c=H(e=>e.settings?.dayMarkRange),l=H(e=>e.settings?.ShowScrollToTopButton),u=Qa(e=>e.getSelectedCount()),[d,f]=D([]),p=k([]),m=A(()=>{if(n)return{sortBy:n.field,sortOrder:n.direction}},[n]),h=k(null),[g,_]=D({showDayMark:o?.loadLocalStorage($5s)||!1,dayMarkRange:o?.loadLocalStorage($51)||$04,dayMarkThinos:{}}),v=k(null),y=j(()=>{v.current?.scrollToTop()},[]),b=j(()=>{v.current?.scrollToTop()},[]),x=k(!1),S=k(!1);O(()=>{t!==$2z&&b()},[t]),Je(()=>{if(i.length!==0&&x.current===!0)return;let e=AC(o||Sn());if(!e||e.length===0)return;let t=e.slice(0,200);S.current=!0,p.current=t,f(t);let n=o?.loadLocalStorage($5s)||!1;_(t=>({...t,showDayMark:n,dayMarkThinos:n?EC(e,o?.loadLocalStorage($51)||$04):t.dayMarkThinos}))},[]);let C=Qd(e=>e.filteredMemos),w=Qd(e=>e.version),T=Qd(e=>e.isCalculating);O(()=>{if(w===0||T)return;let t=a>0,n=!DC(r),i=w===1&&C.length===0&&t&&!n?p.current:C;i!==d&&wt(()=>{f(i)}),p.current=i,e?.(i)},[C,w,T,e,a,r,d]),O(()=>{w>0&&jC(d||[],o);let e=s||!1,t=c||$04;o?.saveLocalStorage($5s,e),o?.saveLocalStorage($51,t),_(n=>({showDayMark:e,dayMarkRange:t,dayMarkThinos:e?EC(d,t):n.dayMarkThinos}))},[d,s,c,w,o]),O(()=>{T||t!==$2z&&y()},[r,T,t,y]);let E=e=>{let{showDayMark:t,dayMarkRange:n}=g;switch(e){case $0y:return Z(Sx,{memos:d,listView:e,className:`${e}-view`,sortConfig:m,showDayMark:t,dayMarkRange:n});case`waterfall`:return Z(uC,{memos:d,className:`${e}-view waterfall-virtual`,columns:3,gap:10});case $2z:return Z(iC,{thinos:d});case $1c:return Z(Wx,{thinos:d});case $2x:return Z(dS,{thinos:d,isFiltering:!DC(r)});case $4v:return Z(cC,{thinos:d});case $jl:return Z(bC,{thinos:d});default:return Z(Sx,{memos:d,listView:e,className:`${e}-view`,sortConfig:m,showDayMark:g.showDayMark,dayMarkRange:g.dayMarkRange})}};return Z(_S,{scrollRef:v,children:[u>0&&o&&Z(SC,{app:o}),Z(dC,{ref:v,className:`memolist-wrapper completed`,mode:t===$2z?$1m:$4f,style:{height:$2n},children:Z($0,{ref:h,className:`memolist-container`,"data-list-view":t,"data-count":d?.length||0,children:E(t)})}),l&&Z($7,{className:Tf(`scroll-to-bottom-button`,t===$2z?`to-bottom`:`to-top`,t===$jl&&$01,(t===$2x||t===$1c)&&$01),onClick:()=>{t===$2z?v.current?.scrollToBottom(!0):v.current?.scrollToTop(!0)},children:`↑`})]})};function kC(e){return`memosListCache:${e}`}function AC(e){try{if(!e?.appId)return[];let t=kC(e.appId),n=no.get([t])[t];return n&&JSON.parse(n)?.memos||[]}catch(e){return console.error(e),[]}}function jC(e,t){try{if(!e)return;let n=(t||Sn())?.appId;if(!n)return;let r=e?.slice(0,100),i=kC(n);no.set({[i]:JSON.stringify({memos:r})})}catch(e){console.error(e)}}N(),U(),I();var MC=864e5,NC=52,PC=7,FC=()=>{let{settings:e}=H(),{isPhoneView:t}=B(),n=z(e=>e.memos),r=e?.DefaultThemeForThino===$1a,[i,a]=D(!1),{totalMemos:o,activeDays:s,heatCells:c}=A(()=>{let e=n||[];if(!e.length)return{totalMemos:0,activeDays:0,heatCells:[]};let t=e.filter(e=>!e.deletedAt&&e.rowStatus!==$07),r=new Map,i=1/0;for(let e of t){let t=e.createdAtTs??(e.createdAt?new Date(String(e.createdAt).replace(/\//g,`-`)).getTime():NaN);if(!Number.isFinite(t))continue;t<i&&(i=t);let n=new Date(t),a=`${n.getFullYear()}-${n.getMonth()}-${n.getDate()}`;r.set(a,(r.get(a)||0)+1)}let a=Number.isFinite(i)?(0,d.moment)().startOf($04).diff((0,d.moment)(i).startOf($04),$2b)+1:0,o=[],s=new Date;s.setHours(0,0,0,0);let c=NC*PC;for(let e=c-1;e>=0;e--){let t=new Date(s.getTime()-e*MC),n=`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`,i=r.get(n)||0,a=0;i>=1&&(a=1),i>=3&&(a=2),i>=6&&(a=3),i>=10&&(a=4),o.push(a)}return{totalMemos:t.length,activeDays:Math.max(a,0),heatCells:o}},[n]);if(!r||!t||!n||n.length===0)return null;let l=F(364),u=F(`Thoughts`)||`想法`,f=F(`Day streak`)||`天连续`;return Z(E,{children:[Z($0,{className:`thino-focus-mobile-meta${i?` is-open`:``}`,children:[Z($7,{type:$7,className:`thino-focus-mobile-meta-today`,"aria-expanded":i,onClick:()=>a(e=>!e),children:[l,Z($8,{className:`thino-focus-mobile-meta-caret`,"aria-hidden":$0q,children:[` `,i?`▴`:`▾`]})]}),Z($8,{className:`thino-focus-mobile-meta-stats`,"aria-hidden":$0q,children:[Z($8,{className:$7d,children:[Z(`em`,{children:o.toLocaleString()}),` `,u]}),Z($8,{className:$7d,children:[Z(`em`,{children:s.toLocaleString()}),` `,f]})]})]}),i&&Z($0,{className:`thino-focus-mobile-heat`,"aria-hidden":$0q,children:Z($0,{className:`thino-focus-mobile-heat-strip`,children:c.map((e,t)=>Z($8,{className:`thino-focus-mobile-heat-cell${e?` l${e}`:``}`},t))})})]})};N(),U(),X(),I();var IC=()=>{let{showSiderbarInMobileView:e}=B(),{query:{text:t}}=V(),n=k(null),[r,i]=D(!1),[a,o]=D(t||``);O(()=>{o(t||``)},[t]);let s=Sp(e=>{K.setTextQuery(e)},250,[]),c=j(t=>{t.stopPropagation(),G.setShowSiderbarInMobileView(!e)},[e]),l=j(()=>{i(!0),window.setTimeout(()=>n.current?.focus(),30)},[]),u=j(()=>{a.trim()||i(!1)},[a]),d=j(e=>{let t=e.currentTarget.value;o(t),s(t)},[s]),f=j(()=>{o(``),K.setTextQuery(``),n.current?.focus()},[]),p=j(e=>{e.key===$7m&&(e.preventDefault(),a?f():(i(!1),n.current?.blur()))},[a,f]);return Z($0,{className:`thino-focus-mobile-topbar ${r?`is-search-expanded`:``}`,role:$9t,children:[Z($7,{type:$7,className:`thino-focus-mobile-topbar-btn is-leading`,"aria-label":F(`Menu`)||`Menu`,onClick:c,children:Z($8,{ref:xf(`menu`),"aria-hidden":$0q})}),!r&&Z($0,{className:`thino-focus-mobile-topbar-brand`,"aria-hidden":$0q,children:[Z($8,{className:`thino-focus-mobile-topbar-name`,children:$0c}),Z($8,{className:`thino-focus-mobile-topbar-dot`})]}),r?Z($0,{className:`thino-focus-mobile-topbar-search`,children:[Z($09,{ref:n,type:$0l,className:`thino-focus-mobile-topbar-search-input`,placeholder:F(363),value:a,onChange:d,onBlur:u,onKeyDown:p}),a&&Z($7,{type:$7,className:`thino-focus-mobile-topbar-search-clear`,"aria-label":F(935)||`Clear search`,onMouseDown:e=>e.preventDefault(),onClick:f,children:`×`})]}):Z($7,{type:$7,className:`thino-focus-mobile-topbar-btn is-trailing`,"aria-label":F(1008)||`Search`,onClick:l,children:Z($8,{ref:xf($oe),"aria-hidden":$0q})})]})};N(),U(),X(),I();var LC=()=>{let{settings:e}=H(),{isPhoneView:t,globalEditorShown:n}=B();if(!(e?.DefaultThemeForThino===$1a&&t&&!n))return null;let r=()=>{G.setGlobalEditorShown(!0)},i=F(`What's on your mind?`)||`你现在在想什么?`;return Z($7,{type:$7,className:`thino-focus-fab`,onClick:r,"aria-label":i,children:[Z($8,{className:`thino-focus-fab-prompt`,children:i}),Z($8,{className:`thino-focus-fab-send`,"aria-hidden":$0q,children:Z($8,{ref:xf(`arrow-up`)})})]})};N(),U(),Wd(),Wl(),wn();function RC(){let{settings:e,app:t,view:n}=H(),{loaded:r,memoListView:i,isPhoneView:a}=B(),o=e?.DefaultThemeForThino===$1a,s=o&&a,c=d.Platform.isMobile&&e?.DefaultEditorLocation===$3c&&!s,[l,u]=M.useState([]),[f,p]=M.useState((Sn()||t).loadLocalStorage($bc)||$0y),[m,h]=D(()=>Ud(t||Sn())),g=e=>{h(e)};O(()=>{i===f||!i||(p(i),t&&t?.saveLocalStorage($bc,i))},[i]),O(()=>{if(!(!n||!t||!r))return q.startPolling(n),()=>q.stopPolling()},[n,t,r,e.startSync]);let _=M.useRef(null);O(()=>{if(!o||a||!r)return;let e=null,t=0,n=()=>{!e||!_.current||_.current.classList.toggle($p0,e.scrollTop>40)},i=()=>{if(e=document.querySelector(`div[data-type="thino_view"] .memolist-wrapper`),!e){t=window.requestAnimationFrame(i);return}e.addEventListener($5y,n,{passive:!0}),n()};return i(),()=>{t&&window.cancelAnimationFrame(t),e?.removeEventListener($5y,n),_.current?.classList.remove($p0)}},[o,a,r,f]);let v=[Z(hx,{thinosCount:l.length,thinos:l},$e3),Z(OC,{listView:f,sortConfig:m,updateThinos:e=>{u(e)}},$0y)];return Z(E,{children:i===$2z?Z(E,{children:[Z(Uy,{onSortChange:g,currentSort:m},$o3),...v.reverse(),o&&!a?Z($0,{ref:_,className:$au,children:[Z(Bb,{}),Z(Iv,{className:$7h,editorType:$1g})]},$hf):Z(Iv,{className:$7h,editorType:$1g},$3d)]}):s?Z(E,{children:[Z(IC,{},`focus-mobile-topbar`),Z(FC,{},`focus-mobile-meta`),...v,Z(LC,{},`focus-mobile-fab`)]}):Z(E,{children:c?[Z(Uy,{onSortChange:g,currentSort:m},$o3),...v,Z(Iv,{className:$7h,editorType:$64},$3d)]:[Z(Uy,{onSortChange:g,currentSort:m},$o3),o&&!a?Z($0,{ref:_,className:$au,children:[Z(Bb,{}),Z(Iv,{editorType:$64})]},$hf):Z(Iv,{editorType:$64},$3d),...v]})})}Ia(),X(),N(),I(),U(),Ju(),Wl();var zC=async e=>{switch(e.sourceType){case $00:case $9:await Gu(e.id,e.path);break;case $0r:await qu(e.id,e.path);break;case $0g:await Wu(e.path);break;case $0i:await Ku(e.id,e.path);break}},BC=e=>{new d.Notice(e instanceof Error?e.message:String(e))},VC=({memo:e,variant:t,onRemove:n})=>{let{app:r,settings:i,view:a}=H(),o=t===$dz,s=k(null),c=k(null),[l,u]=M.useState(``);O(()=>{if(!s.current||!c.current||s.current.hasChildNodes()&&e.content===l||!a)return;u(e.content),s.current.hasChildNodes()&&s.current.empty();async function t(){o&&s.current?.toggleClass([$32],!0),await d.MarkdownRenderer.render(r,e.content+`
  154. `,s.current,e.path,a),Wh(r,s.current,e.path,a.containerEl)}t()},[e.content,c]);let f=async()=>{try{if(o)if(i.DeleteThinoDirectly)await Y.deleteMemoById(e.id);else{let t=await Y.hideMemoById(e.id);t&&Y.editMemo(t)}else await Y.deleteMemoById(e.id),n(e.id)}catch(e){BC(e)}},p=async()=>{try{let t=o?await Y.unarchiveMemo(e):await Y.restoreMemoById(e.id);!o&&t?.webId&&await q.syncRecover(t.webId),t&&Y.editMemo(t),n(e.id),new d.Notice(F(118))}catch(e){BC(e)}};return Z($0,{ref:c,className:`memo-wrapper ${`memos-`+e.id}`,children:[Z($0,{className:$ga,children:[Z($8,{className:$cg,children:o?`${F(142)} ${e.updatedAt}`:`${F(57)} ${R.getDateTimeString(e.deletedAt||e.createdAt)}`}),Z($0,{className:$1n,children:Z($8,{ref:xf($15),className:$d0,onClick:t=>{t.stopPropagation();let n=new d.Menu;G_(n,[[F(54),$91,p],[F(53),$jm,()=>void zC(e)],[F(41),$3m,()=>{let e=new d.Menu;G_(e,[[F(42),$3m,f,!0],[F(305),`x`,()=>void 0]]),e.showAtMouseEvent(t.nativeEvent)},!0]]),n.showAtMouseEvent(t.nativeEvent)}})})]}),Z($0,{ref:s,className:$4d,onContextMenu:o?void 0:e=>{e.preventDefault(),e.stopPropagation()}})]})};N(),X(),I();var HC=({title:e,showSidebar:t=!1,onShowSidebarClick:n,showHomeButton:r=!0,children:i,rightContent:a})=>{let o=j(()=>{n?n():G.setShowSiderbarInMobileView(!0)},[n]),s=j(()=>{K.clearQuery(),K.setPathname(`/`)},[]);return Z($0,{className:`section-header-container`,children:[Z($0,{className:`title-wrapper`,children:Z($0,{className:`title-btns-left-wrapper`,children:Z($0,{className:$ae,children:[t&&Z(Dp,{when:!0,children:Z($7,{ref:xf(`menu`),className:$6c,onClick:o})}),e&&Z($8,{className:$1k,children:e}),r&&Z($7,{className:`go-home-btn`,onClick:s,children:[`🏠 `,F(319)]}),i]})})}),a&&Z($0,{className:`title-btns-right-wrapper`,children:a})]})};N(),I();var UC=({isLoading:e,isEmpty:t,emptyMessage:n=F(47)})=>e?Z($0,{className:$21,children:Z($8,{className:$16,children:F(46)})}):t?Z($0,{className:$21,children:Z($8,{className:$16,children:n})}):null;N(),U(),I(),Rd();var WC=({variant:e})=>{let{query:t}=V(),{isMobileView:n}=B(),{memos:r}=z(),{app:i,plugin:a,settings:o}=H(),s=Jy(),[c,l]=D([]),u=M.useRef(null),f=e===$dz;O(()=>{Id({memos:r,query:t,filterOptions:{filterDoneTasks:!1,onlyFilterType:f?$dz:$lw},plugin:a}).then(l),s.setFinish()},[r,u.current,t]);let p=j(e=>{l(t=>t.filter(t=>t.id!==e))},[]);return Z($0,{className:`memo-trash-wrapper`,ref:u,children:[Z(HC,{showSidebar:n,rightContent:Z($0,{className:$5l,children:Z(Ep,{disableSuper:!0})}),children:Z($8,{ref:xf($15),className:`menu-popup-btn`,onClick:e=>{let t=new d.Menu;G_(t,[[F(375),f?$11:$91,()=>j_(i,F(54),async()=>{await M_(c)&&await(f?I_(c):z_(c))})],[F(372),$3m,()=>j_(i,F(41),async()=>{await M_(c)&&await(f?L_(c,o.DeleteThinoDirectly):R_(c))})]]),t.showAtMouseEvent(e.nativeEvent)}})}),Z(hx,{thinosCount:c.length,thinos:c}),Z(UC,{isLoading:s.isLoading,isEmpty:c.length===0}),!s.isLoading&&c.length>0&&Z($0,{className:`deleted-memos-container`,children:c.map(t=>Z(VC,{memo:t,variant:e,onRemove:p},`${t.id}-${t.updatedAt}`))})]})};N();var GC=()=>Z(WC,{variant:$lw});N();var KC=()=>Z(WC,{variant:$dz});N(),U(),X(),Rd();var qC=()=>{let{plugin:e,settings:t}=H(),{query:n}=V(),{isMobileView:r,changedByMemos:i}=B(),{memos:a}=z(),o=Jy(),[s,c]=D([]),[l,u]=D([]),d=M.useRef(null),[f,p]=D(!1),[m,h]=D([]),g=M.useRef([]);return O(()=>{if(f){if(n){Id({memos:a,query:n,filterOptions:{filterDoneTasks:!1,filterArchived:!t.ViewArchiveInRandomReview},plugin:e}).then(e=>{c([...e].sort(()=>Math.random()-Math.random()).slice(0,10)),p(!1)});return}c([...m].sort(()=>Math.random()-Math.random()).slice(0,10)),p(!1)}},[f,t.ViewArchiveInRandomReview]),O(()=>{m.length>0&&(c([...m].sort(()=>Math.random()-Math.random()).slice(0,10)),p(!1))},[m]),O(()=>{d.current&&(Id({memos:a,query:n,filterOptions:{filterDoneTasks:!1,filterArchived:!t.ViewArchiveInRandomReview},plugin:e}).then(e=>{h(e.filter(e=>e.rowStatus!==$07&&!(e.deletedAt!==``&&e.deletedAt)))}),o.setFinish())},[a,d.current,t.ViewArchiveInRandomReview]),O(()=>{if(i&&g.current.length>0){let e=m.filter(e=>g.current.includes(e.id));u(g.current.map(t=>e.find(e=>e.id===t)).filter(e=>e!==void 0));return}g.current=s.map(e=>e.id),u(s)},[s]),O(()=>{a.length!==0&&Id({memos:a,query:n,filterOptions:{filterDoneTasks:!1,filterArchived:!t.ViewArchiveInRandomReview},plugin:e}).then(e=>{let t=[...(Array.isArray(e)?e:[]).filter(e=>e.rowStatus!==$07&&!(e.deletedAt!==``&&e.deletedAt))].sort(()=>Math.random()-.5).slice(0,10);c(t),u(t)})},[n]),O(()=>()=>K.clearQuery(),[]),Z($0,{className:`memo-review-wrapper`,ref:d,children:[Z(HC,{showSidebar:r,children:Z($8,{ref:xf($od),onClick:()=>{p(!0)},className:`refresh-icon`})}),Z(hx,{}),Z(UC,{isLoading:o.isLoading,isEmpty:a.length===0}),!o.isLoading&&a.length>0&&Z($0,{className:`review-memos-container`,children:l.map(e=>Z(yy,{memo:e},`${e?.id}-${e.createdAt}`))})]})};N();var JC={top:20,right:20,bottom:40,left:40};function YC(e,t){let n=k(null),[r,i]=D(null);return O(()=>{if(!e)return;let t=n.current;if(!t)return;let r=new ResizeObserver(e=>{for(let t of e){let e=Math.floor(t.contentRect.width);e>0&&i(e)}});return r.observe(t),()=>r.disconnect()},[e]),[n,e&&r?r:t]}var XC=({chartWidth:e,chartHeight:t})=>Z(E,{children:[0,.25,.5,.75,1].map(n=>Z(`line`,{x1:0,y1:t*(1-n),x2:e,y2:t*(1-n),stroke:$59,strokeDasharray:`2,2`,opacity:.3},n))}),ZC=({chartHeight:e,minValue:t=0,maxValue:n})=>Z(E,{children:[0,.5,1].map(r=>Z($0l,{x:-10,y:e*(1-r)+5,textAnchor:$5q,fontSize:`12`,fill:$7j,children:Math.round(t+(n-t)*r)},r))});function QC(e,t,n){return Math.max(1,Math.ceil(e/Math.max(1,Math.floor(t/n))))}var $C=({count:e,step:t,chartHeight:n,x:r,label:i})=>Z(E,{children:Array.from({length:e},(a,o)=>o%t!==0&&o!==e-1?null:Z($0l,{x:r(o),y:n+20,textAnchor:`middle`,fontSize:`12`,fill:$7j,children:i(o)},o))});N();var ew=({data:e,dataKey:t=$g1,width:n=400,height:r=200,color:i=`var(--chart-1)`,responsive:a=!0,minLabelGap:o=70})=>{let[s,c]=YC(a,n);if(!e||e.length===0)return null;let l=c-JC.left-JC.right,u=r-JC.top-JC.bottom,d=e.map(e=>Number(e.count)||0),f=Math.max(...d),p=t=>e.length<=1?l/2:t/(e.length-1)*l,m=e=>f===0?u/2:u-(e-0)/(f-0)*u,h=e.map((e,t)=>{let n=p(t),r=m(Number(e.count)||0);return`${t===0?`M`:`L`} ${n} ${r}`}).join(` `);return Z($0,{ref:s,style:{width:$2n},children:Z($mp,{width:c,height:r,className:`simple-line-chart`,children:Z(`g`,{transform:`translate(${JC.left}, ${JC.top})`,children:[Z(XC,{chartWidth:l,chartHeight:u}),Z($46,{d:h,fill:$1i,stroke:i,strokeWidth:2}),Z($C,{count:e.length,step:QC(e.length,l,o),chartHeight:u,x:p,label:n=>e[n][t]||``}),Z(ZC,{chartHeight:u,minValue:0,maxValue:f}),e.map((e,n)=>Z(`circle`,{cx:p(n),cy:m(Number(e.count)||0),r:3,fill:i,opacity:0,className:`hover-point`,children:Z($pt,{children:`${e[t]}: ${e.count}`})},n))]})})})};N();var tw=({data:e,dataKey:t,valueKey:n,width:r=400,height:i=200,color:a=$it,responsive:o=!0,minLabelGap:s=70})=>{let[c,l]=YC(o,r);if(!e||e.length===0)return null;let u=l-JC.left-JC.right,d=i-JC.top-JC.bottom,f=Math.max(...e.map(e=>Number(e[n])||0)),p=u/e.length,m=p*.7,h=p*.3,g=e=>e*p+h/2,_=e=>f<=0?d:d-e/f*d;return Z($0,{ref:c,style:{width:$2n},children:Z($mp,{width:l,height:i,className:`simple-bar-chart`,children:Z(`g`,{transform:`translate(${JC.left}, ${JC.top})`,children:[Z(XC,{chartWidth:u,chartHeight:d}),e.map((e,r)=>{let i=Number(e[n])||0,o=i/f*d;return Z(`rect`,{x:g(r),y:_(i),width:m,height:o,fill:a,rx:4,ry:4,className:`bar`,children:Z($pt,{children:`${e[t]}: ${i}`})},r)}),Z($C,{count:e.length,step:QC(e.length,u,s),chartHeight:d,x:e=>g(e)+m/2,label:n=>String(e[n][t]||``)}),Z(ZC,{chartHeight:d,maxValue:f})]})})})};N(),I();function nw({memos:e}){let[t,n]=D([]);return O(()=>{let t=[{period:`00-03`,count:0},{period:`03-06`,count:0},{period:`06-09`,count:0},{period:`09-12`,count:0},{period:`12-15`,count:0},{period:`15-18`,count:0},{period:`18-21`,count:0},{period:`21-24`,count:0}];e.forEach(e=>{let n=new Date(e.createdAt).getHours();n<3?t[0].count++:n<6?t[1].count++:n<9?t[2].count++:n<12?t[3].count++:n<15?t[4].count++:n<18?t[5].count++:n<21?t[6].count++:t[7].count++}),n(t)},[e]),Z($0,{className:`time-distribution-chart`,children:Z($0,{className:`chart-card`,children:[Z($0,{className:`chart-header`,children:[Z($6x,{className:`chart-title`,children:F(720)}),Z(`p`,{className:`chart-description`,children:F(721)})]}),Z($0,{className:`chart-content`,children:Z(tw,{data:t,dataKey:`period`,valueKey:$d2,width:400,height:200,color:$it})})]})})}ia(),Ia(),N(),U(),I(),Rd();var rw=kt((e,t)=>{let{currentDate:n,setCurrentDateStamp:r,showTimeDistributionChart:i}=e,[a,o]=D(!1),s=R.getDateStampByDate(R.getDateString(n));return Ye(t,()=>({closeDatePicker:()=>{o(!1)}})),Z(E,{children:[Z($0,{className:`date-card-container`,children:[Z($0,{className:`date-container-details`,children:[Z($0,{className:`details-text`,children:[(0,d.moment)(s,`x`).format($nv),Z($0,{className:`date-text`,children:(0,d.moment)(s,`x`).format(`MMM`)+(0,d.moment)(s,`x`).format(`DD`)})]}),Z($0,{className:`details-logo-text`,children:F(93)})]}),Z($0,{className:`date-container-info`,children:[Z($0,{className:`date-container-info-text`,children:[`Week `,Z($0,{className:`week-text`,children:(0,d.moment)(s,`x`).format(`ww`)}),`of `,Z($0,{className:`year-text`,children:(0,d.moment)(s,`x`).format($j9)})]}),Z($0,{ref:xf($15),onClick:e=>{let t=new d.Menu;G_(t,[[F(724),$hu,()=>i()],[F(a?725:726),$1c,()=>o(!a)]]),t.showAtMouseEvent(e.nativeEvent)}})]})]}),Z(xh,{className:`date-picker ${a?``:$01}`,datestamp:s,handleDateStampChange:e=>{r(e)}})]})}),iw=({thino:e})=>Z($0,{className:`daily-thino-wrapper`,children:[Z($0,{className:`time-wrapper`,onClick:j(()=>{mg(e)},[]),children:Z($8,{className:$1k,children:(0,d.moment)(e.createdAt,$6).format($17)})}),Z($0,{className:`daily-thino-container`,children:Z(yy,{memo:e})})]}),aw=()=>{let{query:e}=V(),{memos:t}=z(),{plugin:n}=H(),r=Jy(),[i,a]=D([]),[o,s]=D(R.getDateStampByDate(R.getDateString((0,d.moment)().format($1o)))),[c,l]=D(!1),u=k(),f=k(null),p=M.useRef(null),m=k(null),[h,g]=D(!1);O(()=>{e.duration&&e.duration.from&&e.duration.to&&s(e.duration.from)},[e.duration]),O(()=>{m.current&&(d.setIcon&&m&&!h&&(0,d.setIcon)(m.current,$dg),d.setIcon&&m&&h&&(0,d.setIcon)(m.current,`loader`))},[m.current,h]),O(()=>{Id({memos:t,query:e,filterOptions:{filterDoneTasks:!1},plugin:n}).then(e=>{a(e.filter(e=>R.getTimeStampByDate(e.createdAt)>=o&&R.getTimeStampByDate(e.createdAt)<o+864e5).filter(e=>e.deletedAt===``).sort((e,t)=>R.getTimeStampByDate(e.createdAt)-R.getTimeStampByDate(t.createdAt)).slice(0,40)),r.setFinish()})},[t,o,p.current,e]);let _=async()=>{u.current&&u?.current?.closeDatePicker(),g(!0),document.body.toggleClass($2d,!0),window.setTimeout(()=>{(async()=>{if(!f.current){g(!1);return}await rx(f.current),Kg(f.current,{pixelRatio:window.devicePixelRatio*2}).then(e=>{ix(e),document.body.toggleClass($2d,!1),Uh({imgUrl:e}),g(!1)}).catch(()=>{document.body.toggleClass($2d,!1),g(!1)})})()},0)};return Z($0,{className:`daily-thinos-list-wrapper`,ref:p,children:[Z(HC,{rightContent:Z($0,{className:$5l,children:[Z($0,{className:$1n,children:[Z($8,{ref:e=>{d.setIcon&&e&&(0,d.setIcon)(e,$2v)},className:$7t,onClick:()=>s(e=>e-Wi)}),Z($8,{ref:e=>{d.setIcon&&e&&(0,d.setIcon)(e,$0z)},className:$7t,onClick:()=>s(e=>e+Wi)}),Z($8,{ref:m,className:Tf(`btn btn-text share-btn`,h?`generating`:``),onClick:()=>void _()})]}),Z(Ly,{}),Z(Ep,{})]})}),Z(hx,{thinosCount:i.length,thinos:i}),Z($0,{className:`daily-thinos-view-wrapper thino-stat`,children:Z($0,{ref:f,className:`daily-thinos-view-container`,children:[Z(rw,{ref:u,currentDate:new Date(o),setCurrentDateStamp:s,showTimeDistributionChart:()=>l(!c)}),c&&Z(nw,{memos:i}),Z(UC,{isLoading:r.isLoading,isEmpty:i.length===0,emptyMessage:F(58)}),!r.isLoading&&i.length>0&&Z($0,{className:`daily-thinos-list-container`,children:i.map(e=>Z(iw,{thino:e},`${e.id}-${e.updatedAt}`))})]})})]})},ow=function(e){return e[e.New=0]=`New`,e[e.Learning=1]=`Learning`,e[e.Review=2]=$ni,e[e.Relearning=3]=`Relearning`,e}({}),Q=function(e){return e[e.Manual=0]=`Manual`,e[e.Again=1]=`Again`,e[e.Hard=2]=`Hard`,e[e.Good=3]=`Good`,e[e.Easy=4]=`Easy`,e}({}),sw=[Q.Again,Q.Hard,Q.Good,Q.Easy],cw=.001,lw=36500,uw=100,dw=.1542,fw=2,pw=.9,mw=36500,hw=!1,gw=!0,_w=Object.freeze([`1m`,`10m`]),vw=Object.freeze([`10m`]),yw=Object.freeze([.212,1.2931,2.3065,8.2956,6.4133,.8334,3.0194,.001,1.8722,.1666,.796,1.4835,.0614,.2629,1.6483,.6014,1.8729,.5425,.0912,.0658,dw]),bw=(e,t)=>[[cw,uw],[cw,uw],[cw,uw],[cw,uw],[1,10],[.001,4],[.001,4],[.001,.75],[0,4.5],[0,.8],[.001,3.5],[.001,5],[.001,.25],[.001,.9],[0,4],[0,1],[1,6],[0,e],[0,e],[t?.01:0,.8],[.1,.8]],xw=(e,t,n)=>Math.min(Math.max(e,t),n),Sw=e=>{if(e instanceof Date)return new Date(e.getTime());if(typeof e==$q){let t=Date.parse(e);if(Number.isNaN(t))throw Error(`Invalid date:[${e}]`);return new Date(t)}if(typeof e==$0e)return new Date(e);throw Error(`Invalid date:[${String(e)}]`)},Cw=e=>({...e,state:e.state,due:Sw(e.due),last_review:e.last_review?Sw(e.last_review):void 0}),ww=(e,t,n)=>new Date(n?Sw(e).getTime()+t*864e5:Sw(e).getTime()+t*6e4),Tw=(e,t)=>{if(!e||!t)throw Error(`Invalid date`);return Math.floor((Sw(e).getTime()-Sw(t).getTime())/864e5)},Ew=(e,t)=>{let n=Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),r=Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate());return Math.floor((r-n)/864e5)},Dw=[{start:2.5,end:7,factor:.15},{start:7,end:20,factor:.1},{start:20,end:1/0,factor:.05}],Ow=(e,t,n)=>{let r=1;for(let t of Dw)r+=t.factor*Math.max(Math.min(e,t.end)-t.start,0);e=Math.min(e,n);let i=Math.max(2,Math.round(e-r)),a=Math.min(Math.round(e+r),n);return e>t&&(i=Math.max(i,t+1)),i=Math.min(i,a),{min_ivl:i,max_ivl:a}},kw=()=>{let e=4022871197;return t=>{let n=String(t);for(let t=0;t<n.length;t++){e+=n.charCodeAt(t);let r=.02519603282416938*e;e=r>>>0,r-=e,r*=e,e=r>>>0,r-=e,e+=r*4294967296}return(e>>>0)*23283064365386963e-26}},Aw=e=>{let t=kw(),n=t(` `),r=t(` `),i=t(` `);n-=t(e),n<0&&(n+=1),r-=t(e),r<0&&(r+=1),i-=t(e),i<0&&(i+=1);let a=2091639*n+1*23283064365386963e-26;return a-(a|0)},jw=e=>{let t=e.slice(-1),n=parseInt(e.slice(0,-1),10);if(Number.isNaN(n)||!Number.isFinite(n)||n<0)throw Error(`Invalid step value: ${e}`);switch(t){case`m`:return n;case`h`:return n*60;case`d`:return n*1440;default:throw Error(`Invalid step unit: ${e}, expected m/h/d`)}},Mw=(e,t,n)=>{let r=t===ow.Relearning||t===ow.Review?e.relearning_steps:e.learning_steps,i=r.length;if(i===0||n>=i)return{};let a=r[0],o=e=>e<0||e>=i?null:r[e],s={},c=o(Math.max(0,n));if(t===ow.Review)return s[Q.Again]={scheduled_minutes:jw(c),next_step:0},s;s[Q.Again]={scheduled_minutes:jw(a),next_step:0},s[Q.Hard]={scheduled_minutes:Math.round(i===1?jw(a)*1.5:(jw(a)+jw(r[1]))/2),next_step:n};let l=o(n+1);if(l){let e=jw(l);e&&(s[Q.Good]={scheduled_minutes:Math.round(e),next_step:n+1})}return s},Nw=(e,t,n)=>{let r=fw;return Math.max(0,t)>1&&(r=xw(+(-(Math.log(e[11])+Math.log(2**e[13]-1)+e[14]*.3)/t).toFixed(8),.01,2)),bw(r,n).slice(0,e.length).map(([t,n],r)=>xw(e[r]||0,t,n))},Pw=(e,t,n)=>e===void 0?[...yw]:e.length===21?Nw(Array.from(e),t,n):(console.warn(`[FSRS]Invalid parameters length, using default parameters`),[...yw]),Fw=e=>{let t=Array.isArray(e?.learning_steps)?e.learning_steps:_w,n=Array.isArray(e?.relearning_steps)?e.relearning_steps:vw,r=e?.enable_short_term??gw;return{request_retention:e?.request_retention||pw,maximum_interval:e?.maximum_interval||mw,w:Pw(e?.w,n.length,r),enable_fuzz:e?.enable_fuzz??hw,enable_short_term:r,learning_steps:t,relearning_steps:n}},Iw=e=>({due:e?Sw(e):new Date,stability:0,difficulty:0,elapsed_days:0,scheduled_days:0,reps:0,lapses:0,learning_steps:0,state:ow.New,last_review:void 0}),Lw=e=>{let t=-e[20];return{decay:t,factor:+(Math.exp(t**-1*Math.log(.9))-1).toFixed(8)}},Rw=class{last;current;review_time;elapsed_days;memo=new Map;constructor(e,t,n){this.f=e,this.last=Cw(t),this.current=Cw(t),this.review_time=Sw(n);let{state:r,last_review:i}=this.current,a=0;r!==ow.New&&i&&(a=Ew(i,this.review_time)),this.current.last_review=this.review_time,this.elapsed_days=a,this.current.elapsed_days=a,this.current.reps+=1,this.f.seed=`${this.review_time.getTime()}_${this.current.reps}_${this.current.difficulty*this.current.stability}`}preview(){return{[Q.Again]:this.review(Q.Again),[Q.Hard]:this.review(Q.Hard),[Q.Good]:this.review(Q.Good),[Q.Easy]:this.review(Q.Easy)}}review(e){if(!Number.isFinite(e)||e<Q.Manual||e>Q.Easy)throw Error(`Invalid grade "${e}",expected 1-4`);let t=this.f.parameters.enable_short_term;switch(this.last.state){case ow.New:return t?this.newStateBasic(e):this.longTermNewState(e);case ow.Learning:case ow.Relearning:return t?this.learningStateBasic(e):this.longTermReviewState(e);default:return t?this.reviewStateBasic(e):this.longTermReviewState(e)}}buildLog(e){let{last_review:t,due:n,elapsed_days:r}=this.last;return{rating:e,state:this.current.state,due:t||n,stability:this.current.stability,difficulty:this.current.difficulty,elapsed_days:this.elapsed_days,last_elapsed_days:r,scheduled_days:this.current.scheduled_days,learning_steps:this.current.learning_steps,review:this.review_time}}getLearningInfo(e){let t=this.current;t.learning_steps=t.learning_steps||0;let n=Mw(this.f.parameters,t.state,t.state===ow.Learning&&e!==Q.Again&&e!==Q.Hard?t.learning_steps+1:t.learning_steps);return{scheduled_minutes:Math.max(0,n[e]?.scheduled_minutes??0),next_steps:Math.max(0,n[e]?.next_step??0)}}applyLearningSteps(e,t,n){let{scheduled_minutes:r,next_steps:i}=this.getLearningInfo(t);if(r>0&&r<1440){e.learning_steps=i,e.scheduled_days=0,e.state=n,e.due=ww(this.review_time,Math.round(r),!1);return}if(e.state=ow.Review,r>=1440)e.learning_steps=i,e.due=ww(this.review_time,Math.round(r),!1),e.scheduled_days=Math.floor(r/1440);else{e.learning_steps=0;let t=this.f.next_interval(e.stability,this.elapsed_days);e.scheduled_days=t,e.due=ww(this.review_time,t,!0)}}newStateBasic(e){let t=this.memo.get(e);if(t)return t;let n=Cw(this.current);n.difficulty=xw(this.f.init_difficulty(e),1,10),n.stability=this.f.init_stability(e),this.applyLearningSteps(n,e,ow.Learning);let r={card:n,log:this.buildLog(e)};return this.memo.set(e,r),r}learningStateBasic(e){let t=this.memo.get(e);if(t)return t;let{state:n,difficulty:r,stability:i}=this.last,a=Cw(this.current);a.difficulty=this.f.next_difficulty(r,e),a.stability=this.f.next_short_term_stability(i,e),this.applyLearningSteps(a,e,n);let o={card:a,log:this.buildLog(e)};return this.memo.set(e,o),o}reviewStateBasic(e){let t=this.memo.get(e);if(t)return t;let n=this.elapsed_days,{difficulty:r,stability:i}=this.last,a=this.f.forgetting_curve(n,i),o=Cw(this.current),s=Cw(this.current),c=Cw(this.current),l=Cw(this.current),u=this.f.parameters.w,d=this.next_ds([o,s,c,l],r,i,a);o.stability=xw(+(i/Math.exp(u[17]*u[18])).toFixed(8),cw,d);let f=this.f.next_interval(s.stability,n),p=this.f.next_interval(c.stability,n);f=Math.min(f,p),p=Math.max(p,f+1);let m=Math.max(this.f.next_interval(l.stability,n),p+1);s.scheduled_days=f,s.due=ww(this.review_time,f,!0),c.scheduled_days=p,c.due=ww(this.review_time,p,!0),l.scheduled_days=m,l.due=ww(this.review_time,m,!0);for(let e of[s,c,l])e.state=ow.Review,e.learning_steps=0;return this.applyLearningSteps(o,Q.Again,ow.Relearning),o.lapses+=1,this.commit([o,s,c,l],e)}next_ds(e,t,n,r){return sw.forEach((i,a)=>{e[a].difficulty=this.f.next_difficulty(t,i),i!==Q.Again&&(e[a].stability=this.f.next_recall_stability(t,n,r,i))}),this.f.next_forget_stability(t,n,r)}commit(e,t){return sw.forEach((t,n)=>{this.memo.set(t,{card:e[n],log:this.buildLog(t)})}),this.memo.get(t)}longTermIntervals(e,t,n,r,i){let a=this.f.next_interval(e.stability,i),o=this.f.next_interval(t.stability,i),s=this.f.next_interval(n.stability,i),c=this.f.next_interval(r.stability,i);a=Math.min(a,o),o=Math.max(o,a+1),s=Math.max(s,o+1),c=Math.max(c,s+1),e.scheduled_days=a,e.due=ww(this.review_time,a,!0),t.scheduled_days=o,t.due=ww(this.review_time,o,!0),n.scheduled_days=s,n.due=ww(this.review_time,s,!0),r.scheduled_days=c,r.due=ww(this.review_time,c,!0)}longTermFinish(e,t){for(let t of e)t.state=ow.Review,t.learning_steps=0;return this.commit(e,t)}longTermNewState(e){let t=this.memo.get(e);if(t)return t;this.current.scheduled_days=0,this.current.elapsed_days=0;let n=[Cw(this.current),Cw(this.current),Cw(this.current),Cw(this.current)];return sw.forEach((e,t)=>{n[t].difficulty=xw(this.f.init_difficulty(e),1,10),n[t].stability=this.f.init_stability(e)}),this.longTermIntervals(n[0],n[1],n[2],n[3],0),this.longTermFinish(n,e)}longTermReviewState(e){let t=this.memo.get(e);if(t)return t;let n=this.elapsed_days,{difficulty:r,stability:i}=this.last,a=this.f.forgetting_curve(n,i),o=[Cw(this.current),Cw(this.current),Cw(this.current),Cw(this.current)],s=this.next_ds(o,r,i,a);return o[0].stability=xw(i,cw,s),this.longTermIntervals(o[0],o[1],o[2],o[3],n),o[0].lapses+=1,this.longTermFinish(o,e)}},zw=class{param;intervalModifier;decay;factor;seed=``;constructor(e){if(this.param=Fw(e),this.param.request_retention<=0||this.param.request_retention>1)throw Error(`Requested retention rate should be in the range (0,1]`);let{decay:t,factor:n}=Lw(this.param.w);this.decay=t,this.factor=n,this.intervalModifier=+((this.param.request_retention**(1/t)-1)/n).toFixed(8)}get parameters(){return this.param}get interval_modifier(){return this.intervalModifier}forgetting_curve(e,t){return+((1+this.factor*e/t)**+this.decay).toFixed(8)}init_stability(e){return Math.max(this.param.w[e-1],.1)}init_difficulty(e){return+(this.param.w[4]-Math.exp((e-1)*this.param.w[5])+1).toFixed(8)}linear_damping(e,t){return+(e*(10-t)/9).toFixed(8)}mean_reversion(e,t){return+(this.param.w[7]*e+(1-this.param.w[7])*t).toFixed(8)}next_difficulty(e,t){let n=-this.param.w[6]*(t-3),r=e+this.linear_damping(n,e);return xw(this.mean_reversion(this.init_difficulty(Q.Easy),r),1,10)}next_recall_stability(e,t,n,r){let i=r===Q.Hard?this.param.w[15]:1,a=r===Q.Easy?this.param.w[16]:1;return+xw(t*(1+Math.exp(this.param.w[8])*(11-e)*t**+-this.param.w[9]*(Math.exp((1-n)*this.param.w[10])-1)*i*a),cw,lw).toFixed(8)}next_forget_stability(e,t,n){return+xw(this.param.w[11]*e**+-this.param.w[12]*((t+1)**+this.param.w[13]-1)*Math.exp((1-n)*this.param.w[14]),cw,lw).toFixed(8)}next_short_term_stability(e,t){let n=e**+-this.param.w[19]*Math.exp(this.param.w[17]*(t-3+this.param.w[18]));return+xw(e*(t>=Q.Good?Math.max(n,1):n),cw,lw).toFixed(8)}apply_fuzz(e,t){if(!this.param.enable_fuzz||e<2.5)return Math.round(e);let n=Aw(this.seed),{min_ivl:r,max_ivl:i}=Ow(e,t,this.param.maximum_interval);return Math.floor(n*(i-r+1)+r)}next_interval(e,t){let n=Math.min(Math.max(1,Math.round(e*this.intervalModifier)),this.param.maximum_interval);return this.apply_fuzz(n,t)}repeat(e,t){return new Rw(this,e,t).preview()}next(e,t,n){if(n===Q.Manual)throw Error(`Cannot review a manual rating`);return new Rw(this,e,t).review(n)}get_retrievability(e,t,n=!0){let r=Cw(e),i=t?Sw(t):new Date,a=r.state===ow.New?0:Math.max(Tw(i,r.last_review),0),o=r.state===ow.New?0:this.forgetting_curve(a,+r.stability.toFixed(8));return n?`${(o*100).toFixed(2)}%`:o}},Bw=e=>new zw(e||{}),Vw=Bw(Fw({request_retention:.9,maximum_interval:36500,enable_fuzz:!0,enable_short_term:!0})),Hw=e=>{Vw=Bw(Fw(e))},Uw=()=>({totalReviews:0,hardCount:0,goodCount:0,easyCount:0,againCount:0,lastReviewDate:Date.now(),reviewHistory:[]}),Ww=e=>Iw(e),Gw=e=>({due:e.due instanceof Date?e.due.toISOString():String(e.due),stability:e.stability,difficulty:e.difficulty,scheduled_days:e.scheduled_days,learning_steps:e.learning_steps,reps:e.reps,lapses:e.lapses,state:e.state,last_review:e.last_review instanceof Date?e.last_review.toISOString():void 0}),Kw=e=>({...Iw(new Date(e.due)),due:new Date(e.due),stability:e.stability,difficulty:e.difficulty,scheduled_days:e.scheduled_days,learning_steps:e.learning_steps??0,reps:e.reps,lapses:e.lapses,state:e.state,last_review:e.last_review?new Date(e.last_review):void 0}),qw=(e,t)=>{let n=Kw(e);return Gw(Vw.next(n,new Date,t).card)},Jw=e=>{let t=Kw(e),n=Vw.repeat(t,new Date);return{[Q.Again]:{card:Gw(n[Q.Again].card),log:n[Q.Again].log},[Q.Hard]:{card:Gw(n[Q.Hard].card),log:n[Q.Hard].log},[Q.Good]:{card:Gw(n[Q.Good].card),log:n[Q.Good].log},[Q.Easy]:{card:Gw(n[Q.Easy].card),log:n[Q.Easy].log}}};U();var Yw=`thino-review-`,Xw=`thino-review-historical-stats`,Zw=`thino-review-daily-limit`;function Qw(){return H.getState().app}function $w(e){let t=Qw();if(!t)return null;try{let n=t.loadLocalStorage(e);return n?JSON.parse(n):null}catch{return null}}function eT(e,t){let n=Qw();if(n)try{n.saveLocalStorage(e,JSON.stringify(t))}catch(t){console.error(`Error saving to localStorage:`,e,t)}}function tT(e){let t=Qw();t&&t.saveLocalStorage(e,``)}var nT=()=>$w(Xw)||{totalReviews:0,againCount:0,hardCount:0,goodCount:0,easyCount:0,lastReviewDate:0,reviewHistory:[]},rT=e=>{let t=nT();switch(t.totalReviews++,t.lastReviewDate=Date.now(),e){case Q.Again:t.againCount++;break;case Q.Hard:t.hardCount++;break;case Q.Good:t.goodCount++;break;case Q.Easy:t.easyCount++;break}t.reviewHistory.push({date:Date.now(),rating:e}),t.reviewHistory.length>1e3&&(t.reviewHistory=t.reviewHistory.slice(-1e3)),eT(Xw,t)},iT=()=>{let e=new Date().toISOString().split(`T`)[0],t=$w(Zw);if(!t||t.date!==e){let t={date:e,reviewed:0,totalCards:0};return eT(Zw,t),t}return t},aT=e=>{let t=iT();t.reviewed+=1,e!==void 0&&(t.totalCards=e),eT(Zw,t)},oT=e=>{let t=iT();t.totalCards=e,eT(Zw,t)},sT=e=>$w(`${Yw}${e}`)??void 0,cT=(e,t)=>{eT(`${Yw}${e}`,t)},lT=e=>{tT(`${Yw}${e}`)},uT=e=>{let t={memoId:e,card:Gw(Ww()),stats:Uw()};return cT(e,t),t},dT=(e,t)=>{let n=sT(e);n||=uT(e);let r=qw(n.card,t),i={...n.stats,totalReviews:n.stats.totalReviews+1,lastReviewDate:Date.now(),reviewHistory:[...n.stats.reviewHistory,{date:Date.now(),rating:t}]};switch(i.reviewHistory.length>200&&(i.reviewHistory=i.reviewHistory.slice(-200)),t){case Q.Again:i.againCount++;break;case Q.Hard:i.hardCount++;break;case Q.Good:i.goodCount++;break;case Q.Easy:i.easyCount++;break}let a={...n,card:r,stats:i};return cT(e,a),aT(),rT(t),a},fT=()=>{Qw()&&(tT(Xw),tT(Zw))},pT=e=>{if(!e)return!0;let t=Date.now();return new Date(e.card.due).getTime()<=t};N(),U(),X(),Rd(),I();function mT(e){let t=Date.now(),n=new Date(e.due).getTime()-t;if(n<0)return F(1039);let r=Math.round(n/6e4);if(r<1)return`<1m`;if(r<60)return`${r}m`;let i=Math.round(r/60);if(i<24)return`${i}h`;let a=Math.round(i/24);if(a<30)return`${a}d`;let o=Math.round(a/30);return o<12?`${o}mo`:`${(a/365).toFixed(1)}y`}var hT=[[Q.Again,`again`,`Again`],[Q.Hard,`hard`,`Hard`],[Q.Good,`good`,`Good`],[Q.Easy,`easy`,`Easy`]],gT=e=>({total:0,reviewed:0,remaining:0,againCount:0,hardCount:0,goodCount:0,easyCount:0,dailyLimit:e,dailyReviewed:0}),_T=()=>{let{plugin:e,settings:t}=H(),{memos:n}=z(),{isMobileView:r}=B(),{query:i}=V(),a=t?.fsrsDailyLimit??100,o=Jy(),[s,c]=D(0),[l,u]=D([]),[d,f]=D(!1),[p,m]=D(!1),[h,g]=D(``),_=k(null),[v,y]=D(()=>gT(100)),[b]=D(new Map),[x,S]=D({totalReviews:0,againCount:0,hardCount:0,goodCount:0,easyCount:0,reviewHistory:[]}),C=A(()=>new Set(n.map(e=>e.id)),[n]),w=A(()=>{let e=l[s];if(!e||!d)return null;let t=b.get(e.id)?.card??Gw(Ww());try{let e=Jw(t);return{again:mT(e[Q.Again].card),hard:mT(e[Q.Hard].card),good:mT(e[Q.Good].card),easy:mT(e[Q.Easy].card)}}catch{return null}},[l,s,d]);O(()=>{(async()=>{try{let t=iT();if(t.reviewed>=a){u([]),y(e=>({...e,dailyReviewed:t.reviewed,remaining:0,total:t.totalCards})),f(!1),o.setFinish();return}let r=n.filter(e=>e.rowStatus!==$07&&!(e.deletedAt!==``&&e.deletedAt)),s=r;if(i&&(i.tag||i.text||i.type||i.duration||i.filter||i.path)){let t=await Id({memos:r,query:i,filterOptions:{filterDoneTasks:!1,filterArchived:!0},plugin:e});s=Array.isArray(t)?t:r}let l=[],d=0,p=0,m=0,h=0;b.clear();for(let e of s)try{let t=sT(e.id);if(t){if(!C.has(t.memoId)){lT(t.memoId);continue}b.set(e.id,t)}pT(t)&&(l.push(e),t?.stats&&(d+=t.stats.againCount||0,p+=t.stats.hardCount||0,m+=t.stats.goodCount||0,h+=t.stats.easyCount||0))}catch(t){console.error(`Error fetching review data for memo:`,e.id,t);continue}l.sort((e,t)=>{let n=b.get(e.id),r=b.get(t.id);return(n?new Date(n.card.due).getTime():0)-(r?new Date(r.card.due).getTime():0)});let g=Math.min(l.length,a-t.reviewed);u(l.slice(0,g)),oT(s.length),f(!1),c(0),y({total:s.length,reviewed:0,remaining:g,againCount:d,hardCount:p,goodCount:m,easyCount:h,dailyLimit:a,dailyReviewed:t.reviewed})}catch(e){console.error(`Error in fetchReviewableMemos:`,e)}finally{o.setFinish()}})()},[n,i]),O(()=>{e&&e.addCommand({id:`clear-review-data`,name:F(326),callback:()=>{fT(),y(gT(a)),u([]),f(!1),c(0),b.clear()}})},[]),O(()=>{S(nT())},[]),O(()=>()=>K.clearQuery(),[]);let T=e=>{let t=l[s];if(!t)return;if(!C.has(t.id)){lT(t.id);let e=l.filter((e,t)=>t!==s);u(e),e.length===0?f(!1):s>=e.length&&c(0);return}let n=dT(t.id,e);b.set(t.id,n),S(nT());let r=iT(),i=l.filter((e,t)=>t!==s);if(e===Q.Again||e===Q.Hard){let e=i.findIndex(e=>{let t=b.get(e.id);return(t?new Date(t.card.due).getTime():0)>new Date(n.card.due).getTime()});e===-1?i.push(t):i.splice(e,0,t)}u(i),y(t=>({...t,reviewed:t.reviewed+1,remaining:i.length,dailyReviewed:r.reviewed,total:r.totalCards,...e===Q.Again?{againCount:t.againCount+1}:e===Q.Hard?{hardCount:t.hardCount+1}:e===Q.Good?{goodCount:t.goodCount+1}:{easyCount:t.easyCount+1}})),i.length>0?s>=i.length&&c(0):f(!1)},E=e=>{g({[Q.Again]:`swipe-left`,[Q.Hard]:`swipe-down`,[Q.Good]:`swipe-up`,[Q.Easy]:`swipe-right`}[e]||``),window.setTimeout(()=>{T(e),g(``)},250)},ee=()=>{l.length>0&&(f(!0),c(0))},te=l[s],ne=v.reviewed+v.dailyReviewed,re=ne+v.remaining,ie=re>0?Math.round(ne/re*100):0;return Z($0,{className:`daily-review-wrapper`,children:[Z(HC,{showSidebar:r,rightContent:Z($0,{className:$5l,children:Z($7,{className:`show-stats-btn`,onClick:()=>m(!p),children:F(p?329:328)})})}),Z(hx,{}),d&&Z($0,{className:`review-progress-bar`,children:[Z($0,{className:`review-progress-track`,children:Z($0,{className:`review-progress-fill`,style:{width:`${ie}%`}})}),Z($8,{className:`review-progress-text`,children:[ne,` / `,re]})]}),p&&Z($0,{className:`review-stats-banner`,children:[Z($0,{className:`stats-grid`,children:[[ne,F(327)],[v.remaining,F(704)],[v.total,F(705)]].map(([e,t])=>Z($0,{className:`stats-item`,children:[Z($8,{className:`stats-number`,children:e}),Z($8,{className:`stats-label`,children:t})]},t))}),Z($0,{className:`stats-breakdown-row`,children:hT.map(([,e,t])=>Z($8,{className:`breakdown-item ${e}`,children:[F(t),`: `,x[`${e}Count`]]},e))}),Z($0,{className:`stats-total-row`,children:[F(330),`: `,x.totalReviews]})]}),Z($0,{className:`review-container`,children:o.isLoading?Z($0,{className:$21,children:Z($8,{className:$16,children:F(46)})}):l.length===0?Z($0,{className:`review-done-container`,children:[Z($0,{className:`review-done-icon`,children:`✓`}),Z($8,{className:`review-done-text`,children:F(331)}),v.dailyReviewed>0&&Z($8,{className:`review-done-count`,children:[F(330),`: `,v.dailyReviewed]})]}):d?Z($0,{className:`review-card-stack`,children:[l.length>2&&Z($0,{className:`review-card stacked-card stack-2`}),l.length>1&&Z($0,{className:`review-card stacked-card stack-1`}),Z($0,{ref:_,className:`review-card active-card ${h}`,children:[Z($0,{className:`review-card-content`,children:Z(yy,{memo:te})}),Z($0,{className:`review-buttons`,children:hT.map(([e,t,n])=>Z($7,{className:`review-btn clickable-icon ${t}`,onClick:()=>E(e),children:[Z($8,{className:`review-btn-label`,children:F(n)}),w&&Z($8,{className:`review-btn-interval`,children:w[t]})]},t))})]})]}):Z($0,{className:`review-start-container`,children:[Z($0,{className:`review-start-count`,children:v.remaining}),Z($8,{className:`review-start-label`,children:F(320)}),Z($7,{className:`start-review-btn`,onClick:ee,children:F(321)})]})})]})};N();var vT=({name:e,className:t,size:n})=>Z($8,{className:t,style:n===void 0?void 0:{"--icon-size":typeof n==$0e?`${n}px`:n},ref:t=>{t&&(0,d.setIcon)(t,e)}});N(),U(),I();var yT=()=>{let{tagsNum:e,memos:t}=z(),n=B(e=>e.isMobileView),r=H(e=>e.plugin),i=Jy(),[a,o]=D([]),[s,c]=D([]),[l,u]=D([]),[f,p]=D([]),[m,h]=D([]),[g,_]=D([]),[v,y]=D($mw),[b,x]=D([]),S=e=>Math.max(n?320:600,e*(n?40:70));O(()=>{!t||t.length===0||(async()=>{i.setLoading();try{let n=await r.thinoWorkerManager.calculateStats(t),i=e=>{let t=parseInt(String(e).replace(/[^0-9]/g,``),10);return isNaN(t)?0:t},a=(e,t)=>(e||[]).slice().sort((e,n)=>{let r=new Date(String(e[t])),a=new Date(String(n[t]));return(isNaN(r.getTime())?i(e[t]):r.getTime())-(isNaN(a.getTime())?i(n[t]):a.getTime())}),s=(e,t)=>(e||[]).slice().sort((e,n)=>i(e[t])-i(n[t]));o(a(n.dailyData,$g1)),c(s(n.monthlyData,$g1)),u(a(n.yearlyData,$g1)),p(s(n.hourlyData,`hour`)),h((e=>{let t=[`00-03`,`03-06`,`06-09`,`09-12`,`12-15`,`15-18`,`18-21`,`21-24`];return(e||[]).slice().sort((e,n)=>t.indexOf(e.period)-t.indexOf(n.period))})(n.timeDistData)),_((e=>(e||[]).slice().sort((e,t)=>i(e?.range?.split?.(`-`)?.[0])-i(t?.range?.split?.(`-`)?.[0])))(n.lengthData)),x(Object.entries(e).map(([e,t])=>({tag:e,count:t})).sort((e,t)=>t.count-e.count).slice(0,10))}catch(e){console.error(`Error loading stats:`,e)}finally{i.setFinish()}})()},[t]);let C=A(()=>{switch(v){case $04:return f;case $0s:return s;case $3b:return l;default:return a}},[v,f,s,l,a]),w=j(e=>{let t=new d.Menu,n=[[F(715),$04],[F(412),$0s],[F(718),$mw],[F(719),$3b]];for(let[e,r]of n)t.addItem(t=>{t.setTitle(e).setChecked(v===r).onClick(()=>y(r))});t.showAtMouseEvent(e.nativeEvent)},[F,v]);return Z($0,{className:`thino-stat`,children:[Z(HC,{showSidebar:n,title:F(709)}),i.isLoading?Z($0,{className:$21,children:Z($8,{className:$16,children:F(46)})}):Z($0,{className:`stats-container`,children:[Z($0,{className:$c8,children:[Z($0,{className:$8o,children:[Z($0,{className:$3x,children:[Z($6x,{className:$9v,children:F(714)}),Z(`p`,{className:$4p,children:[v===$04&&F(715),v===$0s&&F(716),v===$mw&&F(367),v===$3b&&F(717)]})]}),Z($7,{className:`view-mode-btn`,onClick:e=>w(e),children:F(312)})]}),Z($0,{className:$7u,children:Z(ew,{data:C,dataKey:v===$04?`hour`:$g1,width:S(C?.length||0),height:200,color:`var(--text-accent)`})}),Z($0,{className:$ma,children:Z($0,{className:`total-count`,children:[F(710),`: `,t.length,` `,F(711),Z(vT,{name:`trending-up`,className:`trend-icon`})]})})]}),Z($0,{className:$c8,children:[Z($0,{className:$8o,children:Z($0,{className:$3x,children:[Z($6x,{className:$9v,children:F(720)}),Z(`p`,{className:$4p,children:F(721)})]})}),Z($0,{className:$7u,children:Z(tw,{data:m,dataKey:`period`,valueKey:$d2,width:S(m?.length||0),height:200,color:$8g})})]}),Z($0,{className:$c8,children:[Z($0,{className:$8o,children:Z($0,{className:$3x,children:[Z($6x,{className:$9v,children:F(722)}),Z(`p`,{className:$4p,children:F(723)})]})}),Z($0,{className:$7u,children:Z(tw,{data:g,dataKey:`range`,valueKey:$d2,width:S(g?.length||0),height:200,color:`var(--text-normal)`})})]}),Z($0,{className:$c8,children:[Z($0,{className:$8o,children:Z($0,{className:$3x,children:[Z($6x,{className:$9v,children:F(712)}),Z(`p`,{className:$4p,children:F(713)})]})}),Z($0,{className:$7u,children:Z(tw,{data:b,dataKey:$70,valueKey:$d2,width:S(b?.length||0),height:200,color:`var(--text-selection)`})})]})]})]})};N();var bT=[{name:`All`,value:null,color:`transparent`,border:!0},{name:`Red`,value:`red`,color:`#ef4444`},{name:`Orange`,value:`orange`,color:`#f97316`},{name:`Yellow`,value:$ol,color:`#eab308`},{name:`Green`,value:`green`,color:`#22c55e`},{name:`Blue`,value:`blue`,color:`#3b82f6`},{name:`Purple`,value:$oc,color:`#a855f7`},{name:`Pink`,value:`pink`,color:`#ec4899`},{name:`Brown`,value:`brown`,color:`#a3a3a3`},{name:`Gray`,value:$d9,color:`#6b7280`},{name:`Black`,value:`black`,color:`#1f2937`},{name:`White`,value:`white`,color:`#f9fafb`}],xT=e=>new Promise(t=>{let n=createEl($4o),r=n.getContext(`2d`);if(!r){t($d9);return}n.width=50,n.height=50,r.drawImage(e,0,0,50,50);try{let e=r.getImageData(0,0,50,50).data,n={};for(let t=0;t<e.length;t+=4){let r=e[t],i=e[t+1],a=e[t+2];if(e[t+3]<128)continue;let o=ST(r,i,a);n[o]=(n[o]||0)+1}let i=0,a=$d9;for(let[e,t]of Object.entries(n))t>i&&(i=t,a=e);t(a)}catch(e){console.warn(`Failed to extract color from image:`,e),t($d9)}}),ST=(e,t,n)=>{let r=(e*299+t*587+n*114)/1e3;if(r<50)return`black`;if(r>200&&Math.abs(e-t)<30&&Math.abs(t-n)<30&&Math.abs(e-n)<30)return`white`;if(Math.abs(e-t)<30&&Math.abs(t-n)<30&&Math.abs(e-n)<30)return $d9;let i=Math.max(e,t,n);return i-Math.min(e,t,n)<50?$d9:e===i?t>n?t-n>50?$ol:`orange`:n-t>50?$oc:`red`:t===i?e>n?$ol:n-e>50?`blue`:`green`:e>t&&e-t>50?$oc:`blue`},CT=({onColorSelect:e,selectedColor:t})=>{let[n,r]=D(!1),i=k(null);O(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r(!1)};return document.addEventListener($4b,e),()=>document.removeEventListener($4b,e)},[]);let a=bT.find(e=>e.value===t)||bT[0];return Z($0,{className:`color-picker-container`,ref:i,children:[Z($7,{className:`color-picker-trigger`,onClick:()=>r(!n),"aria-label":`Select color filter`,children:[Z($0,{className:`color-picker-preview`,children:[Z($0,{className:`color-preview-swatch`,style:{backgroundColor:a.color,border:a.border?$76:$1i}}),Z($8,{className:`color-picker-label`,children:a.name})]}),Z($mp,{className:`color-picker-arrow ${n?`open`:``}`,width:`12`,height:`12`,viewBox:`0 0 12 12`,children:Z($46,{d:`M3 4.5L6 7.5L9 4.5`,stroke:$ky,strokeWidth:`1.5`,fill:$1i,strokeLinecap:$l9,strokeLinejoin:$l9})})]}),n&&Z($0,{className:`color-picker-dropdown`,children:bT.map(n=>Z($7,{className:`color-picker-option ${t===n.value?$57:``}`,onClick:()=>{e(n.value),r(!1)},children:[Z($0,{className:`color-option-swatch`,style:{backgroundColor:n.color,border:n.border?$76:$1i}}),Z($8,{className:`color-option-label`,children:n.name})]},n.value||$ja))})]})};N(),U(),Ju();var wT=/\.(png|jpg|jpeg|gif|bmp|svg|webp)$/i,TT=({link:e,type:t,imagePath:n,altText:r,thinoId:i,sourceType:a,onColorExtracted:o})=>{let{app:s}=H(),[c,l]=D(null),[u,f]=D(null),[p,m]=D(!0),h=e?.startsWith(`http://`)||e?.startsWith(`https://`);O(()=>{if(!s||!e){f(`App context or image link is missing.`),m(!1);return}let r=!0;return m(!0),f(null),l(null),(async()=>{try{let i=null;if(h)i=e;else{let a=n||``,o=decodeURIComponent(e),c=s.metadataCache.getFirstLinkpathDest(o,a);if(!c&&a&&(c=s.metadataCache.getFirstLinkpathDest(o,``)),c instanceof d.TFile&&wT.test(c.path))i=s.vault.getResourcePath(c);else{let a=(0,d.normalizePath)(o),l=s.vault.getAbstractFileByPath(a);if(l instanceof d.TFile&&wT.test(l.path))i=s.vault.getResourcePath(l);else if(r){let r=`Could not resolve ${t} link: "${e}"`;n&&(r+=` (context: "${n}")`),c?r+=` - resolved to "${c.path}" but it's not a valid image.`:l&&(r+=` - resolved to "${l.path}" but it's not a valid image.`),f(r)}}}if(i&&r)l(i);else if(!i&&r&&!u){let r=`Image source for "${e}" (type: ${t}) could not be determined.`;n&&(r+=` Relative to "${n}"`),f(r)}}catch(i){console.error(`Error resolving image path for link "${e}" (type: ${t}, source: ${n||`N/A`}):`,i),r&&f(`Failed to resolve image "${e}": ${i instanceof Error?i.message:String(i)}`)}finally{r&&m(!1)}})(),()=>{r=!1}},[s,e,t,n]);let g=()=>{Uh(n?{imgUrl:c,filepath:n}:{imgUrl:c})},_=async()=>{if(!(!i||!n))switch(a){case $00:await Gu(i,n);break;case $0r:await qu(i,n);break;case $0g:await Wu(n);break;case $0i:await Ku(i,n);break;case $9:await Gu(i,n);break}};return p?Z($0,{className:`image-loading-placeholder`,children:$fq}):u?Z($0,{className:$33,onClick:()=>void _(),title:$69,children:[`Error: `,u]}):c?Z($6y,{src:c,alt:r||e,crossOrigin:h?$oq:void 0,onClick:g,onLoad:e=>{let t=e.currentTarget;o&&t.complete&&!h&&xT(t).then(e=>{o(e)}).catch(e=>{console.warn(`Failed to extract color:`,e)})},onError:()=>{u||f(`Failed to load image from src: ${c||e}`)},loading:$o5}):Z($0,{className:$33,onClick:()=>void _(),title:$69,children:`Image not available`})};N(),U(),X(),ia();var ET=20,DT=10,OT=()=>{let{app:e}=H(),{isMobileView:t}=B(),[n,r]=D([]),[i,a]=D([]),[o,s]=D(ET),[c,l]=D(!0),[u,d]=D(null),[f,p]=D(null),[m,h]=D([]);O(()=>{(async()=>{if(!e){l(!1);return}l(!0);try{let e=await Y.fetchAllMemos(),t=new Map,n=0;for(let r of e)if(r.content){for(let e of r.content.matchAll(Qi)){let i=e[1],a=e[5];if(i){let e=`wiki-${r.path}-${i}`;t.has(e)||t.set(e,{link:i,type:`wiki`,thinoId:r.id,sourceType:r.sourceType,memoPath:r.path,altText:a||i,key:`img-${n++}`})}}for(let e of r.content.matchAll($i)){let i=e[3],a=e[2];if(i&&!i.startsWith($4t)&&/\.(png|jpg|jpeg|gif|bmp|svg|webp)$/i.test(i)){let e=`md-${i}`;t.has(e)||t.set(e,{link:i,type:$54,thinoId:r.id,sourceType:r.sourceType,memoPath:r.path,altText:a||i,key:`img-${n++}`})}}for(let e of r.content.matchAll(Zi)){let i=e[2]+e[3]+e[4]+e[5],a=`http-${i}`;t.has(a)||t.set(a,{link:i,type:$54,thinoId:r.id,sourceType:r.sourceType,memoPath:r.path,altText:i,key:`img-${n++}`})}}r(Array.from(t.values()))}catch(e){console.error(`Failed to fetch image references for gallery:`,e)}finally{l(!1)}})()},[e]),O(()=>{h(f===null?n:n.filter(e=>e.dominantColor===f))},[f,n]),O(()=>{m.length>0?a(m.slice(0,o)):a([])},[o,m]),O(()=>{let e=document.querySelector(`.content-wrapper`);e?d(e):(console.warn(`'.content-wrapper' not found, falling back to window for scroll events. For optimal performance, ensure '.content-wrapper' exists or pass a ref to the scrollable element.`),d(document.documentElement))},[e]);let g=j(()=>{!u||c||o>=m.length||u.scrollTop+u.clientHeight>=u.scrollHeight-300&&s(e=>Math.min(e+DT,m.length))},[c,m,o,u]);O(()=>{if(!u)return;let e=u===document.documentElement?window:u;return e.addEventListener($5y,g),()=>e.removeEventListener($5y,g)},[g,u]);let _=j((e,t)=>{r(n=>n.map(n=>n.key===e?{...n,dominantColor:t}:n))},[]),v=j(e=>{p(e),s(ET)},[]);return c?Z($0,{className:$92,children:[Z(HC,{showSidebar:t,children:Z($0,{className:$9y,children:Z(CT,{onColorSelect:v,selectedColor:f})})}),Z($0,{className:$f5,children:`Loading images...`})]}):i.length===0&&f===null?Z($0,{className:$an,children:`Try add a image to thino`}):i.length===0&&f!==null?Z($0,{className:$92,children:[Z(HC,{showSidebar:t,children:Z($0,{className:$9y,children:Z(CT,{onColorSelect:v,selectedColor:f})})}),Z($0,{className:$an,children:`No images found with the selected color`})]}):Z($0,{className:$92,children:[Z(HC,{showSidebar:t,children:Z($0,{className:$9y,children:[Z(CT,{onColorSelect:v,selectedColor:f}),Z($0,{className:`gallery-stats`,children:f?Z($8,{className:$e6,children:[`Showing `,i.length,` of `,m.length,` `,f,` images`]}):Z($8,{className:$e6,children:[`Showing `,i.length,` of `,n.length,` images`]})})]})}),Z($0,{className:`gallery-masonry-grid`,children:i.map(e=>Z($0,{className:`gallery-image-item`,children:Z(TT,{link:e.link,type:e.type,imagePath:e.memoPath,altText:e.altText,thinoId:e.thinoId,sourceType:e.sourceType,onColorExtracted:t=>_(e.key,t)})},e.key))})]})};N();var kT={"/recycle":Z(GC,{}),"/archive":Z(KC,{}),"/review":Z(qC,{}),"/stat":Z(yT,{}),"/daily-review":Z(_T,{}),"/daily":Z(aw,{}),"/gallery":Z(OT,{}),"*":Z(RC,{})},AT=e=>t=>{for(let n of Object.keys(e))if(n===t)return e[n];return e[`*`]},jT=AT(nx),MT=AT(kT);N(),Ha(),Ja(),Xa(),$d(),Kd(),Zd();var NT=!1,PT=``,FT=``,IT=``,LT=void 0;function RT(){wt(()=>{try{Qd.getState().recompute()}catch{}})}var zT=(0,d.debounce)(()=>{RT()},20,!0),BT=(0,d.debounce)(()=>{RT()},100,!0);function VT(){let{query:e}=V.getState(),{settings:t}=H.getState();e?.tag&&!e.text&&!e.type&&!e.filter&&!e.path&&(!e.metadata||Object.keys(e.metadata).length===0)&&(!e.duration||e.duration.from===0&&e.duration.to===0)&&!t?.HideDoneTasks?zT():BT()}function HT(){NT||(NT=!0,z.subscribe(e=>e.memosHash,e=>{e&&e!==PT&&(PT=e,VT())}),V.subscribe(e=>e.query,e=>{let t=JSON.stringify({tag:e?.tag||``,dur:e?.duration?[e.duration.from,e.duration.to]:null,type:e?.type||``,text:e?.text||``,filter:e?.filter||``,path:e?.path||``,metadata:e?.metadata||{}});t!==FT&&(FT=t,VT())}),H.subscribe(e=>e.settings?.HideDoneTasks,e=>{e!==LT&&(LT=e,VT())}),H.subscribe(e=>e.plugin,()=>VT()),Gd.subscribe(e=>e.sort,e=>{let t=JSON.stringify(e||null);t!==IT&&(IT=t,VT())}),J.subscribe(e=>e.searchResults,()=>{let{query:e}=V.getState();J.getState().enabled&&e?.text&&BT()}),(z.getState().memos?.length||0)>0&&VT())}N(),rr(),I(),X(),Ms(),Ia(),U();function UT({app:e}){let{pathname:t}=V(),{settings:n}=H();return O(()=>{HT();let e=()=>{js.start($ap),Y.fetchAllMemos().finally(()=>js.end($ap))};d.Platform.isIosApp||d.Platform.isSafari?window.setTimeout(e,0):y(e,{timeout:100})},[]),O(()=>{!Mn()&&!e?.plugins?.getPlugin($0m)&&n?.EnabledLocationList?.find(e=>e.value===$00)&&new d.Notice(F(111)),!Mn()&&n?.EnabledLocationList?.find(e=>e.value===$00)&&!ka()&&new d.Notice(F(610))},[e,n]),Z(E,{children:jT(t)})}function WT(e,t){if(Object.is(e,t))return!0;if(typeof e!=$0j||!e||typeof t!=$0j||!t)return!1;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>Object.is(e,t[n]));let n=e,r=t,i=Object.keys(n);return i.length===Object.keys(r).length?i.every(e=>Object.prototype.hasOwnProperty.call(r,e)&&Object.is(n[e],r[e])):!1}function GT(e,t,n,r={}){let i=r.equals??WT,a=t(e.getState()),o=!1;r.fireImmediately!==!1&&(o=!0,n(a,void 0));let s=e.subscribe(e=>{let r=t(e);if(o&&i(a,r))return;let s=o?a:void 0;a=r,o=!0,n(r,s)}),c=!1;return()=>{c||(c=!0,s())}}N(),X();function KT({filteredThinos:e,showMemoFilter:t}){return Z(E,{children:[Z($0,{className:`thino-canvas-filter-group`,children:[Z(Ly,{}),Z(Ep,{}),t&&Z($0,{ref:xf(`eraser`),className:`clear-query`,onClick:()=>{K.clearQuery()}})]}),Z(wb,{initThinos:e})]})}function qT(e,t){if(!e)return!1;let{tag:n,duration:r,type:i,text:a}=e;return!!(n||r&&r.from<r.to||i||a||t)}U(),Rd(),X();function JT(e){return e.view}var YT=class extends ph{menuEl=null;bridge=null;filteredThinos=[];constructor(e,t,n){super(e),this.leaf=t,this.canvas=n}onMount(){let e=this.containerEl.createDiv({cls:`btn-container`});(0,d.setIcon)(e,$2e),e.onclick=()=>this.toggleMenu(),this.own(GT(z,e=>e.memosHash,()=>void this.recompute())),this.own(GT(V,e=>e.query,()=>void this.recompute()))}onUnmount(){this.canvas.thinoBtn=void 0,this.containerEl.detach()}toggleMenu(){if(this.menuEl){this.closeMenu();return}this.menuEl=this.containerEl.createDiv({cls:`thino-canvas-menu`}),this.bridge=new lg(this.menuEl,KT,{filteredThinos:this.filteredThinos,showMemoFilter:this.showMemoFilter()}),this.addChild(this.bridge),this.recompute()}closeMenu(){this.bridge&&=(this.removeChild(this.bridge),null),this.menuEl?.detach(),this.menuEl=null}showMemoFilter(){let e=V.getState().query;return qT(e,!!lf.getQueryById(e?.filter))}async recompute(){let e=JT(this.leaf).file?.path;if(!e)return;let t=z.getState().memos.filter(t=>t.sourceType===$0r&&t.path===e);if(t.length===0)return;let n=V.getState().query,r=this.showMemoFilter();if(!n||!r)this.filteredThinos=t;else{let e=await Id({memos:t,query:n,filterOptions:{filterDoneTasks:!1},plugin:W.getState().plugin});this.filteredThinos=Array.isArray(e)?e:t.filter(t=>new Set(e.ids).has(t.id))}this.bridge?.setProps({filteredThinos:this.filteredThinos,showMemoFilter:r}),this.applyNodeVisibility(r)}applyNodeVisibility(e){if(!e&&this.filteredThinos.length===0)return;let t=new Set(this.filteredThinos.map(e=>e.id)),n=Array.from(this.canvas.nodes.values());for(let e of n)this.setNodeVisible(e,!0);for(let e of n.filter(e=>!t.has(e.id)))this.setNodeVisible(e,!1)}setNodeVisible(e,t){e.nodeEl.toggleVisibility(t);for(let n of this.canvas.getEdgesForNode(e))n.lineGroupEl?.toggleClass($01,!t),n.lineStartGroupEl?.toggleClass($01,!t),n.lineEndGroupEl?.toggleClass($01,!t)}};function XT(e){let{canvas:t,file:n}=JT(e),r=W.getState().settings.EnabledLocationList.find(e=>e.value===$0r);if(!t||!n?.path.endsWith($aw)||t.thinoBtn||!r)return;let i=t.wrapperEl.createDiv({cls:`thino-canvas-menu-btn`}),a=W.getState().view,o=new YT(i,e,t);t.thinoBtn=o,a.addChild(o)}function ZT(e,t){let n=Object.keys(t).map(n=>QT(e,n,t[n]));return n.length===1?n[0]:function(){n.forEach(e=>e())}}function QT(e,t,n){let r=e[t],i=e.hasOwnProperty(t),a=n(r);return r&&Object.setPrototypeOf(a,r),Object.setPrototypeOf(o,a),e[t]=o,s;function o(...n){return a===r&&e[t]===o&&s(),a.apply(this,n)}function s(){e[t]===o&&(i?e[t]=r:delete e[t]),a!==r&&(a=r,Object.setPrototypeOf(o,r||Function))}}X(),rr(),N(),Jd(),Dn();var $T=$0n,eE=class{static[Symbol.hasInstance](e){return e instanceof d.TFile}path=`/fake-file-that-generated-for-thino.png`;basename=`fake-file-that-generated-for-thino`;extension=$jw;deleted=!1;name=`fake-file-that-generated-for-thino.png`;parent=null;stat;vault=null;constructor(){}setPath(e){}getNewPathAfterRename(e){}getShortName(){}cache(e){}updateCacheLimit(){}},tE=class e extends d.ItemView{scope=new d.Scope(this.app.scope);root;mobileHeaderRoot;plugin;memosComponent;pendingModifyHandlers=new Map;editor=null;navigation=!1;file=this.app.vault.getMarkdownFiles()[0]||new eE;constructor(e,t){super(e),this.plugin=t,this.registerScope()}getDisplayText(){return $0h}getIcon(){return $2e}getViewType(){return $T}getMode(){return $iq}canToggleBacklinks(){return!1}registerScope(){let{scope:e}=this;e.register([$gp],$28,()=>{}),e.register([],`i`,e=>{let t=e.target;t.tagName===$7o||t.tagName===$dv||t.hasClass($lv)||t.hasClass($fz)||(e.preventDefault(),this.plugin.app.workspace.trigger($1h))}),e.register([$gp],`f`,e=>{let t=e.target;t.tagName===$7o||t.tagName===$dv||t.hasClass($lv)||t.hasClass($fz)||(e.preventDefault(),this.plugin.app.workspace.trigger($6w))}),e.register([],`o`,e=>{let t=e.target;t.tagName===$7o||t.tagName===$dv||t.hasClass($lv)||t.hasClass($fz)||(e.preventDefault(),this.plugin.app.workspace.trigger($6w))}),e.register([],$7m,()=>{this.plugin.app.vault.config?.vimMode!==!0&&window.setTimeout(()=>{this.plugin.app.workspace.trigger($b1)},20)})}handleUpdateInstance=e=>{this.editor=e.editor};handleFileModify(e){let t=this.pendingModifyHandlers.get(e.path);t&&t();let n=window.setTimeout(()=>{(async()=>{this.pendingModifyHandlers.delete(e.path),await this.onFileModified(e)})()},2e3);this.pendingModifyHandlers.set(e.path,()=>window.clearTimeout(n))}async onFileDeleted(e){let t=this.pendingModifyHandlers.get(e.path);t&&(t(),this.pendingModifyHandlers.delete(e.path));let n=zn(e,$04),r=e.path.contains($3s)&&e.path.contains($lk),i=e.path.contains($3s)&&e.path.contains($gn),a=this.plugin.settings?.MemoOtherSaveLocation.MemoDefaultMultiFilePath||$0h,o=(e.parent?.path||e.path)?.contains(a?.trim());(n||r&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0r))&&(await Y.removeMemosInFile(e),Y.updateTagsState()),o&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0g)&&(await Y.removeMemosInFile(e,a),Y.updateTagsState()),i&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0i)&&(await Y.removeMemosInFile(e),Y.updateTagsState());let s=(0,d.getAllTags)(this.app.metadataCache.getFileCache(e))?.contains(this.plugin.settings.TagForMultiTypeFiles),c=(0,d.getAllTags)(this.app.metadataCache.getFileCache(e))?.contains(this.plugin.settings.TagForFileTypeFiles);!o&&s&&(await Y.removeMemosInFile(e,a),Y.updateTagsState()),!i&&c&&(await Y.removeMemosInFile(e),Y.updateTagsState())}async onFileModified(e){if(Y.isPathPending(e.path)){P(`[Thino:Perf] onFileModified SKIPPED (locked) ${e.path}`);return}if(!await this.app.vault.adapter.exists(e.path))return;let t=zn(e,$04),n=e.path.contains($3s)&&e.path.contains($lk),r=e.path.contains($3s)&&e.path.contains($gn),i=this.plugin.settings?.MemoOtherSaveLocation.MemoDefaultMultiFilePath||$0h,a=e.parent.path.contains(i?.trim()),o=Y.getState().preparingUpdateMemo&&Y.getState().preparingUpdateMemo.length>0;if(qd.getState().clearCache(),(t||n&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0r))&&!o){await Y.updateMemosInFile(e),Y.updateTagsState();return}a&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0g)&&(await Y.updateMemosInFile(e,i),Y.updateTagsState()),r&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0i)&&(await Y.updateMemosInFile(e),Y.updateTagsState());let s=(0,d.getAllTags)(this.app.metadataCache.getFileCache(e))?.contains(this.plugin.settings.TagForMultiTypeFiles),c=(0,d.getAllTags)(this.app.metadataCache.getFileCache(e))?.contains(this.plugin.settings.TagForFileTypeFiles);!a&&s&&(await Y.updateMemosInFile(e,i),Y.updateTagsState()),!r&&c&&(await Y.updateMemosInFile(e),Y.updateTagsState())}async onFileCreated(e){if(this.app.workspace.layoutReady&&this.root){let t=zn(e,$04),n=e.path.contains($3s)&&e.path.contains($lk),r=e.path.contains($3s)&&e.path.contains($gn),i=this.plugin.settings?.MemoOtherSaveLocation.MemoDefaultMultiFilePath||$0h,a=e.parent.path.contains(i?.trim()),o=Y.getState().preparingUpdateMemo&&Y.getState().preparingUpdateMemo.length>0;if(t&&!o){if(G.getState().changedByMemos||Y.isPathPending(e.path)){P(`[Thino:Perf] onFileCreated SKIPPED (locked) ${e.path}`),await W.updateDailyNotes(e,!1);return}P(`[Thino:Perf] onFileCreated PROCESSING ${e.path}`),await W.updateDailyNotes(e,!1),await Y.updateMemosInFile(e),Y.updateTagsState();return}if(n&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0r)){await Y.updateMemosInFile(e),Y.updateTagsState();return}a&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0g)&&(await Y.updateMemosInFile(e,i),Y.updateTagsState()),r&&this.plugin.settings.EnabledLocationList.find(e=>e.value===$0i)&&(await Y.updateMemosInFile(e),Y.updateTagsState());let s=(0,d.getAllTags)(this.app.metadataCache.getFileCache(e))?.contains(this.plugin.settings.TagForMultiTypeFiles),c=(0,d.getAllTags)(this.app.metadataCache.getFileCache(e))?.contains(this.plugin.settings.TagForFileTypeFiles);!a&&s&&(await Y.updateMemosInFile(e,i),Y.updateTagsState()),!r&&c&&(await Y.updateMemosInFile(e),Y.updateTagsState())}}async onFileRenamed(e,t){if(e instanceof d.TFile){let n=this.pendingModifyHandlers.get(t);n&&(n(),this.pendingModifyHandlers.delete(t)),await Y.removeThinosByPath(t),await this.onFileCreated(e)}}checkWidth(){let e=this.leaf;if(e&&e.height!==0){if(e.view.containerEl.toggleClass(`tiny-view`,e.width<600),e.view.containerEl.toggleClass(`waterfall-small-group`,e.width<1300),e.view.containerEl.toggleClass(`phone-view`,d.Platform.isMobile),G.setIsPhoneView(d.Platform.isMobile),e.width>1100){e.view.containerEl.classList.toggle($8r,!1),G.setIsMobileView(e.width<=1100);return}if(this.plugin.settings?.ShowLeftSideBar&&!d.Platform.isMobile)return;e.view.containerEl.classList.toggle($8r,!0),G.setIsMobileView(e.width<=1100)}}onResize(){super.onResize(),this.checkWidth()}appendToHeader(){if(this.plugin.settings.useMobileViewDefaultHeader){this.containerEl.toggleClass(`using-default-header`,!0);return}let e=this.leaf.view.titleContainerEl;e&&(e.empty(),this.mobileHeaderRoot=cg.createRoot(e),this.mobileHeaderRoot.render(Z(M.StrictMode,{children:Z(Uy,{})})))}updateCacheDebounced=(0,d.debounce)(async e=>{this.app.vault.getFileByPath(e.path)&&await Y.updateMemosInFile(e)},1e3);registerPatchWorkspaceLeaf(){let t=this;this.register(ZT(d.Workspace.prototype,{getActiveViewOfType:t=>function(n){let r=t.call(this,n);if(!r&&n?.VIEW_TYPE===$54){let t=this.activeLeaf;if(t?.view instanceof e&&t.view.editor)return t.view}return r},setActiveLeaf:n=>function(r,i){if(hv(r)&&(n.call(this,r,i),r.activeTime=17e11),n.call(this,r,i),r.view instanceof e){let e=G.getState().instances?.[r.id];if(!e)return;t.app.workspace.activeEditor=e.owner,r.view.editor=e.editor}},getActiveFile:n=>function(){let r=n.call(this);return this.activeLeaf?.view instanceof e&&t.file||r}}))}debounceTemplateExecution=(0,d.debounce)(()=>{P(`debounceTemplateExecution`),this.app.workspace.trigger($5d)},1e3);registerEventList(){this.onResize(),this.onFileCreated=this.onFileCreated.bind(this),this.onFileDeleted=this.onFileDeleted.bind(this),this.onFileModified=this.onFileModified.bind(this),this.registerEvent(this.app.vault.on($nt,this.onFileCreated.bind(this))),this.registerEvent(this.app.vault.on($5v,this.onFileDeleted.bind(this))),this.registerEvent(this.app.vault.on(`modify`,e=>{e instanceof d.TFile&&this.handleFileModify(e)})),this.registerEvent(this.app.vault.on(`rename`,this.onFileRenamed.bind(this))),this.registerEvent(this.app.workspace.on(`active-leaf-change`,e=>{e?.view?.getViewType()===$4o&&XT(e)})),this.registerEvent(this.app.metadataCache.on(`changed`,e=>{if(Y.getState().preparingUpdateMemo&&Y.getState().preparingUpdateMemo.length>0){this.debounceTemplateExecution(),P(`templater update`);return}if(!Y.initialized)return;let t=zn(e,$04);if(t&&Y.isPathPending(e.path)){P(`[Thino:Perf] metadataCache SKIPPED (locked) ${e.path}`);return}t&&this.updateCacheDebounced(e)})),this.registerEvent(this.app.workspace.on($5d,()=>{Y.finishWaitingForTemplaterThinos().catch(Tn)}))}async onOpen(){this.checkWidth(),this.navigation=this.plugin.settings.navigation,d.Platform.isTablet&&document.body.toggleClass(`is-tablet`,!0);try{let e=d.Platform.isDesktop?this.containerEl:this.contentEl;e.empty(),this.root=cg.createRoot(e),W.setView(this),this.root.render(Z(M.StrictMode,{children:Z(UT,{app:this.plugin.app})}))}catch(e){console.error(e)}window.requestAnimationFrame(()=>{d.Platform.isMobile&&!d.Platform.isTablet&&this.appendToHeader(),this.registerEventList(),this.registerPatchWorkspaceLeaf()})}onunload(){super.onunload(),this.root.unmount(),this.mobileHeaderRoot?.unmount()}},nE=40;function rE(e){let t=e.find(e=>e.role===$3n);return t?t.content.length>nE?`${t.content.slice(0,nE)}...`:t.content:`Inline Chat`}function iE(e,t){let n=e.map(e=>({id:e.id,title:e.title,updatedAt:e.updatedAt,source:$23}));for(let e of t)e.messages.length!==0&&n.push({id:e.id,title:rE(e.messages),updatedAt:e.updatedAt,source:$1g});return n.sort((e,t)=>t.updatedAt-e.updatedAt)}Zd();var aE=class extends ph{itemsEl;emptyEl;items=[];activeId=null;onMount(){this.containerEl.addClass(`super-conversation-list`),this.emptyEl=this.containerEl.createDiv({cls:`super-conversation-empty`,text:`No conversations yet`}),this.itemsEl=this.containerEl.createDiv({cls:`super-conversation-items`}),this.own(GT(J,e=>({conversations:e.conversations,activeId:e.activeConversationId}),e=>{this.activeId=e.activeId,this.rebuild()})),this.own(GT(Ov,e=>e.conversations,()=>this.rebuild()))}rebuild(){this.items=iE(J.getState().conversations,Ov.getState().conversations),this.emptyEl.toggle(this.items.length===0),this.itemsEl.toggle(this.items.length>0),xy(this.itemsEl,this.items,e=>`${e.source}:${e.id}`,e=>this.createItem(e),{update:(e,t)=>this.updateItem(e,t)})}createItem(e){let t=createDiv({cls:`super-conversation-item`}),n=t.createSpan({cls:`super-conversation-title`});n.createSpan({cls:`super-conversation-badge`,text:`Inline`}),n.createSpan({cls:`super-conversation-text`}),t.createSpan({cls:`super-conversation-date`});let r=t.createEl($7,{cls:`super-conversation-delete clickable-icon`,attr:{"aria-label":$cm}});return(0,d.setIcon)(r,`x`),t.addEventListener($05,()=>{let e=this.find(t);e&&this.select(e)}),r.addEventListener($05,e=>{e.stopPropagation();let n=this.find(t);n&&this.remove(n)}),this.updateItem(t,e),t}updateItem(e,t){e.dataset.conversationKey=`${t.source}:${t.id}`,e.toggleClass($0v,t.source===$23&&t.id===this.activeId),e.querySelector(`.super-conversation-badge`)?.toggle(t.source===$1g),e.querySelector(`.super-conversation-text`)?.setText(t.title),e.querySelector(`.super-conversation-date`)?.setText(new Date(t.updatedAt).toLocaleDateString())}find(e){let t=e.dataset.conversationKey;return this.items.find(e=>`${e.source}:${e.id}`===t)}select(e){if(e.source===$23){J.getState().setActiveConversation(e.id);return}let t=Ov.getState().conversations.find(t=>t.id===e.id);if(!t)return;let n=t.messages.map(e=>({id:e.id,role:e.role,content:e.content,timestamp:e.timestamp,isStreaming:!1,toolCalls:e.toolCalls}));J.getState().loadExternalMessages(n)}remove(e){e.source===$23?J.getState().deleteConversation(e.id):Ov.getState().removeConversation(e.id)}};I();function oE(e,t,n){let r=e.createDiv({cls:`super-panel super-enable-prompt`});return(0,d.setIcon)(r.createDiv({cls:`super-enable-icon`}),$58),r.createEl($6x,{cls:`super-enable-title`,text:t}),r.createEl(`p`,{cls:`super-enable-desc`,text:n}),r}function sE(e,t){oE(e,t,F(302))}Zd();function cE(e){if(e)try{return JSON.parse(e)}catch{return}}async function lE({prompt:e,history:t,assistantId:n}){let r=J.getState();try{let i=``,a=``,o,s=[],c=[];for await(let l of dp.chat(e,t)){let e=l.toolEvent;if(e?.type===$gk)s.length===0&&(o=i.length),s.push({id:e.toolCallId,name:e.name,arguments:e.arguments||``,parsedArgs:cE(e.arguments),status:$68}),r.updateMessage(n,{toolCalls:[...s],toolCallOffset:o});else if(e?.type===$8w){let t=s.findIndex(t=>t.id===e.toolCallId);t!==-1&&(s[t]={...s[t],result:e.result,status:$82},r.updateMessage(n,{toolCalls:[...s]}))}l.reasoning&&(a+=l.reasoning,r.updateMessage(n,{reasoning:a})),l.content&&(i+=l.content,r.updateMessage(n,{content:i})),l.subagentImages&&l.subagentImages.length>0&&(c.push(...l.subagentImages),r.updateMessage(n,{generatedImages:[...c]}))}let{content:l,generatedImages:u}=await uE(n,i,c);r.updateMessage(n,{content:l,isStreaming:!1,toolCalls:[...s],reasoning:a||void 0,toolCallOffset:o,generatedImages:u}),fE()}catch(e){r.updateMessage(n,{content:`Error: ${e instanceof Error&&e.message||$9n}`,isStreaming:!1})}finally{J.getState().setIsProcessing(!1)}}async function uE(e,t,n){let r=n.length>0?[...n]:void 0,{images:i,cleanContent:a}=TS(t);if(i.length===0)return{content:t,generatedImages:r};let o=[];for(let t of i)try{let n=await xS.put({messageId:e,mimeType:t.mimeType,base64:t.base64});o.push({cacheId:n,mimeType:t.mimeType,alt:t.alt})}catch(e){console.warn(`[SuperChat] Failed to cache generated image:`,e)}return o.length===0?{content:t,generatedImages:r}:{content:a,generatedImages:[...r??[],...o]}}var dE=50;function fE(){let e=J.getState();if(!e.activeConversationId)return;let t=e.conversations.find(t=>t.id===e.activeConversationId);if(!t||t.title!==`New Chat`||t.messages.length<2)return;let n=t.messages.find(e=>e.role===$3n);if(!n)return;let r=n.content.slice(0,dE)+(n.content.length>dE?$6f:``);e.renameConversation(t.id,r)}_f(),Zd();var pE={openai:$nf,anthropic:$bn,pkmer:$94},mE={openai:`gpt-5.2`,anthropic:$7g,pkmer:$3t},hE=class extends ph{labelEl;dropdownEl;open=!1;onMount(){this.containerEl.addClass(`super-model-pill-wrap`);let e=this.containerEl.createEl($7,{cls:`clickable-icon super-pill-btn`});this.labelEl=e.createSpan({cls:`super-pill-label`}),(0,d.setIcon)(e.createSpan({cls:`super-pill-chevron`}),$4z),this.registerDomEvent(e,$05,()=>this.setOpen(!this.open)),this.dropdownEl=this.containerEl.createDiv({cls:`super-model-dropdown`}),this.dropdownEl.hide(),this.own(nh(document,$4b,e=>{!this.open||this.containerEl.contains(e.target)||this.setOpen(!1)})),this.own(GT(J,e=>({provider:e.activeCompletionProvider,providers:e.providers}),()=>this.render()))}setOpen(e){this.open=e,this.dropdownEl.toggle(e),e&&this.renderOptions()}render(){let{activeCompletionProvider:e,providers:t}=J.getState();this.labelEl.setText(e===$0t?$94:t[e]?.completionModel||mE[e]||e),this.open&&this.renderOptions()}renderOptions(){let{activeCompletionProvider:e,providers:t}=J.getState(),n=[$20,$48];gf()&&t.pkmer?.apiKey&&n.push($0t),this.dropdownEl.empty();for(let r of n){let n=t[r]?.completionModel||mE[r]||``,i=this.dropdownEl.createEl($7,{cls:`clickable-icon super-model-option`});i.toggleClass($3e,r===e),i.createSpan({cls:`super-model-option-name`,text:pE[r]||r}),r!==$0t&&i.createSpan({cls:`super-model-option-model`,text:n}),i.addEventListener($05,()=>{let e=J.getState();r!==e.activeCompletionProvider&&e.setActiveCompletionProvider(r),e.updateProvider(r,{completionModel:n}),this.setOpen(!1)})}}};Zd();var gE=2e3,_E=`Ask questions about your thinos. The AI will search for relevant thinos and provide answers based on your notes.`,vE=class extends ph{bodyEl;attachmentsEl;assistantView=null;constructor(e,t,n,r){super(e),this.app=t,this.role=n,this.hoverParentEl=r}onMount(){if(this.containerEl.addClass(`super-chat-message`,`super-chat-${this.role}`),this.containerEl.createDiv({cls:`super-chat-message-role`,text:this.role===$3n?`You`:$9f}),this.role===$1u){this.assistantView=this.mount(new WS(this.containerEl.createDiv(),this.app,this.hoverParentEl));return}this.attachmentsEl=this.containerEl.createDiv({cls:`super-chat-attachments`}),this.bodyEl=this.containerEl.createDiv({cls:$3l})}update(e){if(this.assistantView){this.assistantView.update(e);return}this.bodyEl.setText(e.content),bE(this.attachmentsEl,e.attachments??[])}};function yE(e,t){let n=e.createSpan({cls:`super-attachment-chip super-attachment-${t.kind}`});return n.createSpan({cls:$as,text:t.kind===$0c?`@`:`#`}),n.createSpan({cls:$ab,text:t.label}),n}function bE(e,t){e.empty(),e.toggle(t.length>0);for(let n of t)yE(e,n)}var xE=class extends ph{messagesEl;emptyEl;endEl;inputAttachmentsEl;textareaEl;sendEl;quotaEl;views=new Map;attachments=[];suggest=null;showHistory=!1;messageCount=0;constructor(e,t,n){super(e),this.app=t,this.hoverParentEl=n}onMount(){this.containerEl.addClass(`super-chat`),this.messagesEl=this.containerEl.createDiv({cls:`super-chat-messages`}),this.emptyEl=this.messagesEl.createDiv({cls:`super-chat-empty`,text:_E}),this.endEl=this.messagesEl.createDiv(),this.buildInputCard(),this.own(GT(J,e=>e.messages,e=>this.syncMessages(e))),this.own(GT(J,e=>e.isProcessing,()=>this.syncSendState())),this.own(GT(J,e=>({provider:e.activeCompletionProvider,quota:e.providers.pkmer?.quotaInfo}),e=>{let t=e.provider===$0t&&!!e.quota;this.quotaEl.toggle(t),t&&e.quota&&this.quotaEl.setText(`${e.quota.remaining}/${e.quota.total}`)}))}onUnmount(){this.suggest?.destroy(),this.suggest=null}setShowHistory(e){this.showHistory=e,this.syncEmptyHint()}syncMessages(e){Cy(this.views,e,e=>e.id,{create:e=>{let t=this.messagesEl.createDiv();return this.messagesEl.insertBefore(t,this.endEl),this.mount(new vE(t,this.app,e.role,this.hoverParentEl))},update:(e,t)=>e.update(t),destroy:e=>this.unmount(e)}),e.length!==this.messageCount&&(this.messageCount=e.length,this.endEl.scrollIntoView({behavior:$5z})),this.syncEmptyHint()}syncEmptyHint(){this.emptyEl.toggle(this.messageCount===0&&!this.showHistory)}buildInputCard(){let e=this.containerEl.createDiv({cls:`super-input-card`});this.inputAttachmentsEl=e.createDiv({cls:$9c}),this.inputAttachmentsEl.hide(),this.textareaEl=e.createEl($0o,{cls:`super-card-textarea`,attr:{rows:`3`,placeholder:`Ask about your thinos, @ for context, # for files`}}),this.registerDomEvent(this.textareaEl,$09,()=>this.syncSendState()),this.registerDomEvent(this.textareaEl,$1s,e=>{this.suggest?.isOpen||e.key!==$28||e.shiftKey||(e.preventDefault(),this.submit())}),this.suggest=new JS(this.app,this.textareaEl,(e,t,n)=>{this.textareaEl.value=t,this.attachments.some(t=>t.id===e.id)||(this.attachments=[...this.attachments,e]),this.renderInputAttachments(),window.requestAnimationFrame(()=>{this.textareaEl.focus(),this.textareaEl.setSelectionRange(n,n)})});let t=e.createDiv({cls:`super-input-toolbar`}),n=t.createDiv({cls:`super-toolbar-left`});this.mount(new hE(n.createDiv())),this.quotaEl=n.createSpan({cls:`super-toolbar-quota`}),this.quotaEl.hide();let r=t.createDiv({cls:`super-toolbar-right`});this.triggerButton(r,`@`,$h8),this.triggerButton(r,`#`,$ia),this.sendEl=r.createEl($7,{cls:`clickable-icon super-toolbar-send`,attr:{"aria-label":`Send`}}),(0,d.setIcon)(this.sendEl,`send`),this.registerDomEvent(this.sendEl,$05,()=>void this.submit()),this.syncSendState()}triggerButton(e,t,n){let r=e.createEl($7,{cls:$2g,text:t,attr:{"aria-label":n,title:`${t} ${n}`}});this.registerDomEvent(r,$05,()=>this.insertTrigger(t))}insertTrigger(e){let t=this.textareaEl,n=t.value,r=t.selectionStart??n.length,i=(r>0&&!/\s/.test(n[r-1])?` `:``)+e;t.value=n.slice(0,r)+i+n.slice(r);let a=r+i.length;window.requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(a,a),t.dispatchEvent(new Event($09,{bubbles:!0}))})}renderInputAttachments(){this.inputAttachmentsEl.empty(),this.inputAttachmentsEl.toggle(this.attachments.length>0);for(let e of this.attachments)yE(this.inputAttachmentsEl,e).createEl($7,{cls:$3y,text:`×`,attr:{"aria-label":`Remove`}}).addEventListener($05,()=>{this.attachments=this.attachments.filter(t=>t.id!==e.id),this.renderInputAttachments()});this.syncSendState()}syncSendState(){let e=J.getState().isProcessing,t=!!(this.textareaEl.value.trim()||this.attachments.length>0)&&!e;this.sendEl.toggleClass($3e,t),this.sendEl.disabled=!t,this.textareaEl.disabled=e}async submit(){let e=this.textareaEl.value.trim(),t=this.attachments;if(!e&&t.length===0||J.getState().isProcessing)return;let n=J.getState();n.activeConversationId||n.createConversation();let r=await this.buildContextBlock(t),i=r?`${r}\n\n---\n\n${e}`:e,a=J.getState().messages;n.addMessage({id:`msg-${Date.now()}`,role:$3n,content:e,timestamp:Date.now(),attachments:t.length>0?t.map(e=>({...e})):void 0}),this.textareaEl.value=``,this.attachments=[],this.renderInputAttachments(),n.setIsProcessing(!0);let o=`msg-${Date.now()}-a`;n.addMessage({id:o,role:$1u,content:``,timestamp:Date.now(),isStreaming:!0}),await lE({prompt:i,history:a,assistantId:o})}async buildContextBlock(e){if(e.length===0)return``;let t=[];for(let n of e){if(n.kind===$0c){t.push(`[Referenced Thino] ${n.content}`);continue}let e=this.app.vault.getAbstractFileByPath(n.content);if(e instanceof d.TFile)try{let r=await this.app.vault.cachedRead(e),i=r.slice(0,gE);t.push(`[Referenced File: ${n.label}]\n${i}${r.length>gE?$gv:``}`)}catch{t.push(`[Referenced File: ${n.label}] (could not read)`)}}return t.join($bh)}};Zd();var SE=class extends ph{onMount(){let e=oE(this.containerEl,$8m,`AI-powered semantic search and chat for your thinos. Find memos by meaning, not just keywords.`),t=e.createEl(`ul`,{cls:`super-enable-features`});t.createEl(`li`,{text:`Semantic search across all your thinos`}),t.createEl(`li`,{text:`AI chat with context from your notes`}),d.Platform.isDesktop&&t.createEl(`li`,{text:`Local AI model with WebGPU acceleration`}),t.createEl(`li`,{text:`API support for OpenAI and Anthropic`});let n=e.createEl($7,{cls:`super-enable-btn mod-cta`,text:`Enable Super`});this.registerDomEvent(n,$05,()=>J.getState().setEnabled(!0))}};Zd();var CE=200,wE=class extends ph{emptyEl;resultsEl;countEl;listEl;onMount(){this.containerEl.addClass(`super-results-host`),this.emptyEl=this.containerEl.createDiv({cls:`super-results super-results-empty`}),this.emptyEl.createSpan({text:`No matching thinos found.`}),this.resultsEl=this.containerEl.createDiv({cls:`super-results`}),this.countEl=this.resultsEl.createDiv({cls:`super-results-header`}).createSpan({cls:`super-results-count`}),this.listEl=this.resultsEl.createDiv({cls:`super-results-list`}),this.own(GT(J,e=>({results:e.searchResults,query:e.searchQuery,isSearching:e.isSearching}),e=>this.render(e.results,e.query,e.isSearching)))}render(e,t,n){let r=!t.trim()||n;this.emptyEl.toggle(!r&&e.length===0),this.resultsEl.toggle(!r&&e.length>0),!(r||e.length===0)&&(this.countEl.setText(`${e.length} results`),xy(this.listEl,e,e=>e.entry.id,e=>TE(e),{update:(e,t)=>EE(e,t)}))}};function TE(e){let t=createDiv({cls:`super-result-item`});t.createDiv({cls:`super-result-score`});let n=t.createDiv({cls:`super-result-content`});return n.createDiv({cls:`super-result-date`}),n.createDiv({cls:`super-result-text`}),EE(t,e),t}function EE(e,t){e.querySelector(`.super-result-score`)?.setText(t.score<0?$0l:`${(t.score*100).toFixed(0)}%`);let n=e.querySelector(`.super-result-date`);n?.setText(t.memo?.createdAt??``),n?.toggle(!!t.memo);let r=t.memo?.content??t.entry.content;e.querySelector(`.super-result-text`)?.setText(t.memo&&r.length>CE?`${r.slice(0,CE)}...`:r)}Gp(),U(),Zd();var DE=class extends ph{mode=null;body=null;verified=!1;enabled=!1;constructor(e,t,n){super(e),this.plugin=t,this.hoverParentEl=n}onMount(){this.own(GT(J,e=>e.enabled,e=>{this.enabled=e,this.syncMode()})),this.own(GT(H,e=>e.verifyState,()=>void this.refreshVerified()))}async refreshVerified(){let e=await Up().catch(()=>!1);e!==this.verified&&(this.verified=e,this.syncMode())}syncMode(){let e=this.verified?this.enabled?$2z:`disabled`:`locked`;if(e!==this.mode){if(this.mode=e,this.body&&this.unmount(this.body),this.body=null,this.containerEl.empty(),e===`locked`){sE(this.containerEl,$8m);return}if(e===`disabled`){this.body=this.mount(new SE(this.containerEl));return}this.body=this.mount(new OE(this.containerEl,this.plugin,this.hoverParentEl))}}},OE=class extends ph{rootEl;historyEl;loadingEl;loadingStatusEl;chatView;showHistory=!1;constructor(e,t,n){super(e),this.plugin=t,this.hoverParentEl=n}onMount(){this.rootEl=this.containerEl.createDiv({cls:`super-panel`});let e=this.rootEl.createDiv({cls:`super-header`});e.createEl(`h4`,{cls:`super-title`,text:$9f});let t=e.createDiv({cls:`super-header-actions`});this.headerButton(t,`super-chat-history-btn`,`history`,`Chat history`,()=>this.setShowHistory(!this.showHistory)),this.headerButton(t,`super-chat-new`,`plus`,`New chat`,()=>{J.getState().createConversation(),this.setShowHistory(!1)}),this.headerButton(t,`super-settings-btn`,$42,`Super settings`,()=>this.plugin.settingTab.openSettingsModal($23)),this.historyEl=this.rootEl.createDiv(),this.mount(new aE(this.historyEl)),this.historyEl.hide(),this.buildModelLoading(),this.mount(new wE(this.rootEl.createDiv())),this.rootEl.createDiv({cls:`super-divider`}),this.chatView=this.mount(new xE(this.rootEl.createDiv(),this.plugin.app,this.hoverParentEl))}setShowHistory(e){this.showHistory=e,this.historyEl.toggle(e),this.chatView.setShowHistory(e)}buildModelLoading(){this.loadingEl=this.rootEl.createDiv({cls:`super-model-loading`});let e=this.loadingEl.createDiv({cls:`super-model-loading-header`});e.createDiv({cls:`super-loading-spinner`}),this.loadingStatusEl=e.createSpan(),this.loadingStatusEl.setText($fp),this.own(GT(J,e=>({ready:e.embeddingReady}),e=>{this.loadingEl.toggle(!e.ready)}))}headerButton(e,t,n,r,i){let a=e.createEl($7,{cls:`${t} clickable-icon`,attr:{"aria-label":r}});(0,d.setIcon)(a,n),this.registerDomEvent(a,$05,i)}},kE=$gh,AE=class extends d.ItemView{plugin;panel=null;constructor(e,t){super(e),this.plugin=t}getDisplayText(){return $8m}getIcon(){return $58}getViewType(){return kE}async onOpen(){let e=this.containerEl.children[1];e.empty(),e.addClass($gh),this.panel=new DE(e,this.plugin,this.containerEl),this.addChild(this.panel)}async onClose(){this.panel&&=(this.removeChild(this.panel),null)}},jE=class e{app;filePath;leaf=null;canvas=null;file=null;container=null;isReadonly;destroyed=!1;listeners=new Map;originalUnload=null;resizeObserver=null;constructor(e){this.app=e.app,this.filePath=e.filePath,this.container=e.container??null,this.isReadonly=e.readonly??!1}async open(){if(this.destroyed)throw Error(`ManagedCanvas has been destroyed`);await this.ensureFile(),await this.openLeaf(),await this.waitForCanvas(),this.container&&this.embedInContainer(),this.isReadonly&&this.canvas&&this.canvas.setReadonly?.(!0),this.emit(`canvas-ready`)}destroy(){if(!this.destroyed){if(this.destroyed=!0,this.resizeObserver&&=(this.resizeObserver.disconnect(),null),this.originalUnload){try{this.originalUnload()}catch{}this.originalUnload=null}this.leaf&&=(this.leaf.detach(),null),this.canvas=null,this.file=null,this.emit(`canvas-destroyed`),this.listeners.clear()}}get isReady(){return!this.destroyed&&this.canvas!==null}getData(){return this.canvas?.getData()??null}setData(e){this.requireCanvas().setData(e),this.emit(`data-changed`,e)}save(e=!0){this.requireCanvas().requestSave(e)}createTextNode(e){let t=this.requireCanvas().createTextNode({pos:e.pos,size:e.size,position:e.position,text:e.text??``,save:e.save??!0,focus:e.focus??!1}).id;return this.emit($oa,t),t}getNodeIds(){let e=this.canvas;return e?Array.from(e.nodes.keys()):[]}getEdgeIds(){let e=this.canvas;return e?Array.from(e.edges.keys()):[]}zoomToFit(){this.requireCanvas().zoomToFit?.()}screenToCanvas(e,t){let n=this.canvas;if(!n)return null;let r=n.wrapperEl;if(!r)return null;let i=r.getBoundingClientRect(),a=n.scale??1,o=n.x??0,s=n.y??0;return{x:(e-i.left-i.width/2)/a+o,y:(t-i.top-i.height/2)/a+s}}async saveJson(e){let t=this.getData();t&&await this.app.vault.adapter.write(e,JSON.stringify(t,null,2))}static async loadJson(e,t){try{let n=await e.read(t);return JSON.parse(n)}catch{return null}}on(e,t){this.listeners.has(e)||this.listeners.set(e,new Set);let n=t;return this.listeners.get(e)?.add(n),()=>this.listeners.get(e)?.delete(n)}emit(e,...t){this.listeners.get(e)?.forEach(n=>{try{n(...t)}catch(t){console.error(`[ManagedCanvas] Error in "${e}" listener:`,t)}})}async ensureFile(){let e=this.app.vault.getAbstractFileByPath(this.filePath);if(e instanceof d.TFile){this.file=e;return}let t=this.filePath.substring(0,this.filePath.lastIndexOf(`/`));t&&(this.app.vault.getAbstractFileByPath(t)||await this.app.vault.createFolder(t)),this.file=await this.app.vault.create(this.filePath,JSON.stringify({nodes:[],edges:[]},null,2))}async openLeaf(){if(!this.file)throw Error(`Canvas file not initialised`);this.leaf=this.app.workspace.getLeaf(`split`),await this.leaf.openFile(this.file)}waitForCanvas(){return new Promise((e,t)=>{let n=0,r=()=>{n++;let i=this.leaf?.view;if(i?.canvas){this.canvas=i.canvas,e();return}if(n>=50){t(Error(`Timed out waiting for canvas instance`));return}window.requestAnimationFrame(r)};window.requestAnimationFrame(r)})}embedInContainer(){let e=this.canvas;if(!this.container||!e)return;let t=e.wrapperEl;if(!t)return;this.container.appendChild(t),this.originalUnload=e.unload.bind(e),e.unload=()=>{},e.requestSave=t=>{t===void 0&&(t=!0),e.data=e.getData(),t&&e.requestPushHistory?.(e.data),this.emit($in)};let n=e.view,r=n?.file;n&&(n.requestSave=()=>{},n.clear=()=>{},r&&Object.defineProperty(n,$44,{get:()=>r,set:()=>{},configurable:!0})),this.leaf&&=(this.leaf.detach(),null);let i=this.canvas;this.resizeObserver=new ResizeObserver(()=>{i.onResize?.()}),this.resizeObserver.observe(this.container),window.requestAnimationFrame(()=>{i.onResize?.(),i.requestFrame?.()})}requireCanvas(){if(!this.canvas||this.destroyed)throw Error(`ManagedCanvas is not ready or has been destroyed`);return this.canvas}static async create(t){let n=new e(t);return await n.open(),n}},ME=`text/thino-id`,NE=`text/thino-content`;function PE(e,t){e.setData(ME,t.id),e.setData(NE,t.content)}function FE(e){return e?Array.prototype.indexOf.call(e.types,ME)!==-1:!1}function IE(e){if(!e)return null;let t=e.getData(ME),n=e.getData(NE);return!t||!n?null:{id:t,content:n}}function LE({count:e,scrollTop:t,viewportHeight:n,itemHeight:r,overscan:i}){if(e<=0||r<=0)return{startIndex:0,endIndex:0,offsetTop:0,totalHeight:0};let a=Math.max(0,t),o=Math.max(0,Math.floor(a/r)-i),s=Math.min(e,Math.ceil((a+Math.max(0,n))/r)+i);return{startIndex:o,endIndex:Math.max(o,s),offsetTop:o*r,totalHeight:e*r}}U();var RE=100,zE=8,BE=250,VE=140;function HE(e){if(!e)return``;let t=new Date(e.replace(/\//g,`-`));return isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}var UE=class extends ph{memos=[];filtered=[];query=``;existingNodeIds=new Set;countEl;scrollEl;spacerEl;windowEl;emptyEl;scrollTop=0;viewportHeight=600;resizeObserver=null;onMount(){this.containerEl.addClass(`thino-list-panel`);let e=this.containerEl.createDiv({cls:`thino-list-search`}).createEl($09,{type:$0l,attr:{placeholder:`Search thinos...`,spellcheck:$pn}}),t=(0,d.debounce)(e=>{this.query=e,this.refilter()},BE);this.own(nh(e,$09,()=>t(e.value))),this.countEl=this.containerEl.createDiv({cls:`thino-list-count`}),this.scrollEl=this.containerEl.createDiv({cls:`thino-list-items`}),this.spacerEl=this.scrollEl.createDiv({cls:`thino-list-virtual`}),this.windowEl=this.spacerEl.createDiv({cls:`thino-list-virtual-window`}),this.emptyEl=this.scrollEl.createDiv({cls:`thino-list-empty`,text:`No thinos found`}),this.own(nh(this.scrollEl,$5y,()=>{this.scrollTop=this.scrollEl.scrollTop,this.renderWindow()})),typeof ResizeObserver<`u`&&(this.resizeObserver=new ResizeObserver(e=>{let t=e[0]?.contentRect.height;t===void 0||t===this.viewportHeight||(this.viewportHeight=t,this.renderWindow())}),this.resizeObserver.observe(this.scrollEl),this.own(()=>this.resizeObserver?.disconnect())),this.own(GT(z,e=>e.memos,e=>{this.memos=e,this.refilter()}))}onUnmount(){this.resizeObserver?.disconnect(),this.resizeObserver=null}setExistingNodeIds(e){this.existingNodeIds=e,this.renderWindow()}refilter(){let e=this.query.trim().toLowerCase(),t=this.memos.filter(e=>e.rowStatus!==$07&&!e.deletedAt);e&&(t=t.filter(t=>t.content.toLowerCase().includes(e))),this.filtered=t,this.countEl.setText(`${t.length} thino${t.length===1?``:`s`}`),this.renderWindow()}renderWindow(){let e=this.filtered.length===0;if(this.emptyEl.toggle(e),this.spacerEl.toggle(!e),e){xy(this.windowEl,[],e=>e.id,()=>createDiv());return}let{startIndex:t,endIndex:n,offsetTop:r,totalHeight:i}=LE({count:this.filtered.length,scrollTop:this.scrollTop,viewportHeight:this.viewportHeight,itemHeight:RE,overscan:zE});this.spacerEl.style.height=`${i}px`,this.windowEl.style.top=`${r}px`;let a=this.filtered.slice(t,n);xy(this.windowEl,a,e=>e.id,e=>this.createItem(e),{update:(e,t)=>this.updateItem(e,t)})}createItem(e){let t=createDiv({cls:$hp,attr:{draggable:$0q}});t.createDiv({cls:`thino-list-item-content`});let n=t.createDiv({cls:`thino-list-item-meta`});return n.createSpan({cls:`thino-list-item-date`}),n.createSpan({cls:`thino-list-item-source`}),n.createSpan({cls:`thino-list-item-badge`,text:`on canvas`}),t.addEventListener(`dragstart`,e=>{let n=this.filtered.find(e=>e.id===t.dataset.thinoId);!e.dataTransfer||!n||(PE(e.dataTransfer,{id:n.id,content:n.content}),e.dataTransfer.effectAllowed=$27,e.dataTransfer.setDragImage(t,10,10))}),this.updateItem(t,e),t}updateItem(e,t){e.dataset.thinoId=t.id;let n=this.existingNodeIds.has(t.id);e.toggleClass(`is-on-canvas`,n);let r=t.content.length>VE?`${t.content.slice(0,VE)}…`:t.content;e.querySelector(`.thino-list-item-content`)?.setText(r),e.querySelector(`.thino-list-item-date`)?.setText(HE(t.createdAt));let i=e.querySelector(`.thino-list-item-source`);i?.setText(t.sourceType??``),i?.toggle(!!t.sourceType),e.querySelector(`.thino-list-item-badge`)?.toggle(n)}},WE={width:300,height:120},GE=class extends ph{managedCanvas=null;cancelled=!1;statusEl;canvasEl;canvasHostEl;bodyEl;panelToggleEl;dropOverlayEl=null;listPanel=null;listPanelEl=null;panelCollapsed=!1;ready=!1;constructor(e,t){super(e),this.options=t}onMount(){let e=this.containerEl.createDiv({cls:`thino-organizer-root`}),t=e.createDiv({cls:`thino-organizer-toolbar`}),n=t.createDiv({cls:`thino-organizer-toolbar-left`});this.toolbarButton(n,`plus`,`Add text node`,()=>this.addTextNode()),this.toolbarButton(n,`maximize`,`Zoom to fit`,()=>this.managedCanvas?.zoomToFit()),this.toolbarButton(n,`save`,`Save`,()=>this.managedCanvas?.save());let r=t.createDiv({cls:`thino-organizer-toolbar-right`});this.statusEl=r.createSpan({cls:`thino-organizer-status`,text:`Loading…`}),this.panelToggleEl=this.toolbarButton(r,$f7,$h2,()=>this.setPanelCollapsed(!this.panelCollapsed)),this.bodyEl=e.createDiv({cls:`thino-organizer-body`}),this.canvasEl=this.bodyEl.createDiv({cls:`thino-organizer-canvas`}),this.canvasHostEl=this.canvasEl.createDiv({cls:`thino-organizer-canvas-host`}),this.registerDomEvent(this.canvasEl,`dragenter`,e=>{FE(e.dataTransfer)&&this.setDragOver(!0)}),this.registerDomEvent(this.canvasEl,`dragover`,e=>{FE(e.dataTransfer)&&e.preventDefault()}),this.registerDomEvent(this.canvasEl,`dragleave`,e=>{let t=e.relatedTarget;this.canvasEl.contains(t)||this.setDragOver(!1)}),this.openListPanel(),this.createCanvas()}onUnmount(){this.cancelled=!0,this.managedCanvas=null}async createCanvas(){try{let e=await jE.create({app:this.options.app,filePath:this.options.canvasFilePath,container:this.canvasHostEl});if(this.cancelled){e.destroy();return}this.managedCanvas=e,this.ready=!0,this.refreshCounts(),this.own(e.on($oa,()=>this.refreshCounts())),this.options.onCanvasReady?.(e)}catch(e){console.error(`[ThinoCanvasOrganizer] Canvas init failed:`,e)}}refreshCounts(){let e=this.managedCanvas;if(!e){this.statusEl.setText(`Loading…`);return}let t=e.getNodeIds().length,n=e.getEdgeIds().length;this.statusEl.setText(`${t} node${t===1?``:`s`} · ${n} edge${n===1?``:`s`}`),this.listPanel?.setExistingNodeIds(KE(e))}addTextNode(){this.managedCanvas?.createTextNode({pos:{x:Math.random()*200-100,y:Math.random()*200-100},text:``,focus:!0})}setDragOver(e){if(this.canvasEl.toggleClass(`is-drag-over`,e),!e){this.dropOverlayEl?.remove(),this.dropOverlayEl=null;return}if(this.dropOverlayEl)return;let t=this.canvasEl.createDiv({cls:`thino-organizer-drop-overlay`});t.createSpan({text:`Drop thino here`}),t.addEventListener(`dragover`,e=>e.preventDefault()),t.addEventListener(`drop`,e=>this.handleDrop(e)),this.dropOverlayEl=t}handleDrop(e){e.preventDefault(),e.stopPropagation(),this.setDragOver(!1);let t=this.managedCanvas,n=IE(e.dataTransfer);if(!t||!n)return;let r=t.screenToCanvas(e.clientX,e.clientY);if(!r)return;let i=t.createTextNode({pos:r,size:WE,text:n.content,focus:!1,save:!1});try{let e=t.getData();if(e){let r=e.nodes.find(e=>e.id===i);r&&(r.thinoId=n.id),t.setData(e)}}catch{}t.save(),this.refreshCounts()}setPanelCollapsed(e){if(this.panelCollapsed===e)return;this.panelCollapsed=e,(0,d.setIcon)(this.panelToggleEl,e?`panel-right-open`:$f7);let t=e?`Show thino list`:$h2;this.panelToggleEl.setAttribute(`aria-label`,t),this.panelToggleEl.setAttribute($pt,t),e?(this.listPanel&&this.unmount(this.listPanel),this.listPanel=null,this.listPanelEl?.remove(),this.listPanelEl=null):this.openListPanel()}openListPanel(){this.listPanel||(this.listPanelEl=this.bodyEl.createDiv(),this.listPanel=this.mount(new UE(this.listPanelEl)),this.ready&&this.managedCanvas&&this.listPanel.setExistingNodeIds(KE(this.managedCanvas)))}toolbarButton(e,t,n,r){let i=e.createEl($7,{cls:`thino-organizer-toolbar-btn clickable-icon`,attr:{"aria-label":n,title:n}});return(0,d.setIcon)(i,t),this.registerDomEvent(i,$05,r),i}};function KE(e){let t=new Set,n=e.getData();if(!n)return t;for(let e of n.nodes)e.thinoId&&t.add(e.thinoId);return t}sf(),U(),Gp();var qE=`thino-canvas-organizer`,JE=`thino-organizer-workspace.canvas`,YE=2e3,XE=class extends d.ItemView{plugin;panel=null;managedCanvas=null;autoSaveTimer=null;saveDebounceTimer=null;unsubSaveRequested=null;unsubMemoStore=null;constructor(e,t){super(e),this.plugin=t}getViewType(){return qE}getDisplayText(){return $kp}getIcon(){return $g9}get jsonPath(){return`${this.plugin.manifest.dir}/thino-canvas.json`}renderProGate(e){e.empty(),e.addClass($7c),sE(e,$kp)}async onOpen(){let{containerEl:e}=this;if(e.empty(),e.addClass($7c),!d.Platform.isDesktop){this.renderProGate(e);return}if(!await Up()){this.renderProGate(e);return}let t=await jE.loadJson(this.app.vault.adapter,this.jsonPath),n=JSON.stringify(t??{nodes:[],edges:[]},null,2),r=this.app.vault.getAbstractFileByPath(JE);r instanceof d.TFile?await this.app.vault.modify(r,n):await this.app.vault.create(JE,n),this.panel=new GE(e,{app:this.app,canvasFilePath:JE,onCanvasReady:e=>{this.managedCanvas=e,this.hookCanvasEvents(e)}}),this.addChild(this.panel),this.autoSaveTimer=window.setInterval(()=>{this.persistToJson()},3e4)}async onClose(){this.autoSaveTimer!==null&&(window.clearInterval(this.autoSaveTimer),this.autoSaveTimer=null),this.saveDebounceTimer!==null&&(window.clearTimeout(this.saveDebounceTimer),this.saveDebounceTimer=null),this.unsubSaveRequested?.(),this.unsubSaveRequested=null,this.unsubMemoStore?.(),this.unsubMemoStore=null,this.syncThinoChanges(),await this.persistToJson(),this.managedCanvas&&=(this.managedCanvas.destroy(),null),this.panel&&=(this.removeChild(this.panel),null);try{let e=this.app.vault.getAbstractFileByPath(JE);e&&await this.app.fileManager.trashFile(e)}catch(e){console.warn(`[ThinoCanvasOrganizer] Could not delete working file:`,e)}}hookCanvasEvents(e){this.unsubSaveRequested=e.on($in,()=>{this.saveDebounceTimer!==null&&window.clearTimeout(this.saveDebounceTimer),this.saveDebounceTimer=window.setTimeout(()=>{this.saveDebounceTimer=null,this.syncThinoChanges(),this.persistToJson()},YE)}),this.unsubMemoStore=z.subscribe(e=>e.memos,t=>{this.syncStoreToCanvas(e,t)})}syncThinoChanges(){let e=this.managedCanvas;if(!e?.isReady)return;let t=e.getData();if(!t)return;let n=z.getState().memos;for(let e of t.nodes){let t=e.thinoId;if(!t||!($0l in e)||typeof e.text!=$q)continue;let r=n.find(e=>e.id===t);if(!r)continue;let i=e.text.trim();i!==r.content.trim()&&Y.updateMemo(t,i).catch(e=>{console.error(`[ThinoCanvasOrganizer] Failed to sync thino ${t}:`,e)})}}syncStoreToCanvas(e,t){if(!e.isReady)return;let n=e.getData();if(!n)return;let r=!1;for(let e of n.nodes){let n=e.thinoId;if(!n||!($0l in e)||typeof e.text!=$q)continue;let i=t.find(e=>e.id===n);i&&e.text.trim()!==i.content.trim()&&(e.text=i.content,r=!0)}r&&(e.setData(n),this.persistToJson())}async persistToJson(){if(this.managedCanvas?.isReady)try{await this.managedCanvas.saveJson(this.jsonPath)}catch(e){console.error(`[ThinoCanvasOrganizer] Failed to persist JSON:`,e)}}static async cleanupWorkingFile(e){try{let t=e.vault.getAbstractFileByPath(JE);t&&await e.fileManager.trashFile(t)}catch{}}};X(),Ia(),us();var ZE=class extends d.EditorSuggest{editor;cursor;plugin;memos=[];constructor(e,t){super(e),this.plugin=t,this.memos=Y.getState().memos.filter(e=>!e.deletedAt&&e.rowStatus!==$07)}checkInMemosView(e){let t=e.containerEl;return t&&(t.parentElement?.parentElement)?.classList.contains($5a)||!1}fuzzySearchItemsOptimized(e,t){let n=(0,d.prepareFuzzySearch)(e);return t.map(e=>{let t=n(e.content);return t?{item:e,match:t}:null}).filter(Boolean)}onTrigger(e,t){if(!this.checkInMemosView(t))return null;let n=t.getLine(e.line).slice(0,e.ch);if(n.lastIndexOf(`~`)===-1)return null;let r=n.slice(n.lastIndexOf(`~`)+1,e.ch);if(n[n.lastIndexOf(`~`)-1]!==` `&&n.lastIndexOf(`~`)!==0)return null;let i=r.trim();return this.memos=Y.getState().memos.filter(e=>!e.deletedAt&&e.rowStatus!==$07),{start:{line:e.line,ch:e.ch-i.length},end:e,query:i}}getSuggestions(e){return e.query?this.fuzzySearchItemsOptimized(e.query,this.memos).sort((e,t)=>t.match.score-e.match.score).map(e=>e.item).map(e=>({time:e.createdAt,id:e.id,content:e.content})):this.memos.map(e=>({time:e.createdAt,id:e.id,content:e.content}))}renderSuggestion(e,t){t.toggleClass(`thino-suggestion`,!0),t.createDiv({cls:`thino-suggestion-time`,text:e.time}),t.createDiv({cls:`thino-suggestion-container`}).createDiv({cls:`thino-suggestion-content`,text:e.content})}async addBlockRefToMemo(e,t){await $o(e,{id:e.id,hasId:t})}selectSuggestion(e){let t=Y.getMemoById(e.id);if(!t){this.context.editor.replaceRange($8z+e.id+`)`,{line:this.context.end.line,ch:this.context.start.ch-1},this.context.end);return}t.sourceType===$00&&t.path?(this.context.editor.replaceRange($8z+e.id+`)`,{line:this.context.end.line,ch:this.context.start.ch-1},this.context.end),this.handleDailyNoteMemo(t,e)):this.context.editor.replaceRange($8z+e.id+`)`,{line:this.context.end.line,ch:this.context.start.ch-1},this.context.end)}async handleDailyNoteMemo(e,t){if(!e.path)return;let n=this.app,r=n.vault.getAbstractFileByPath(e.path);if(!(r instanceof d.TFile))return;let i=e.hasId;i||(i=R.randomId(6),await this.addBlockRefToMemo(e,i));let a=this.context.editor,o=a.getLine(this.context.end.line),s=`MARK: [@THINO](${t.id})`;if(o.includes(s)){let e=o.indexOf(s),c=n.fileManager.generateMarkdownLink(r,``,`#^`+i,t.id);a.replaceRange(`MARK: ${c}`,{line:this.context.end.line,ch:e},{line:this.context.end.line,ch:e+s.length})}}},QE=class extends d.EditorSuggest{picker=null;editor=null;cursor=null;plugin;suppressCursor=null;committedSelection=!1;constructor(e,t){super(e),this.plugin=t,this.suggestEl.toggleClass(`thino-date-selector`,!0)}checkInMemosView(e){let t=e.containerEl;return t&&(t.parentElement?.parentElement)?.classList.contains($5a)||!1}onTrigger(e,t){if(!this.checkInMemosView(t))return null;if(this.suppressCursor){if(this.isSamePosition(e,this.suppressCursor))return null;this.suppressCursor=null}return t.getLine(e.line)[e.ch-1]===`@`?(this.cursor={...e},this.editor=t,{start:{line:e.line,ch:e.ch-1},end:e,query:``}):null}getSuggestions(){return[parseInt((0,d.moment)().startOf($04).format(`x`))]}renderSuggestion(e,t){t.empty(),this.destroyPicker(),this.picker=new bh(t,{cls:`editor-date-picker`,datestamp:e,onChange:(e,t)=>this.selectSuggestion(e,t)}),this.picker.load()}destroyPicker(){this.picker?.unload(),this.picker=null}selectSuggestion(e,t){if(t instanceof KeyboardEvent||t.instanceOf(PointerEvent)&&!t.target.closest(`.day-item`))return;this.committedSelection=!0,(this.app.workspace.getLeavesOfType($0n)[0]?.view)?.contentEl.find(`.action-btn.list-or-task.list`)?.click();let n=``,r=``;switch(this.plugin.settings.InsertDateFormat){case $dm:n=`[due:: `,r=`]`;break;case $cv:n=`📅 `;break}if(!this.editor||!this.cursor)return;let i=this.editor,a=this.cursor;i.replaceRange(n+(0,d.moment)(e).format($02)+r,{line:a.line,ch:a.ch-1},a),this.close()}onClose(){!this.committedSelection&&this.cursor?this.suppressCursor={...this.cursor}:this.suppressCursor=null,this.committedSelection=!1,this.destroyPicker(),this.cursor=null,this.editor=null}isSamePosition(e,t){return e.line===t.line&&e.ch===t.ch}},$E={Memos:`<svg t="1641348507339" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2120" width="100" height="100"><path d="M126.692653 478.099639l-90.757281 0c-19.019408 0-34.437336 15.423923-34.437336 34.417356 0 18.992434 15.416929 34.477297 34.437336 34.477297l90.757281 0c19.013414 0 34.42335-15.484863 34.42335-34.477297C161.116003 493.523561 145.706067 478.099639 126.692653 478.099639zM244.662333 243.526943c13.742566-13.110184 14.310011-34.948836 1.185841-48.706388l-62.644762-65.668806c-13.128167-13.762547-34.974811-14.229091-48.717377-1.118906s-14.261059 34.911872-1.132893 48.674419l62.644762 65.668806C209.123074 256.13262 230.919767 256.637127 244.662333 243.526943zM543.066631 957.422083l-60.603757 0c-18.654764 0-33.794964 15.147193-33.794964 33.862898 0 18.661757 15.1402 32.71502 33.794964 32.71502l60.603757 0c18.654764 0 33.794964-14.053262 33.794964-32.71502C576.861595 972.568277 561.721395 957.422083 543.066631 957.422083zM988.076617 479.050709l-90.757281 0c-19.019408 0-34.437336 15.423923-34.437336 34.417356s15.416929 34.477297 34.437336 34.477297l90.757281 0c19.013414 0 34.42335-15.484863 34.42335-34.477297S1007.09003 479.050709 988.076617 479.050709zM512.268737 192.765564c-172.737143 0-312.75527 150.079292-312.75527 322.746503 0 125.630192 74.080583 233.957298 180.936128 283.703669l0 84.51838c0 16.762614 15.410935 31.35435 34.42335 31.35435 0.598415 0 1.193833-0.014985 1.785255-0.042958 0.618395 0.026974 1.239788 0.042958 1.867175 0.042958l187.479731 0c5.905227 0 11.455802-1.220807 16.288078-3.477601 12.231044-4.657447 20.795671-15.383962 20.795671-27.87575l0-84.052835c107.391021-49.534578 181.935151-158.147405 181.935151-284.168214C825.024007 342.843857 684.997888 192.765564 512.268737 192.765564zM574.863548 742.713968l0 80.17063c0 3.159911-0.221783 5.976158-0.642372 8.496694l0 19.092336-124.910895 0 0-17.71768c-0.423586-2.856208-0.642372-6.123015-0.642372-9.870351l0-80.443363c-99.204024-27.75387-171.970892-118.821847-171.970892-226.930167 0-130.094827 105.4689-245.507007 235.571719-245.507007s235.563727 115.41218 235.563727 245.507007C747.832465 623.984031 674.578074 715.293772 574.863548 742.713968zM895.407204 129.328576c-13.429872-13.429872-35.233558-13.439862-48.677416 0.004995l-64.174267 64.175266c-13.448853 13.448853-13.443858 35.257534-0.013986 48.687406 13.429872 13.429872 35.281511 13.477825 48.730364 0.028972l64.175266-64.175266C908.889025 164.605092 908.837076 142.758448 895.407204 129.328576zM511.796199 159.617967c18.992434 0 34.417356-15.410935 34.417356-34.42335l0-90.757281c0-19.019408-15.423923-34.437336-34.417356-34.437336-18.992434 0-34.477297 15.416929-34.477297 34.437336l0 90.757281C477.317903 144.208031 492.802766 159.617967 511.796199 159.617967z" fill="currentColor" p-id="2121"></path></svg>`};function eD(){Object.keys($E).forEach(e=>{(0,d.addIcon)(e,$E[e])})}function tD(e,t){if((0,d.requireApiVersion)(`1.11.0`)){let n=new d.SettingGroup(e).setHeading(t),r={addSetting(e){return n.addSetting(e),r}};return r}new d.Setting(e).setHeading().setName(t);let n={addSetting(t){return t(new d.Setting(e)),n}};return n}var nD=typeof Buffer==$z,rD=typeof TextDecoder==$z?new TextDecoder:void 0,iD=typeof TextEncoder==$z?new TextEncoder:void 0,aD=Array.prototype.slice.call(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`),oD=(e=>{let t={};return e.forEach((e,n)=>t[e]=n),t})(aD),sD=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,cD=String.fromCharCode.bind(String),lD=typeof Uint8Array.from==$z?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),uD=e=>e.replace(/=/g,``).replace(/[+\/]/g,e=>e==`+`?`-`:`_`),dD=e=>e.replace(/[^A-Za-z0-9\+\/]/g,``),fD=typeof btoa==$z?e=>btoa(e):nD?e=>Buffer.from(e,`binary`).toString($4m):e=>{let t,n,r,i,a=``,o=e.length%3;for(let o=0;o<e.length;){if((n=e.charCodeAt(o++))>255||(r=e.charCodeAt(o++))>255||(i=e.charCodeAt(o++))>255)throw TypeError(`invalid character found`);t=n<<16|r<<8|i,a+=aD[t>>18&63]+aD[t>>12&63]+aD[t>>6&63]+aD[t&63]}return o?a.slice(0,o-3)+`===`.substring(o):a},pD=nD?e=>Buffer.from(e).toString($4m):e=>{let t=4096,n=[];for(let r=0,i=e.length;r<i;r+=t)n.push(cD.apply(null,e.subarray(r,r+t)));return fD(n.join(``))},mD=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?cD(192|t>>>6)+cD(128|t&63):cD(224|t>>>12&15)+cD(128|t>>>6&63)+cD(128|t&63)}else{var t=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return cD(240|t>>>18&7)+cD(128|t>>>12&63)+cD(128|t>>>6&63)+cD(128|t&63)}},hD=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,gD=e=>e.replace(hD,mD),_D=nD?e=>Buffer.from(e,`utf8`).toString($4m):iD?e=>pD(iD.encode(e)):e=>fD(gD(e)),vD=(e,t=!1)=>t?uD(_D(e)):_D(e),yD=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,bD=e=>{switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return cD((t>>>10)+55296)+cD((t&1023)+56320);case 3:return cD((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return cD((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},xD=e=>e.replace(yD,bD),SD=typeof atob==$z?e=>atob(dD(e)):nD?e=>Buffer.from(e,$4m).toString(`binary`):e=>{if(e=e.replace(/\s+/g,``),!sD.test(e))throw TypeError(`malformed base64.`);e+=`==`.slice(2-(e.length&3));let t,n,r,i=[];for(let a=0;a<e.length;)t=oD[e.charAt(a++)]<<18|oD[e.charAt(a++)]<<12|(n=oD[e.charAt(a++)])<<6|(r=oD[e.charAt(a++)]),n===64?i.push(cD(t>>16&255)):r===64?i.push(cD(t>>16&255,t>>8&255)):i.push(cD(t>>16&255,t>>8&255,t&255));return i.join(``)},CD=nD?e=>lD(Buffer.from(e,$4m)):e=>lD(SD(e).split(``).map(e=>e.charCodeAt(0))),wD=nD?e=>Buffer.from(e,$4m).toString(`utf8`):rD?e=>rD.decode(CD(e)):e=>xD(SD(e)),TD=e=>dD(e.replace(/[-_]/g,e=>e==`-`?`+`:`/`)),ED=e=>wD(TD(e));I();function DD(e,t,n){return{type:$gt,tabId:e,heading:t,items:n.map(([e,t,n])=>({name:e,desc:t,aliases:n===void 0?void 0:typeof n==$q?[n]:n}))}}function OD(e,t){let n=t.trim().toLocaleLowerCase(),r=new Set;if(!n)return r;for(let t of e)!($gm in t)||t.type!==$gt||[t.heading,...(t.items||[]).flatMap(e=>[e.name,e.desc,...e.aliases||[]])].some(e=>e?.toLocaleLowerCase().includes(n))&&r.add(t.tabId);return r}function kD(){return[DD($4s,`${F(137)} · ${F(516)}`,[[F(2),F(3),$j8],[F(514),F(515),$eo],[F(512),F(513),$cq]]),DD($4s,`${F(137)} · ${F(350)}`,[[F(234),F(240)],[F(241)],[F(234),F(246)],[F(208)],[F(216),F(217)],[F(348),F(349),$jz],[F(214),F(215)],[F(225)],[F(268)],[F(227),F(228)],[F(688),void 0,$ko]]),DD($0c,`Thino · ${F(526)}`,[[F(13),F(14),$ay],[F(509),F(510),$7f]]),DD($0c,`Thino · ${F(731)}`,[[F(732),F(733),$cw],[F(734),F(735),$h5],[F(736),F(737),$h6],[F(156),void 0,[`EnabledLocationList`,$fr]],[F(763),F(764),$86]]),DD($83,F(643),[[F(483),F(484),$bs]]),DD($83,`${F(643)} · ${F(485)}`,[[F(149),F(150),$do],[F(9),F(10),$cs],[F(125),F(126),$ha],[F(753),F(754),$7z],[F(761),F(762),$bz],[F(759),F(760),$ak],[F(663),F(664),$ic],[F(671),F(672),$bx],[F(17),F(18),$ai],[F(19),F(20),$am]]),DD($3d,`${F(527)} · ${F(527)}`,[[F(29),F(30),$cx],[F(15),F(16),$fo],[F(757),F(758),$j3],[F(1014),F(1037),$bw],[F(154),F(155),$n7]]),DD($dg,`${F(138)} · ${F(517)}`,[[F(21),F(22),`ShowTime`],[F(23),F(24),`ShowDate`],[F(25),F(26),$bl]]),DD($dg,`${F(138)} · ${F(518)}`,[[F(646),F(647),$ey],[F(147),F(148),$ct],[F(27),F(28),$ft],[F(145),F(146),$8l],[F(97),F(99),$78],[F(96),F(98),$7l],[F(97),F(99),$4h],[F(96),F(98),$4j]]),DD($dg,`${F(138)} · ${F(310)}`,[[F(528),void 0,$bv],[F(604),void 0,$85],[F(530),void 0,$7a],[F(603),void 0,$90],[F(529),void 0,$7p],[F(531),void 0,$79]]),DD(`tasks`,F(779),[[F(100),F(101),$j7],[F(635),F(636),$9m]]),DD($ed,`${F(133)} · ${F(958)}`,[[F(999),F(1021),$c3],[F(978),F(1023),$d6],[F(955),F(924),$ik],[F(956),F(1030),$d5]]),DD($ed,`${F(133)} · ${F(1003)}`,[[F(946),F(979),$ij]]),DD($ed,`${F(133)} · ${F(981)}`,[[F(959),F(945),`fsrsWeights`],[F(1002),F(1001)]]),DD($99,`Pro · Thino`,[[F(206),F(207),$fr],[F(684),F(685),$fl],[F(686),F(687),$ib],[F(465),F(466),$cy],[F(463),F(464),$id],[F(467),F(468),$f1]]),DD($99,`Pro · ${F(643)}`,[[F(743),F(744),$88],[F(739),F(740),$he],[F(741),F(742),`maxWordCount`],[F(683),void 0,$bm],[F(682),void 0,$kl],[F(407),F(408),$5s],[F(440),F(441),$51],[F(537),F(538),$hg],[F(479),F(480),$je],[F(674),F(673),$9p],[F(481),F(482),`MomentsBackgroundImage`]]),DD($99,`Pro · ${F(139)}`,[[F(151),void 0,`EnabledHttpApi`],[$bk,$24],[F(676),F(677)],[F(152),F(153),$m6],[F(444),F(445),$ew],[F(446),F(447),$j4],[F(528),void 0,$6j],[F(670),void 0,$fs],[F(669),void 0,$h1],[F(531),void 0,$by],[F(195),F(196),$77],[F(197),F(198),$6k],[F(269),void 0,$8i]]),DD($23,$9f,[[F(954),F(922),`superEnabled`]]),DD($23,`Super · ${F(952)}`,[[F(953)]]),DD($23,`Super · ${F(933)}`,[[F(934)]]),DD($23,`Super · PKMer AI`,[[F(998),F(976)],[F(998)],[F(881)]]),DD($23,`Super · OpenAI / Compatible`,[[$fh],[`Base URL`],[F(939)]]),DD($23,`Super · Anthropic`,[[$fh],[F(881)]]),DD($62,`WeChat · WeChat Integration`,[[F(819),F(820),`wechat.enabled`],[F(821),F(822),`wechat.autoStart`],[F(823),F(824),`wechat.defaultReply`],[F(825),F(826),`wechat.voiceSaveMode`]]),DD($62,`WeChat · ${F(830)}`,[[F(831),F(833)],[F(286),F(835)]]),DD($62,`WeChat · ${F(836)}`,[[F(837),F(839),F(838)]]),DD($62,`WeChat · ${F(863)}`,[[F(865),F(866),`wechat.agentRouting.enabled`],[F(867),F(868),`wechat.agentRouting.defaultAgent`],[F(892),F(893),`wechat.agentRouting.cwd`],[F(911),F(912),`wechat.agentRouting.allowAllPaths`],[F(870),F(871)],[F(903)],[F(874),F(875)],[F(876)],[F(877),F(991)],[F(879),F(880)],[F(881)],[F(895),F(896)],[F(904),F(905)],[F(892),F(901)],[F(882),F(883)]]),DD(`about`,`${F(772)} · ${F(772)}`,[[F(776)],[F(775),F(777)],[F(783),F(784)],[F(780),F(781),$f0]])]}I();function AD(e){let t=e.setting;if(!t)return null;let n=Object.getPrototypeOf(t);for(;n;){if(typeof n.open==$z&&typeof n.close==$z&&typeof n.shouldUsePopout==$z&&typeof n.getPopoutWindow==$z&&typeof n.getRootEl==$z)return n;n=Object.getPrototypeOf(n)}return null}function jD(e,t){let n=AD(e)?.[t];return typeof n==$z?n:null}var MD=class extends d.Modal{plugin;settingTab;activeTabId=$4s;initialTabId=null;sidebarEl;sidebarGroupContainerEl;searchResultsEl;modalContentEl;mobileTitleEl=null;debouncedSave;tabs=[{id:$4s,name:`General`,icon:`chef-hat`,category:$ns},{id:$0c,name:$0h,icon:$2e,category:$ns},{id:$3d,name:`Editor`,icon:$d4,category:$ns},{id:$83,name:`Interface`,icon:`brush`,category:$fx},{id:$dg,name:`Share`,icon:$8d,category:$fx},{id:`tasks`,name:$cv,icon:$7v,category:$98},{id:$ed,name:$ni,icon:`brain`,category:$98},{id:$23,name:$9f,icon:$58,category:$98},{id:$62,name:`WeChat`,icon:$5x,category:$98},{id:$99,name:`Pro`,icon:$lx,category:$99},{id:`advanced`,name:`Advanced`,icon:`cog`,category:$99},{id:`about`,name:`About`,icon:$da,category:$da}];categories=[{id:$ns,name:F(`Core`)},{id:$fx,name:F(`Appearance`)},{id:$98,name:F(`Features`)},{id:$99,name:`Pro`},{id:$da,name:F(`Info`)}];constructor(e,t,n,r){super(e),this.plugin=t,this.settingTab=n,this.initialTabId=r??null;let i=this;i.popout=null,i.quitRef=null,i.unloadHandler=null,i.popoutStorageKey=`thino-settings-window-state`,i.modalEl?.addClass?.($l6,$e9,$cc),i.scope?.register?.([$gp],`W`,()=>(this.close(),!1)),this.debouncedSave=(0,d.debounce)(async()=>{await this.plugin.saveSettings()},100,!0)}setInitialTabId(e){this.initialTabId=e??null,e&&this.sidebarEl&&this.modalContentEl&&this.openTab(e)}revealToken=null;revealSetting(e){let t=e.trim();if(!t)return;let n=this.revealToken={},r=0,i=()=>{if(this.revealToken!==n)return;let e=this.modalContentEl?.querySelectorAll(`.setting-item`);if(e){for(let n of Array.from(e))if(n.querySelector(`.setting-item-name`)?.textContent?.trim()===t){n.scrollIntoView({block:$1f}),n.addClass($61),window.setTimeout(()=>n.removeClass($61),2e3);return}}++r<30&&window.setTimeout(i,100)};window.setTimeout(i,50)}getPopoutOptions(){return{title:`Thino ${F(`Settings`)}`,width:960,height:720,minWidth:640,minHeight:480}}shouldUsePopout(){if(d.Platform.isMobile)return!1;let e=jD(this.app,`shouldUsePopout`);return e?!!e.call(this):d.Platform.isDesktopApp}isPopoutModal(){let e=jD(this.app,`isPopoutModal`);return e?!!e.call(this):!!this.popout}getPopoutWindow(){let e=this,t=jD(this.app,`getPopoutWindow`);if(t)return t.call(e);let n=e.popout;return n&&!n.win.closed?n.win:null}getRootEl(){let e=this,t=jD(this.app,`getRootEl`);return t?t.call(e):e.containerEl}onEscapeKey(e){let t=jD(this.app,`onEscapeKey`);if(t){let n=this;t.call(n,e);return}e.defaultPrevented||this.close()}open(){if(!d.Platform.isMobile){let e=jD(this.app,`open`);if(e){let t=this;e.call(t);return}}super.open()}close(){if(!d.Platform.isMobile){let e=jD(this.app,`close`);if(e){let t=this;e.call(t);return}}super.close()}saveSettings(){this.debouncedSave()}onOpen(){let{contentEl:e,modalEl:t}=this;t.toggleClass($l6,!0),t.toggleClass($e9,!0),t.toggleClass($cc,!0),e.empty(),e.addClass(`vertical-tabs-container`),this.mobileTitleEl=t.querySelector(`.modal-title`),d.Platform.isMobile&&(this.activeTabId=``),this.sidebarEl=e.createDiv({cls:`vertical-tab-header`}),this.modalContentEl=e.createDiv({cls:`vertical-tab-content-container`}),this.renderSidebar(),this.initializeView()}initializeView(){d.Platform.isMobile?this.initialTabId?this.openTab(this.initialTabId):this.updateMobileView():(this.activeTabId=this.initialTabId||$4s,this.renderSidebar(),this.renderContent())}onClose(){this.modalContentEl?.empty(),this.settingTab?.onModalClose()}getVisibleTabs(){let e=!!this.plugin.wechatService;return this.tabs.filter(t=>t.id!==$62||e)}renderSidebar(){this.sidebarEl.empty(),this.sidebarEl.setAttribute(`tabindex`,`-1`);let e=new d.SearchComponent(this.sidebarEl.createDiv({cls:`setting-search-container`})).setPlaceholder(F(`Search all settings`));e.inputEl.enterKeyHint=$oe,e.inputEl.spellcheck=!1,e.inputEl.parentElement?.classList.add(`mod-raised`),e.onChange(e=>this.renderSearchResults(e)),this.searchResultsEl=this.sidebarEl.createDiv({cls:`setting-search-results`}),this.searchResultsEl.hide(),this.sidebarGroupContainerEl=this.sidebarEl.createDiv({cls:`vertical-tab-header-group-container`}),this.categories.forEach(e=>{let t=this.getVisibleTabs().filter(t=>t.category===e.id);if(t.length===0)return;let n=this.sidebarGroupContainerEl.createDiv({cls:`vertical-tab-header-group`});n.createDiv({cls:`vertical-tab-header-group-title`,text:e.name});let r=n.createDiv({cls:`vertical-tab-header-group-items`});r.setAttribute(`data-section`,e.id),t.forEach(e=>this.createSidebarItem(r,e))})}createSidebarItem(e,t){let n=e.createDiv({cls:`vertical-tab-nav-item tappable ${this.activeTabId===t.id?$3e:``}`});n.setAttribute(`tabindex`,`-1`),n.setAttribute($mc,t.id),n.setAttribute(`data-setting-id`,t.id),(0,d.setIcon)(n.createDiv({cls:`vertical-tab-nav-item-icon`}),t.icon),n.createDiv({cls:`vertical-tab-nav-item-title`,text:F(t.name)}),(0,d.setIcon)(n.createDiv({cls:`vertical-tab-nav-item-chevron`}),$0z),n.addEventListener($05,()=>{this.openTab(t.id),this.renderSidebar()})}renderSearchResults(e){let t=e.trim().toLocaleLowerCase();if(this.searchResultsEl.empty(),!t){this.searchResultsEl.hide(),this.sidebarGroupContainerEl.show();return}let n=OD(this.settingTab.getSettingDefinitions(),t),r=this.getVisibleTabs().filter(e=>{let r=this.categories.find(t=>t.id===e.category);return`${F(e.name)} ${r?.name||``}`.toLocaleLowerCase().includes(t)||n.has(e.id)});if(this.sidebarGroupContainerEl.hide(),this.searchResultsEl.show(),r.length===0){this.searchResultsEl.createDiv({cls:`setting-search-empty`,text:F(`No settings match search`)});return}r.forEach(e=>this.createSidebarItem(this.searchResultsEl,e))}openTab(e){this.activeTabId=e,this.sidebarEl.querySelectorAll($9k).forEach(t=>{t.getAttribute($mc)===e?t.addClass($3e):t.removeClass($3e)}),this.renderContent(),d.Platform.isMobile&&this.updateMobileView()}goBackToNavigation(){this.activeTabId=``,this.sidebarEl.querySelectorAll($9k).forEach(e=>{e.removeClass($3e)}),this.modalContentEl.empty(),this.updateMobileView()}updateMobileView(){if(!d.Platform.isMobile)return;let e=this.activeTabId!==``;if(this.sidebarEl.toggleClass($g8,e),this.modalContentEl.toggleClass($g8,!e),this.mobileTitleEl)if(this.mobileTitleEl.empty(),e){let e=this.mobileTitleEl.createDiv({cls:`clickable-icon modal-setting-back-button mod-raised`});(0,d.setIcon)(e,$6r),e.addEventListener($05,()=>{this.goBackToNavigation()});let t=this.tabs.find(e=>e.id===this.activeTabId);this.mobileTitleEl.createSpan({text:t?F(t.name):$0h})}else this.mobileTitleEl.createSpan({text:$0h})}renderContent(){this.modalContentEl.empty();let e=this.tabs.find(e=>e.id===this.activeTabId);if(!e)return;let t=this.modalContentEl.createDiv({cls:`vertical-tab-content`}).createDiv({cls:`vertical-tab-content-body memos-settings`});this.settingTab.renderTabInModal(e.id,t)}};I(),_f(),Gp(),dc(),X(),Zd(),Ia();var ND=5e5,PD=(e,t)=>window.open(gf()?e:t,$1l);function FD(e,t){let n=J.getState();n.updateProvider($0t,{type:$0t,enabled:!0,apiKey:e,baseUrl:$2q,completionModel:n.providers.pkmer?.completionModel||$3t,quotaInfo:t?{remaining:Math.floor(t.remainingQuota/ND),total:Math.floor(t.quota/ND)}:void 0});let r=n.activeCompletionProvider;(!r||r===$dd||!n.providers[r]?.apiKey)&&n.setActiveCompletionProvider($0t)}var ID=class extends d.Modal{verified=!1;logging=!1;waitingCallback=!1;callbackPoll=null;activationCode=``;copied=!1;manualId=``;legacyNoticeShown=!1;constructor(e,t,n){super(e),this.plugin=t,this.onChanged=n}onOpen(){this.modalEl.addClass(`thino-activation-modal`),this.titleEl.setText(F(351)),this.refresh(),d.Platform.isMobile&&!this.userInfo?.sub&&this.plugin.pkmerAuth.prepareMobileAuthUrl().catch(e=>{console.error(`Failed to pre-compute PKMer OAuth URL:`,e)})}onClose(){this.stopCallbackPoll(),this.contentEl.empty()}get userInfo(){return this.plugin.settings.general?.userInfo}async refresh(){this.verified=await Up(),this.render()}stopCallbackPoll(){this.callbackPoll!==null&&(window.clearInterval(this.callbackPoll),this.callbackPoll=null)}startCallbackPoll(){this.stopCallbackPoll();let e=Date.now();this.callbackPoll=window.setInterval(()=>{(this.userInfo?.sub||Date.now()-e>300*1e3)&&(this.stopCallbackPoll(),this.waitingCallback=!1,this.logging=!1,this.refresh())},1e3)}render(){let{contentEl:e}=this;e.empty();let t=e.createDiv({cls:`thino-verify-component`}),n=gf();if(this.verified){let e=t.createDiv({cls:`thino-verify-content verified`}),r=e.createDiv({cls:`thino-verified-badge`});(0,d.setIcon)(r,$ku),r.createSpan({text:F(287)}),n&&this.renderOAuth(e),this.renderLink(e,``,`${F(289)} →`);return}if(n){this.renderOAuth(t);let e=t.createEl(`details`,{cls:`thino-legacy-verify`});e.createEl(`summary`,{text:F(292)}),this.renderLegacy(e)}else this.renderLegacy(t);this.renderLink(t,F(192),`@ PKMer`)}renderLink(e,t,n){let r=e.createDiv({cls:$4w,text:t});r.createSpan({cls:$pc,text:n}).onclick=()=>PD(`https://pkmer.cn`,$7b)}renderOAuth(e){let t=this.userInfo;if(t?.sub){let n=e.createDiv({cls:`thino-oauth-card`}),r=n.createDiv({cls:`thino-oauth-header`});r.createSpan({cls:`thino-oauth-username`,text:t.name||t.email||t.sub}),r.createEl($7,{cls:`thino-oauth-logout clickable-icon`,text:F(286)}).onclick=()=>void this.handleLogout();let i=t.ai_quota;if(!i)return;let a=Math.floor(i.remainingQuota/ND),o=Math.floor(i.quota/ND),s=n.createDiv({cls:`thino-oauth-quota`});s.onclick=()=>{this.close(),this.plugin.settingTab?.closeSettingsModal(),window.setTimeout(()=>this.plugin.settingTab?.openSettingsModal($23),100)};let c=s.createDiv({cls:`thino-oauth-quota-label`});c.createSpan({text:F(288)}),c.createSpan({cls:`thino-oauth-quota-value`,text:`${a} / ${o}`});let l=s.createDiv({cls:`thino-oauth-quota-bar`});l.createDiv({cls:`thino-oauth-quota-fill`}).style.width=o>0?`${a/o*100}%`:`0%`,s.createSpan({cls:`thino-oauth-quota-hint`,text:F(290)});return}let n=e.createDiv({cls:$ce});n.createDiv({cls:$4w,text:F(291)});let r=n.createDiv({cls:$ac}).createEl($7,{text:this.waitingCallback?F(1033):this.logging?$6f:F(285)});r.disabled=this.logging,r.onclick=()=>void this.handleLogin()}async handleLogin(){if(d.Platform.isMobile){let e=this.plugin.pkmerAuth.consumeMobileAuthUrl();if(e){window.open(e,$1l),this.logging=!0,this.waitingCallback=!0,this.startCallbackPoll(),this.render(),this.plugin.pkmerAuth.prepareMobileAuthUrl().catch(()=>{});return}this.logging=!0,this.render();try{await this.plugin.pkmerAuth.login(),this.waitingCallback=!0,this.startCallbackPoll()}catch{this.logging=!1}this.render();return}this.logging=!0,this.render();try{if(await this.plugin.pkmerAuth.login(),await this.plugin.verify()){G.setRefresh(!0);let e=this.plugin.pkmerAuth.aiToken;e&&FD(e,this.userInfo?.ai_quota),this.plugin.registerToolbarCheck()}}finally{this.logging=!1,this.onChanged(),await this.refresh()}}async handleLogout(){await this.plugin.pkmerAuth.logout(),W.setVerifyState(null),G.setRefresh(!0);let e=J.getState();e.updateProvider($0t,{type:$0t,enabled:!1,apiKey:``,quotaInfo:void 0}),e.activeCompletionProvider===$0t&&e.setActiveCompletionProvider($20),this.onChanged(),await this.refresh()}renderLegacy(e){let t=e.createDiv({cls:$ce}),n=t.createDiv({cls:$4w,text:F(410)+`->`});n.createSpan({cls:$pc,text:` PKMer`}).onclick=()=>PD($2t,$2h);let r=t.createEl($0o,{cls:`thino-verify-textarea`,attr:{placeholder:F(200)}});r.value=this.activationCode,r.oninput=()=>{let e=!!this.activationCode;this.activationCode=r.value,e!==!!this.activationCode&&this.render()};let i=t.createDiv({cls:$ac}),a=i.createDiv({cls:`thino-button-group`});if(this.activationCode?a.createEl($7,{text:F(191)}).onclick=()=>void this.verifyActivationCode():(a.createEl($7,{text:F(201)}).onclick=()=>void this.copyThinoId(),a.createEl($7,{text:F(199)}).onclick=()=>{if(!this.copied){new d.Notice(F(203));return}PD(`https://pkmer.cn/products/UserProfile/#tab-21&getCode`,`https://pkmer.net/en/userprofile/#tab-21&getCode`),this.legacyNoticeShown=!0,this.render()}),this.manualId){let e=i.createDiv({cls:`thino-manual-copy`});e.createEl(`p`,{cls:`thino-manual-copy-hint`,text:F(619)});let t=e.createEl($0o,{cls:`thino-manual-copy-textarea`,attr:{readonly:``,rows:`3`}});t.value=this.manualId;let n=()=>t.setSelectionRange(0,this.manualId.length);t.onfocus=n,t.onclick=n,window.setTimeout(()=>{t.focus(),n()},0)}this.legacyNoticeShown&&i.createEl(`p`,{text:F(190)})}async copyThinoId(){let e=``;try{e=await Fj()}catch(e){console.error(e),new d.Notice(F(618));return}let t=!1;try{t=await R.copyTextToClipboard(e)}catch(e){console.error(e)}this.copied=!0,this.manualId=t?``:e,new d.Notice(F(t?110:618)),this.render()}async verifyActivationCode(){let e=this.activationCode;if(!e)return;let t=await Hp();tc(this.plugin.app,t,e);let n=!1;try{n=await this.plugin.verify()}catch{n=!1}n&&(this.legacyNoticeShown=!0,G.setRefresh(!0),this.plugin.registerToolbarCheck()),new d.Notice(F(n?283:284)),this.onChanged(),await this.refresh()}},LD={tokenExpiresAt:0,userInfo:null,thinoDevice:null},RD={accessToken:`pkmer-oauth-access-token`,refreshToken:`pkmer-oauth-refresh-token`,aiToken:`pkmer-oauth-ai-token`},zD={authorizationUrl:`https://api.pkmer.cn/api/v1/oauth/authorize`,tokenUrl:`https://api.pkmer.cn/api/v1/oauth/token`,userinfoUrl:`https://api.pkmer.cn/api/v1/oauth/userinfo`,thinoDeviceRegisterUrl:`https://api.pkmer.cn/api/v1/plugin-devices/thino/register`,clientId:`pkmer_832ebb0ff9264f7b3019262b47f625ed`,scopes:`openid profile email ai:token thino`,desktopRedirectUri:`http://localhost:10889/thino/callback`,mobileRedirectUri:`obsidian://thino`,callbackPort:10889};kp();function $(e,t,n){let r,i=e=>{r=e,t!==void 0&&e.setName(t),n!==void 0&&e.setDesc(n)};return e instanceof HTMLElement?i(new d.Setting(e)):e.addSetting(i),r}function BD(e,t,n){let r=t.indexOf(`.`);if(r<0){e[t]=n;return}let i=t.slice(0,r),a={...e[i]};BD(a,t.slice(r+1),n),e[i]=a}function VD(e,t,n,r){if(r?.pro&&!e.verified){Op();return}BD(e.plugin.settings,t,n),r?.debounce?e.settingTab.debounceApplySettingsUpdate():e.settingTab.applySettingsUpdate();let i=r?.redraw;i===!0?e.settingTab.debounceDisplay():typeof i==$0e&&window.setTimeout(()=>{e.settingTab.display()},i),r?.after?.(n)}function HD(e,t){let n=e.plugin.settings;for(let e of t.split(`.`))n=n?.[e];return n}function UD(e,t,n,r,i,a){return $(t,n,r).addToggle(t=>t.setValue(HD(e,i)).onChange(t=>VD(e,i,t,a)))}function WD(e,t,n,r,i,a){return $(t,n,r).addText(t=>{a?.placeholder!==void 0&&t.setPlaceholder(a.placeholder),a?.input?.(t.inputEl),t.setValue(HD(e,i)).onChange(t=>VD(e,i,t,a))})}function GD(e,t,n,r,i,a,o){return $(t,n,r).addDropdown(t=>{for(let e=0;e<a.length;e+=2)t.addOption(a[e],a[e+1]);t.setValue(HD(e,i)).onChange(t=>VD(e,i,t,o))})}I(),X(),Wl(),dc(),Tl();var KD=class{constructor(e){this.props=e}display(){this.renderUserInfo(),this.renderSyncService()}renderUserInfo(){let e=this.props,t=tD(e.containerEl,`👤 `+F(516));WD(e,t,F(2),F(3),$j8,{placeholder:$95}),WD(e,t,F(514),F(515),$eo,{placeholder:`URL`,input:e=>void new Vb(e)}),WD(e,t,F(512),F(513),$cq,{placeholder:`Input anything here`})}renderSyncService(){let{containerEl:e,settingTab:t,plugin:n}=this.props,r=!1,i=!!qs(n.app),a=Xs(n.app),o=tD(e,`☁ `+F(350));if(!i){$(o,F(234),F(240)).addButton(e=>{e.setCta().setButtonText(F(241)).onClick(()=>{new qD(n.app,a,async(e,t)=>{await Uc(n.app,e,t),n.settings.startSync=!1,await n.saveSettings(),q.stopPolling(),q.resetLastUpdatedTime()},e=>this.getLocalizedAuthError(e),()=>{G.setRefresh(!0),new d.Notice(F(244)),t.debounceDisplay()}).open()})});return}let s=$(o,F(234),F(246)).addButton(e=>{e.setButtonText(F(208)).onClick(async()=>{if(!r){e.setButtonText(F(213)),r=!0;return}r=!1,$s(n.app),n.settings.startSync=!1,await n.saveSettings(),q.stopPolling(),q.resetLastUpdatedTime(),new d.Notice(F(210)),G.setRefresh(!0),t.debounceDisplay()})});a.then(e=>{e&&s.settingEl.isConnected&&s.setDesc(`${F(247)} ${e.account}`)}),this.showSyncStatus()}getLocalizedAuthError(e){if(e instanceof ml){if(e.code===`USE_OAUTH_LOGIN`)return F(248);if(e.code===$br)return F(242);if([`BAD_REQUEST`,$kq,`SIGN_IN_FAILED`].includes(e.code))return F(249);if([$h9,$h0,$8y,`CREATE_API_KEY_FAILED`].includes(e.code))return F(250)}return e instanceof Error?e.message:String(e)}getLocalizedSyncMessage(e){return{"Syncing Thino Web migration data":F(254),"Fetching Thino Web updates":F(255),"Applying migrated data":F(256),"Applying synced data":F(257),"Uploading thinos":F(226),"Thino Web migration completed":F(260),"Sync completed":F(261),"Thino Web sync failed":F(253),"Local data uploaded":F(262),"Upload to Thino Web failed":F(263)}[e]||e}renderSyncProgress(e){{let t=$(e,F(216),F(217));t.nameEl.hide(),t.descEl.hide(),t.controlEl.hide();let n=t.infoEl.createDiv({cls:`thino-sync-settings-panel`}),r=n.createDiv({cls:`thino-sync-settings-header`}).createSpan({cls:`thino-sync-settings-state`}),i=n.createDiv({cls:`thino-sync-settings-message`}),a=n.createDiv({cls:`thino-sync-settings-progress`}),o=a.createDiv(),s=n.createDiv({cls:`thino-sync-settings-details`}),c=s.createSpan(),l=s.createSpan(),u=e=>{let t=[$8q,$dy,$cj].includes(e.phase),n=e.total>0?Math.min(100,e.processed/e.total*100):0,s={idle:F(218),downloading:F(219),applying:F(220),uploading:F(221),success:F(265),error:F(266)},u=e.lastSyncedAt||Number(q.getLastUpdatedTime())||void 0;r.setText(s[e.phase]),r.className=`thino-sync-settings-state is-${e.phase}`,i.setText(e.error||this.getLocalizedSyncMessage(e.message)||(q.isMigrationPending()?F(222):F(218))),a.toggleClass($g7,t&&e.total===0),a.toggleClass(`is-hidden`,!t),o.style.width=`${n}%`,c.setText(t&&e.total>0?`${e.processed} / ${e.total}`:``),l.setText(u?`${F(223)}: ${new Date(u).toLocaleString()}`:`${F(223)}: ${F(224)}`)};u(q.getSnapshot());let d=q.subscribe(()=>{if(!n.isConnected){d();return}u(q.getSnapshot())})}}showSyncStatus(){let{containerEl:e,settingTab:t,plugin:n}=this.props;if(!qs(n.app))return;let r=tD(e,F(216));this.renderSyncProgress(r),GD(this.props,r,F(348),F(349),$jz,[$00,F(157),$0i,F(161),$9,F(164)]),$(r,F(214),F(215)).addButton(e=>{e.setButtonText(F(225)).onClick(async()=>{e.setDisabled(!0).setButtonText(F(264));try{await q.pullFromWeb(q.getLastUpdatedTime(),!0),new d.Notice(F(261))}catch(e){new d.Notice(`${F(253)}: ${e instanceof Error?e.message:String(e)}`)}finally{e.setDisabled(!1).setButtonText(F(225))}})}).addButton(e=>{e.setButtonText(n.settings.startSync?F(267):F(268)).onClick(async()=>{let e=!n.settings.startSync;if(e&&!await Zc()){new d.Notice(F(233));return}n.settings.startSync=e,await n.saveSettings(),G.setRefresh(!0),new d.Notice(n.settings.startSync?F(232):F(231)),n.settings.startSync?q.pullFromWeb(q.getLastUpdatedTime()).catch(e=>{new d.Notice(`${F(253)}: ${e instanceof Error?e.message:String(e)}`)}):q.stopPolling(),t.debounceDisplay()})}),$(r,F(227),F(228)).addButton(e=>{{let t=!1,n=null,r=()=>{t=!1,n!==null&&(window.clearTimeout(n),n=null),e.setButtonText(F(229))};e.setButtonText(F(229)).onClick(async()=>{if(!t){t=!0,e.setButtonText(F(213)),n=window.setTimeout(r,4e3);return}r(),e.setDisabled(!0).setButtonText(F(230));try{q.resetLastUpdatedTime(),await q.pullFromWeb(void 0,!0),new d.Notice(F(261))}catch(e){new d.Notice(`${F(253)}: ${e instanceof Error?e.message:String(e)}`)}finally{e.setDisabled(!1).setButtonText(F(229))}})}}),UD(this.props,r,F(688),void 0,$ko)}},qD=class extends d.Modal{account=``;password=``;submitting=!1;connectButtonEl=null;constructor(e,t,n,r,i){super(e),this.storedCredentials=t,this.connect=n,this.getErrorMessage=r,this.onConnected=i}onOpen(){let{contentEl:e}=this;this.titleEl.setText(F(234)),e.createDiv($31,e=>{e.setText(F(240))});let t=null;new d.Setting(e).setName(F(235)).setDesc(F(236)).addText(e=>{t=e.inputEl,e.setPlaceholder(F(237)).onChange(e=>{this.account=e}),e.inputEl.autocomplete=`username`,e.inputEl.addEventListener($1s,e=>this.handleEnter(e))}),new d.Setting(e).setName(F(455)).setDesc(F(238)).addText(e=>{e.setPlaceholder(F(239)).onChange(e=>{this.password=e}),e.inputEl.type=$41,e.inputEl.autocomplete=`current-password`,e.inputEl.addEventListener($1s,e=>this.handleEnter(e))});let n=e.createDiv($1p);n.createEl($7,{text:F(305)}).onclick=()=>this.close(),this.connectButtonEl=n.createEl($7,{text:F(241),cls:$2c}),this.connectButtonEl.onclick=()=>void this.submit(),this.storedCredentials.then(e=>{!e||!t?.isConnected||t.value||(this.account=e.account,t.value=e.account)}),t?.focus()}onClose(){this.contentEl.empty(),this.connectButtonEl=null}handleEnter(e){e.key===$28&&(e.preventDefault(),this.submit())}async submit(){if(this.submitting)return;let e=await this.storedCredentials,t=this.account.trim()||e?.account||``,n=this.password||(t===e?.account?e.password:``);if(!t||!n){new d.Notice(F(242));return}this.submitting=!0,this.connectButtonEl&&(this.connectButtonEl.disabled=!0,this.connectButtonEl.setText(F(243)));try{await this.connect(t,n),this.close(),this.onConnected()}catch(e){new d.Notice(`${F(245)}: ${this.getErrorMessage(e)}`)}finally{this.submitting=!1,this.connectButtonEl?.isConnected&&(this.connectButtonEl.disabled=!1,this.connectButtonEl.setText(F(241)))}}};kp(),Dn(),Ia(),Gp(),X(),I();var JD=class extends d.Modal{plugin;settingTab;LocationList;target=``;insertTarget=``;verified;_forceCustomHeading=!1;constructor(e,t,n,r,i){if(super(e),this.verified=i,this.app=e,this.settingTab=t,this.plugin=n,this.LocationList=r,r.target===$18)this.target=n.settings[r.target];else if(r.target===$az){let e=n.settings.JournalSettings;this.target={day:e?.daily,week:e?.weekly,month:e?.monthly,year:e?.yearly}[e?.granularity||$04]?.folder||``}else this.target=n.settings.MemoOtherSaveLocation[r.target];this.insertTarget=n.settings.InsertAfter}updateValue=(0,d.debounce)(e=>{this.LocationList.value!==$00&&this.LocationList.value!==$0g?this.target=e.trim()===``?$7s:e.trim():this.target=e.trim()===``&&this.LocationList.value===$0g?$2e:e.trim()},400,!0);onOpen(){this.display()}debounceDisplay=(0,d.debounce)(()=>this.display(),400,!0);async display(){let{contentEl:e}=this;this.contentEl.empty(),e.parentElement?.classList.add($45),this.titleEl.toggleClass($mi,!0),this.titleEl.setText(F(156)+` [${F(this.LocationList.value)}]`),(this.LocationList.value===$0i||this.LocationList.value===$0r)&&e.createDiv($31,e=>{e.setText(F(204))}),this.LocationList.value===$0g&&e.createDiv($31,e=>{e.setText(F(205))}),this.LocationList.value===$00&&e.createDiv($31,e=>{e.setText(F(4))}),this.LocationList.value===$9&&e.createDiv($31,e=>{e.setText(F(166))});let t=e.createDiv($b8),n=this.LocationList.value===$00?F(7):this.LocationList.value===$0g?F(355):F(356);if(this.LocationList.value===$00&&(new d.Setting(t).setName(F(545)).setDesc(F(546)).addDropdown(async e=>{e.addOption($5q,F(547)),e.addOption($2k,F(548)),e.setValue(this.plugin.settings.InsertType).onChange(async e=>{this.plugin.settings.InsertType=e,this.settingTab.applySettingsUpdate(),this.debounceDisplay()})}),this.plugin.settings.InsertType===$2k&&await this.addDailySettings(t),new d.Setting(t).setName(F(543)).setDesc(F(542)).addDropdown(async e=>{e.addOption($2k,F(177)),e.addOption($9j,F(544)),e.setValue(this.plugin.settings.ProcessContentTarget).onChange(async e=>{this.plugin.settings.ProcessContentTarget=e,this.settingTab.applySettingsUpdate(),this.debounceDisplay()})})),this.LocationList.value===$9&&await this.addJournalSettings(t),this.LocationList.value!==$00&&this.LocationList.value!==$9||this.LocationList.value===$00&&this.plugin.settings.ProcessContentTarget!==$9j){let e=new d.Setting(t).setName(n).addText(e=>e.setPlaceholder(this.LocationList.value===$00?F(478):F(357)).setValue(this.LocationList.value!==$00&&this.LocationList.value!==$0g?this.target.replace(/\.thino\.(canvas|md)/g,``):this.target).onChange(async e=>{let t=this.LocationList.value===$0r?$aw:this.LocationList.value===$0i?$bj:``;this.updateValue(e.replace(/\.thino\.(canvas|md)/g,``)+t)}));this.LocationList.value===$00&&e.setDesc(F(8)),this.LocationList.value!==$00&&this.LocationList.value!==$0g&&e.controlEl.createSpan({text:`${this.LocationList.value===$0i?$bj:$aw}`})}this.LocationList.value===$0g&&new d.Setting(t).setName(F(623)).setDesc(F(624)).addToggle(e=>{e.setValue(this.plugin.settings.SetFileNameAfterCreate).onChange(async e=>{this.plugin.settings.SetFileNameAfterCreate=e,this.settingTab.debounceApplySettingsUpdate()})}),this.LocationList.value===$0i&&new d.Setting(t).setName(F(638)).setDesc(F(637)).addText(e=>{new fh(e.inputEl,e=>{this.plugin.settings.TagForFileTypeFiles=e.trim(),this.settingTab.debounceApplySettingsUpdate()}),e.setPlaceholder(F(644)).setValue(this.plugin.settings.TagForFileTypeFiles).onChange(async e=>{this.plugin.settings.TagForFileTypeFiles=e.trim(),this.settingTab.debounceApplySettingsUpdate(),P(this.plugin.settings)})}),this.LocationList.value===$0g&&(new d.Setting(t).setName(F(639)).setDesc(F(637)).addText(e=>{new fh(e.inputEl,e=>{this.plugin.settings.TagForMultiTypeFiles=e.trim(),this.settingTab.debounceApplySettingsUpdate()}),e.setPlaceholder(F(644)).setValue(this.plugin.settings.TagForMultiTypeFiles).onChange(async e=>{this.plugin.settings.TagForMultiTypeFiles=e.trim(),this.settingTab.debounceApplySettingsUpdate()})}),new d.Setting(t).setName(F(640)).setDesc(F(641)).addText(e=>{e.setPlaceholder(F(642)).setValue(this.plugin.settings.IgnoreFolderForMultiType.join(`,`)).onChange(async e=>{this.plugin.settings.IgnoreFolderForMultiType=e.split(`,`).map(e=>e.trim()).filter(e=>e!==``),this.settingTab.debounceApplySettingsUpdate()})}));let r=e.createDiv($1p),i=r.createEl($7,{text:F(305)}),a=r.createEl($7,{text:F(304)});a.onclick=async()=>{if(!this.verified&&this.LocationList.value!==$00&&this.LocationList.value!==$9){this.close(),Op();return}this.LocationList.target===$az||(this.LocationList.target===$18?this.plugin.settings[this.LocationList.target]=this.target:this.plugin.settings.MemoOtherSaveLocation={...this.plugin.settings.MemoOtherSaveLocation,[this.LocationList.target]:this.target}),this.LocationList.value===$0g&&R.checkDailyInMulti(this.plugin.settings),this.LocationList.target===$18&&(this.plugin.settings.InsertAfter=this.insertTarget),this.settingTab.applySettingsUpdate(),window.setTimeout(()=>{Y.updateTypeMemos(this.LocationList.value)},1e3),this.close()},i.onclick=async()=>{this.close()}}async addDailySettings(e){let t=await Up(),n=(this.plugin.settings?.DifferentInsertTarget?`[${F(31)}] `:``)+F(5);new d.Setting(e).setName(n).setDesc(F(6)).addText(e=>e.setPlaceholder(F(478)).setValue(this.insertTarget).onChange(async e=>{this.insertTarget=e})),this.plugin.settings?.DifferentInsertTarget&&new d.Setting(e).setName((this.plugin.settings?.DifferentInsertTarget?`[${F(32)}] `:``)+F(5)).setDesc(F(539)).addText(e=>{e.setPlaceholder(F(478)).setValue(this.plugin.settings.InsertAfterForTask).onChange(async e=>{this.plugin.settings.InsertAfterForTask=e,this.settingTab.applySettingsUpdate()})}),new d.Setting(e).setName(F(540)).setDesc(F(541)).addToggle(e=>e.setValue(this.plugin.settings.DifferentInsertTarget).onChange(async e=>{if(!t){Op();return}this.plugin.settings.DifferentInsertTarget=e,this.settingTab.applySettingsUpdate(),this.debounceDisplay()}))}updateJournalSettings(e){let t=JSON.parse(JSON.stringify(this.plugin.settings.JournalSettings));e(t),this.plugin.settings={...this.plugin.settings,JournalSettings:t}}async addJournalSettings(e){let t=this.plugin.settings.JournalSettings,n=t?.granularity||$04;new d.Setting(e).setName(F(167)).setDesc(F(168)).addDropdown(e=>{e.addOption($04,F(169)),e.addOption($22,F(170)),e.addOption($0s,F(171)),e.addOption($3b,F(172)),e.setValue(n).onChange(async e=>{this.updateJournalSettings(t=>{t.granularity=e}),this.settingTab.applySettingsUpdate(),this.debounceDisplay()})});let r=[{value:$02,label:`2025-04-03`},{value:`YYYY-MM-DD dddd`,label:`2025-04-03 Thursday`},{value:`YYYY-MM-DD ddd`,label:`2025-04-03 Thu`},{value:`YYYY/MM/DD dddd`,label:`2025/04/03 Thursday`},{value:`MM-DD dddd`,label:`04-03 Thursday`},{value:$2k,label:F(177)}],i=t?.headingDateFormat||$02,a=this._forceCustomHeading||!r.some(e=>e.value!==$2k&&e.value===i),o=a?$2k:i;if(new d.Setting(e).setName(F(175)).setDesc(F(176)).addDropdown(e=>{for(let t of r)e.addOption(t.value,t.label);e.setValue(o).onChange(async e=>{e===$2k?(this._forceCustomHeading=!0,this.settingTab.applySettingsUpdate(),this.debounceDisplay()):(this._forceCustomHeading=!1,this.updateJournalSettings(t=>{t.headingDateFormat=e}),this.settingTab.applySettingsUpdate(),this.debounceDisplay())})}),a){let t=new d.Setting(e).setName(F(178)),n=t.descEl;n.addClass(`moment-format-sample`),t.addMomentFormat(e=>{e.setDefaultFormat($02).setSampleEl(n).setValue(i).onChange(async e=>{this.updateJournalSettings(t=>{t.headingDateFormat=e.trim()||$02}),this.settingTab.debounceApplySettingsUpdate()})})}if(new d.Setting(e).setName(F(173)).setDesc(F(174)).addToggle(e=>{e.setValue(t?.useIndependentSettings||!1).onChange(async e=>{this.updateJournalSettings(t=>{t.useIndependentSettings=e}),this.settingTab.applySettingsUpdate(),this.debounceDisplay()})}),t?.useIndependentSettings){let r={day:{key:$50,label:$63,defaultFormat:$02},week:{key:`weekly`,label:`Weekly`,defaultFormat:$g5},month:{key:`monthly`,label:`Monthly`,defaultFormat:$b0},year:{key:`yearly`,label:`Yearly`,defaultFormat:$j9}}[n],i=t[r.key];new d.Setting(e).setName(F(179)).setDesc(F(180)+` ${F(r.label)} `+F(181)).addText(e=>{e.setPlaceholder(F(182)+` Journal/`+r.label).setValue(i?.folder||``).onChange(async e=>{this.updateJournalSettings(t=>{t[r.key].folder=e.trim()}),this.settingTab.debounceApplySettingsUpdate()})}),new d.Setting(e).setName(F(183)).setDesc(F(184)+` (${F(185)}: ${r.defaultFormat})`).addText(e=>{e.setPlaceholder(r.defaultFormat).setValue(i?.format||``).onChange(async e=>{this.updateJournalSettings(t=>{t[r.key].format=e.trim()}),this.settingTab.debounceApplySettingsUpdate()})}),new d.Setting(e).setName(F(186)).setDesc(F(187)).addText(e=>{e.setPlaceholder(F(182)+` Templates/Weekly`).setValue(i?.template||``).onChange(async e=>{this.updateJournalSettings(t=>{t[r.key].template=e.trim()}),this.settingTab.debounceApplySettingsUpdate()})})}}onClose(){let{contentEl:e}=this;e.empty()}};I(),ia(),sf();var YD=class{constructor(e){this.props=e}async display(){await this.renderDailyNotes(),this.renderFixedStrings(),await this.renderFileNameSettings(),this.renderViewArchiveSettings()}async renderDailyNotes(){let e=this.props,t=tD(e.containerEl,`📅 `+F(526));GD(e,t,F(13),F(14),$ay,[$na,F(31),`Task`,F(32)]),e.plugin.settings.EnabledLocationList.some(e=>e.value===$00)&&GD(e,t,F(509),F(510),$7f,[$17,$17,$dn,$dn])}renderFixedStrings(){let e=this.props,t=tD(e.containerEl,`🔗 `+F(731));UD(e,t,F(732),F(733),$cw,{redraw:200}),e.plugin.settings.UseMemoFixedStrings&&(WD(e,t,F(734),F(735),$h5),WD(e,t,F(736),F(737),$h6))}async renderFileNameSettings(){let{containerEl:e,settingTab:t,plugin:n,verified:r}=this.props,i=[{value:$00,target:$18,insert:$8j},{value:$0r,target:`MemoDefaultCanvasPath`},{value:$0g,target:`MemoDefaultMultiFilePath`},{value:$0i,target:`MemoDefaultSingleFilePath`},{value:$9,target:$az}],a=createFragment(),o=a.createDiv({cls:`memo-save-location-desc`});for(let e of i){let i=o.createDiv({cls:`memo-save-location-desc-item ${e.value}`});(0,d.setIcon)(i.createSpan({cls:`memo-save-location-desc-item-icon`}),ra.find(t=>t.title===e.value)?.icon||``);let a=e.value===$00?`${F(e.value)} (Deprecated)`:`${F(e.value)}`;i.createSpan({cls:`memo-save-location-desc-item-desc`,text:a});let s=i.createSpan({cls:`memo-save-location-desc-item-toggle`}),c=i.createSpan({cls:`memo-save-location-desc-item-setting`}),l=e.value===$00||e.value===$9;l||i.createSpan({cls:[`memo-save-location-desc-item-pro`,`user-pro-badge`],text:`PRO`}),new d.ToggleComponent(s).setValue(this.checkInList(e.value)).onChange(async i=>{if(!r&&!l){new d.Notice(F(994));return}i?await Y.updateTypeMemos(e.value):await Y.removeTypeMemos(e.value);let a=i?[...n.settings.EnabledLocationList.filter(t=>t.value!==e.value),e]:n.settings.EnabledLocationList.filter(t=>t.value!==e.value);n.settings.EnabledLocationList=a,a.length===1?n.settings.MemoSaveLocation=a[0].value:i?n.settings.MemoSaveLocation=e.value:a.some(e=>e.value===n.settings.MemoSaveLocation)||(n.settings.MemoSaveLocation=a[0]?.value||$00),t.applySettingsUpdate(),window.setTimeout(()=>{t.display()},500)}).setDisabled(n.settings.EnabledLocationList.length===1&&this.checkInList(e.value)),new d.ExtraButtonComponent(c).setIcon($42).onClick(()=>{new JD(t.app,t,n,e,r).open()})}let s=new d.Setting(e).setName(F(156)).setDesc(a);s.settingEl.toggleClass(`memo-save-location-setting`,!0),s.nameEl.toggleClass(`memo-save-location-title`,!0)}renderViewArchiveSettings(){UD(this.props,this.props.containerEl,F(763),F(764),$86)}checkInList(e){return this.props.plugin.settings.EnabledLocationList.find(t=>t.value===e)!==void 0}};I(),kp();var XD=class{constructor(e){this.props=e}async display(){await this.renderThemeSettings(),this.renderInterfaceDetails(),this.renderHeightSettings(),await this.renderEditorLocation()}async renderThemeSettings(){let{containerEl:e,settingTab:t,plugin:n,verified:r}=this.props;new d.Setting(e).setName(F(483)).setDesc(F(484)).addDropdown(async e=>{e.addOption($3f,`Modern`),e.addOption($lu,`Classic`),e.addOption($1a,`Focus (Pro)`),e.setValue(n.settings.DefaultThemeForThino).onChange(async i=>{if(i===$1a&&!r){Op(),e.setValue(n.settings.DefaultThemeForThino);return}n.settings.DefaultThemeForThino=i,t.applySettingsUpdate()})})}renderInterfaceDetails(){let e=this.props,t=tD(e.containerEl,`🎨 `+F(485));GD(e,t,F(149),F(150),$do,[$3q,F(519),$d9,F(520),`grass`,F(521),`flame`,F(522),`olive`,F(523),`ice`,F(524),`magenta`,F(525)]),WD(e,t,F(9),F(10),$cs,{placeholder:Ij.SaveMemoButtonLabel}),d.Platform.isMobile||UD(e,t,F(125),F(126),$ha),UD(e,t,F(753),F(754),$7z),UD(e,t,F(761),F(762),$bz),UD(e,t,F(759),F(760),$ak)}renderHeightSettings(){let{containerEl:e,settingTab:t,plugin:n}=this.props,r=(r,i,a,o)=>{new d.Setting(e).setName(r).setDesc(i).addText(e=>e.setPlaceholder(Ij[a].toString()).setValue(n.settings[a].toString()).onChange(async e=>{if(Number(e)<o&&Number(e)!==0){new d.Notice(F(668)+o);return}n.settings[a]=Number(e),t.debounceApplySettingsUpdate()}))};r(F(663),F(664),$ic,80),r(F(671),F(672),$bx,40)}async renderEditorLocation(){let e=this.props;d.Platform.isMobile&&e.plugin.settings.DefaultThemeForThino!==$1a&&(GD(e,e.containerEl,F(17),F(18),$ai,[$dw,F(33),$3c,F(34)],{redraw:200}),e.plugin.settings.DefaultEditorLocation!==$dw&&UD(e,e.containerEl,F(19),F(20),$am))}};I();var ZD=class{constructor(e){this.props=e}display(){let e=this.props,t=tD(e.containerEl,`📝 `+F(527));UD(e,t,F(29),F(30),$cx),GD(e,t,F(15),F(16),$fo,[$cv,$cv,$dm,$dm]),UD(e,t,F(757),F(758),$j3),UD(e,t,F(1014),F(1037),$bw),GD(e,t,F(154),F(155),$n7,[$0k,F(352),$67,F(353)])}};I();var QD=()=>[$1i,F(536),$a6,F(605),$09,F(307),$of,F(606)],$D=class{constructor(e){this.props=e}display(){let{containerEl:e}=this.props,t=tD(e,`📄 `+F(517));this.renderCopyMemosSettings(t);let n=tD(e,`🖼 `+F(518));this.renderShareMemosSettings(n),d.Platform.isMobile&&this.renderShareToThinosSettings()}renderCopyMemosSettings(e){let t=this.props;UD(t,e,F(21),F(22),`ShowTime`),UD(t,e,F(23),F(24),`ShowDate`,{redraw:!0}),t.plugin.settings.ShowDate&&UD(t,e,F(25),F(26),$bl)}renderShareMemosSettings(e){let t=this.props;if(WD(t,e,F(646),F(647),$ey,{placeholder:F(648),debounce:!0}),this.renderCustomMemoFooter(e),UD(t,e,F(145),F(146),$8l,{redraw:100}),!t.plugin.settings.SetCustomBackgroundImage)return;let n=(n,r,i,a)=>WD(t,e,`${n} [${i}]`,r,a,{placeholder:Ij[a],input:e=>void new Vb(e)}),r=F(97),i=F(96),a=F(99),o=F(98),s=F(566),c=F(614);n(r,a,s,$78),n(i,o,s,$7l),n(r,a,c,$4h),n(i,o,c,$4j)}renderCustomMemoFooter(e){let t=this.props;UD(t,e,F(147),F(148),$ct,{redraw:100}),t.plugin.settings.SetCustomMemoFooter&&WD(t,e,F(27),F(28),$ft,{placeholder:Ij.ShareFooterStart})}renderShareToThinosSettings(){let e=this.props,t=tD(e.containerEl,`💎 `+F(310));UD(e,t,F(528),void 0,$bv,{pro:!0,redraw:!0}),e.plugin.settings.ShareToThinoWithText&&(GD(e,t,F(604),void 0,$85,QD(),{redraw:!0}),e.plugin.settings.SharePrependType===$a6&&WD(e,t,F(530),void 0,$7a,{placeholder:F(532)}),GD(e,t,F(603),void 0,$90,QD(),{redraw:!0}),e.plugin.settings.ShareAppendType===$a6&&WD(e,t,F(529),void 0,$7p,{placeholder:F(532)}),GD(e,t,F(531),void 0,$79,[$3r,F(533),$ie,F(534),$6s,F(535),$1i,F(536)]))}};I();var eO=class{constructor(e){this.props=e}display(){let e=this.props,t=tD(e.containerEl,F(772)+` Thino`);$(t,F(776),`Thino v${e.plugin.manifest.version}`);let n=(e,n,r,i)=>$(t,e,n).addButton(e=>{e.setButtonText(r).onClick(i)});n(F(775),F(777),F(774),()=>{window.open($1d)}),n(F(783),F(784),F(782),()=>{yf(e.settingTab.app)}),UD(e,t,F(780),F(781),$f0)}};I();var tO=class{constructor(e){this.props=e}display(){let e=this.props,{containerEl:t,settingTab:n,plugin:r}=e,i=Fw(),a=(e,t,i,a,o,s,c)=>$(e,t,i).addText(e=>{let t=()=>String(r.settings[a]);e.setPlaceholder(c.placeholder).setValue(t()),e.inputEl.type=$0e,c.step&&(e.inputEl.step=c.step),e.inputEl.min=String(o),e.inputEl.max=String(s),e.inputEl.addEventListener($4n,()=>{let i=(c.parse??parseInt)(e.inputEl.value);!isNaN(i)&&i>=o&&i<=s?(r.settings[a]=i,n.applySettingsUpdate(),c.rebuild&&this.rebuildFSRS()):e.setValue(t())})}),o=tD(t,F(958));a(o,F(999),F(1021),$c3,.7,.99,{placeholder:String(i.request_retention),step:`0.01`,parse:parseFloat,rebuild:!0}),a(o,F(978),F(1023),$d6,1,36500,{placeholder:String(i.maximum_interval),rebuild:!0});let s={after:()=>this.rebuildFSRS()};UD(e,o,F(955),F(924),$ik,s),UD(e,o,F(956),F(1030),$d5,s),a(tD(t,F(1003)),F(946),F(979),$ij,1,9999,{placeholder:`100`});let c=tD(t,F(981));$(c,F(959),F(945)).addText(e=>{let t=r.settings.fsrsWeights;e.setPlaceholder(F(949)).setValue(t.length>0?t.join(`, `):``),e.inputEl.setCssStyles({width:$2n}),e.inputEl.addEventListener($4n,()=>{let i=e.inputEl.value.trim();if(!i){r.settings.fsrsWeights=[],n.applySettingsUpdate(),this.rebuildFSRS();return}let a=i.split(`,`).map(e=>parseFloat(e.trim()));a.length===21&&a.every(e=>!isNaN(e))?(r.settings.fsrsWeights=a,n.applySettingsUpdate(),this.rebuildFSRS()):(new d.Notice(F(1036)),e.setValue(t.length>0?t.join(`, `):``))})}),$(c,F(1002),F(1001)).addButton(e=>{e.setButtonText(F(1e3)).onClick(async()=>{r.settings.fsrsRequestRetention=i.request_retention,r.settings.fsrsMaximumInterval=i.maximum_interval,r.settings.fsrsEnableFuzz=i.enable_fuzz,r.settings.fsrsEnableShortTerm=i.enable_short_term,r.settings.fsrsWeights=[],r.settings.fsrsDailyLimit=100,n.applySettingsUpdate(),this.rebuildFSRS(),n.debounceDisplay()})})}rebuildFSRS(){let{plugin:e}=this.props,t={request_retention:e.settings.fsrsRequestRetention,maximum_interval:e.settings.fsrsMaximumInterval,enable_fuzz:e.settings.fsrsEnableFuzz,enable_short_term:e.settings.fsrsEnableShortTerm};e.settings.fsrsWeights.length===21&&(t.w=e.settings.fsrsWeights),Hw(t)}};I(),kp(),Zd(),_f();var nO=class{constructor(e){this.props=e}async display(){let{containerEl:e,settingTab:t,plugin:n,verified:r}=this.props,i=J.getState();if(new d.Setting(e).setName(F(954)).setDesc(F(922)).addToggle(e=>e.setValue(n.settings.superEnabled).onChange(async i=>{if(i&&!r){Op(),e.setValue(!1);return}n.settings.superEnabled=i,J.getState().setEnabled(i),await n.saveSettings(),t.debounceDisplay()})),n.settings.superEnabled)if($(tD(e,F(952)),F(953)).addDropdown(e=>{e.addOption($20,$nf),e.setValue(i.activeEmbeddingProvider).onChange(e=>{J.getState().setActiveEmbeddingProvider(e)})}),$(tD(e,F(933)),F(934)).addDropdown(e=>{e.addOption($20,$cr),e.addOption($48,$bn),gf()&&e.addOption($0t,$94),e.setValue(i.activeCompletionProvider).onChange(e=>{J.getState().setActiveCompletionProvider(e),t.debounceDisplay()})}),i.activeCompletionProvider===$0t){let r=!!n.settings.general?.userInfo?.sub;!r&&i.providers.pkmer?.apiKey&&J.getState().updateProvider($0t,{type:$0t,enabled:!1,apiKey:``,quotaInfo:void 0});let a=tD(e,$94),o=J.getState().providers.pkmer||{},s=r&&!!o.apiKey;s?o.quotaInfo&&$(a,F(998),`${o.quotaInfo.remaining} / ${o.quotaInfo.total} calls`):$(a,F(998),F(976)).addButton(e=>{e.setButtonText(F(285)).onClick(async()=>{e.setDisabled(!0);try{if(await n.pkmerAuth.login(),await n.verify()){let e=n.pkmerAuth.aiToken;if(e){let t=5e5,r=n.settings.general?.userInfo?.ai_quota,i=J.getState();i.updateProvider($0t,{type:$0t,enabled:!0,apiKey:e,baseUrl:$2q,completionModel:i.providers.pkmer?.completionModel||$3t,quotaInfo:r?{remaining:Math.floor(r.remainingQuota/t),total:Math.floor(r.quota/t)}:void 0})}t.debounceDisplay()}}catch(e){new d.Notice(`${e instanceof Error?e.message:`Login failed`}`)}finally{e.setDisabled(!1)}})}),$(a,F(881)).addDropdown(e=>{let t=t=>{for(let n of t)e.addOption(n.id,`${n.displayName} — ${n.description} (${n.price}/call)`)};t(tp),e.setValue(o.completionModel||$3t).onChange(e=>{J.getState().updateProvider($0t,{completionModel:e})}),s&&np(o.apiKey,!0).then(n=>{let r=e.getValue();e.selectEl.empty(),t(n),e.setValue(r)})})}else{let t=(e,t,n,r,i,a)=>$(e,t).addText(e=>{let t=i===$np;t&&(e.inputEl.type=$41),e.setPlaceholder(a).setValue(r[i]||``).onChange(e=>{J.getState().updateProvider(n,t?{type:n,enabled:!0,apiKey:e}:{[i]:e})})}),n=tD(e,$cr),r=i.providers.openai||{};t(n,$fh,$20,r,$np,`sk-...`),t(n,`Base URL`,$20,r,`baseUrl`,$a3),t(n,F(939),$20,r,$hc,`gpt-4o-mini`);let a=tD(e,$bn),o=i.providers.anthropic||{};t(a,$fh,$48,o,$np,`sk-ant-...`),t(a,F(881),$48,o,$hc,`claude-sonnet-4-20250514`)}}};jp(),Gp();var rO=Ap(`os`),iO=class{plugin;secretKey;constructor(e){this.plugin=e,this.secretKey=this.generateSecretKey()}async getDeviceId(){return await Hp()}async getSystemInfo(){let e=await this.getDeviceId(),t;if(rO)t=JSON.stringify({hostname:rO.hostname(),platform:rO.platform(),machineid:e});else{let n=await window.Capacitor?.Plugins.Device.getInfo(),r=n?.model,i=n?.platform;t=JSON.stringify({hostname:r||($e8+d.Platform.isMobile?Math.random().toString(36).substring(7):``),platform:i||$e8,machineid:e})}return vD(t)}generateSecretKey(){let e=this.plugin.manifest.version;return vD(`thino-api-secret-${e}`)}generateSignature(e,t){let n=`${e}-${t}-${this.secretKey}`,r=0;for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);r=(r<<5)-r+t,r&=r}return vD(Math.abs(r).toString(36))}async generateToken(e=1){try{let t=await this.getDeviceId(),n=Date.now(),r=await this.getSystemInfo(),i={appId:t,timestamp:n,signature:this.generateSignature(r,n),version:this.plugin.manifest.version,expiryHours:e};return vD(JSON.stringify(i))}catch(e){throw console.error(`Failed to generate token:`,e),Error(`Token generation failed`)}}async validateToken(e){try{if(!e)return!1;let t=JSON.parse(ED(e)),n=await this.getDeviceId();if(t.appId!==n)return console.warn(`Token validation failed: Invalid app ID`),!1;if(Date.now()-t.timestamp>(t.expiryHours||1)*60*60*1e3)return console.warn(`Token validation failed: Token expired`),!1;if(t.version!==this.plugin.manifest.version)return console.warn(`Token validation failed: Version mismatch`),!1;let r=await this.getSystemInfo(),i=this.generateSignature(r,t.timestamp);return t.signature===i?!0:(console.warn(`Token validation failed: Invalid signature`),!1)}catch(e){return console.error(`Token validation error:`,e),!1}}async isUserVerified(){try{return await Up()}catch(e){return console.error(`User verification check failed:`,e),!1}}async getTokenInfo(e){try{return JSON.parse(ED(e))}catch(e){return console.error(`Failed to parse token info:`,e),null}}async generateAuthHeader(e=1){return`Bearer ${await this.generateToken(e)}`}extractTokenFromHeader(e){return!e||!e.startsWith(`Bearer `)?null:e.substring(7)}};I(),kp(),Gp(),Ia();var aO={pro:!0},oO=class{constructor(e){this.props=e}display(){let e=this.props,{containerEl:t,settingTab:n,plugin:r,verified:i}=e,a=tD(t,`💎 Thino`);$(a,F(206),F(207)).addDropdown(async e=>{for(let t of r.settings.EnabledLocationList)e.addOption(t.value,F(t.value));e.setValue(r.settings.MemoSaveLocation||r.settings.EnabledLocationList[0].value).onChange(async e=>{if(!i){Op();return}r.settings.MemoSaveLocation=e,n.applySettingsUpdate()})}),UD(e,a,F(684),F(685),$fl,aO),UD(e,a,F(686),F(687),$ib,aO),UD(e,a,F(465),F(466),$cy,{pro:!0,redraw:!0}),r.settings.addTagAutomatically&&(GD(e,a,F(463),F(464),$id,[$j2,F(477),$bp,F(476)]),UD(e,a,F(467),F(468),$f1));let o=tD(t,`💎 `+F(643));UD(e,o,F(743),F(744),$88,aO),UD(e,o,F(739),F(740),$he,aO),$(o,F(741),F(742)).setDisabled(!i||!r.settings.enableWordCount).addText(e=>{e.inputEl.type=$0e,e.setValue(r.settings.maxWordCount.toString()).onChange(async e=>{let t=parseInt(e);!isNaN(t)&&t>=0&&(r.settings.maxWordCount=t,n.applySettingsUpdate())})}),UD(e,o,F(683),void 0,$bm,{after:e=>document.body.toggleClass($fe,e)}),d.Platform.isMobile&&UD(e,o,F(682),void 0,$kl,aO),this.addDailyMarkSettings(o),GD(e,o,F(479),F(480),$je,[$3q,`Default`,$o0,`Fluent`,$1g,`Inline`],aO),UD(e,o,F(674),F(673),$9p,aO),this.addMomentsSettings(o);let s=tD(t,`💎 `+F(139));this.addGlobalSettings(s)}addDailyMarkSettings(e){let t=this.props;UD(t,e,F(407),F(408),$5s,{pro:!0,redraw:!0}),t.plugin.settings.showDayMark&&(GD(t,e,F(440),F(441),$51,[$04,$04,$22,$22,$0s,$0s,$m1,$m1,$3b,$3b]),UD(t,e,F(537),F(538),$hg,aO))}addMomentsSettings(e){let{settingTab:t,plugin:n,verified:r}=this.props;$(e,F(481),F(482)).addText(e=>{new Vb(e.inputEl),e.setPlaceholder(`URL`).setValue(n.settings.MomentsBackgroundImage).onChange(async e=>{r&&(n.settings.MomentsBackgroundImage=e,t.applySettingsUpdate())})})}addGlobalSettings(e){let t=this.props;this.addHttpServerSettings(e),UD(t,e,F(195),F(196),$77,{pro:!0,redraw:100}),t.plugin.settings.CaptureKey.EnableCaptureKey&&(WD(t,e,F(197),F(198),$6k,{pro:!0,placeholder:Ij.CaptureKey.OpenThinoGlobally}),UD(t,e,F(269),void 0,$8i,aO))}async addHttpServerSettings(e){let t=this.props,{settingTab:n,plugin:r}=t,i=await Up(),a={...t,verified:i},o=()=>window.setTimeout(()=>{r.stopServer(),r.initServer()},1e3);if($(e,F(151)).setDisabled(!i).addToggle(e=>e.setValue(r.settings.EnabledHttpApi).onChange(async e=>{if(!i){Op();return}r.settings.EnabledHttpApi=e,n.applySettingsUpdate(),window.setTimeout(()=>{r.settings.EnabledHttpApi?r.initServer():r.stopServer(),n.display()},100)})),!r.settings.EnabledHttpApi)return;$(e,$bk,$24).addButton(e=>{e.setButtonText($i8).setTooltip(`Generate a new API token for external access`).onClick(async()=>{if(!i){Op();return}new sO(n.app,r,e=>{(async()=>{try{let t=new iO(r);if(!await t.isUserVerified()){new d.Notice(`Pro license required to generate API token`);return}let i=await t.generateToken(e),a=await t.generateAuthHeader(e),o=e*3600;new cO(n.app,i,a,o,e).open()}catch(e){console.error(`Token generation error:`,e),new d.Notice(`Failed to generate token: `+e.message)}})()}).open()})}).addButton(e=>{e.setButtonText(`Test API`).setTooltip(`Test API connection`).onClick(async()=>{if(!i){Op();return}try{let e=new iO(r);if(!await e.isUserVerified()){new d.Notice(`Pro license required for API access`);return}let t=await e.generateAuthHeader(1),n=await(0,d.requestUrl)({url:`http://${r.settings.HttpApiIpType}:${r.settings.HttpApiPort}/list?count=1`,headers:{Authorization:t},throw:!1});if(n.status===200){let e=n.json;new d.Notice(`API test successful! Found `+(e.thinos?.length||0)+` thinos.`)}else throw Error(`API test failed: ${n.status}`)}catch(e){console.error(`API test error:`,e),new d.Notice(`API test failed: `+(e instanceof Error?e.message:String(e)))}})}).addButton(e=>{e.setButtonText(`API Documentation`).setTooltip(`View API documentation and examples`).onClick(async()=>{new fO(n.app,r).open()})});let s=e=>()=>window.open(e,$1l);$(e,F(676),F(677)).addButton(e=>{e.setButtonText(`GitHub`).onClick(s(`https://github.com/quorafind/thino-capture-releases`))}).addButton(e=>{e.setButtonText(`Chrome Web Store`).onClick(s(`https://chromewebstore.google.com/detail/thino-capture/oppagjehiimpjpjmgbfmanlnbpbcecff`))}),WD(a,e,F(152),F(153),$m6,{pro:!0,placeholder:Ij.HttpApiPort,after:o}),UD(a,e,F(444),F(445),$ew,{pro:!0,after:o}).setDisabled(!i),GD(a,e,F(446),F(447),$j4,[$i0,$i0,$80,$80],{pro:!0,after:o}),this.addAppendPrependSettings(i,e)}addAppendPrependSettings(e,t){let n={...this.props,verified:e};if(UD(n,t,F(528),void 0,$6j,{pro:!0,redraw:!0}),!n.plugin.settings.AppendOrPrependTextViaServer)return;let r=F(532);WD(n,t,F(670),void 0,$fs,{placeholder:r}),WD(n,t,F(669),void 0,$h1,{placeholder:r}),GD(n,t,F(531),void 0,$by,[$3r,F(533),$ie,F(534),$6s,F(535),$1i,F(536)])}},sO=class extends d.Modal{plugin;onGenerate;constructor(e,t,n){super(e),this.plugin=t,this.onGenerate=n}onOpen(){let{contentEl:e}=this;e.parentElement?.classList.add(`token-generation-modal`),this.titleEl.setText(`Generate API Token`),e.createDiv($31,e=>{e.setText(`Choose the expiration time for your API token. Longer expiration times are less secure but more convenient.`)});let t=e.createDiv(`token-form-container`),n=t.createDiv(`expiry-section`);n.createEl($6x,{text:`Token Expiration Time:`});let r=[{value:1,label:`1 Hour (Recommended)`},{value:6,label:`6 Hours`},{value:12,label:`12 Hours`},{value:24,label:`1 Day`},{value:72,label:`3 Days`},{value:168,label:`1 Week`},{value:720,label:`30 Days (Maximum)`}],i=1,a=n.createDiv(`radio-container`);r.forEach(e=>{let t=a.createDiv(`radio-item`),n=t.createEl($09,{type:`radio`,attr:{name:`expiry`,value:e.value.toString()}});e.value===1&&(n.checked=!0),n.addEventListener($e2,()=>{n.checked&&(i=e.value)}),t.createEl($l1,{text:e.label}).addEventListener($05,()=>{n.checked=!0,i=e.value})});let o=t.createDiv(`custom-section`);o.createEl(`h4`,{text:`Or enter custom hours (1-720):`});let s=o.createEl($09,{type:$0e,attr:{min:`1`,max:`720`,placeholder:`Custom hours...`}});s.addEventListener($09,()=>{let e=parseInt(s.value);e>=1&&e<=720&&(i=e,a.querySelectorAll(`input[type="radio"]`).forEach(e=>{e.checked=!1}))}),t.createDiv(`warning-section`).createEl(`p`,{text:`⚠️ Security Note: Longer expiration times increase security risk. Only use extended periods if necessary.`,cls:`security-warning`});let c=e.createDiv($1p),l=c.createEl($7,{text:$n5});l.onclick=()=>this.close();let u=c.createEl($7,{text:$i8,cls:$2c});u.onclick=()=>{this.onGenerate(i),this.close()}}onClose(){let{contentEl:e}=this;e.empty()}},cO=class extends d.Modal{token;authHeader;expiresIn;expiryHours;constructor(e,t,n,r,i){super(e),this.token=t,this.authHeader=n,this.expiresIn=r,this.expiryHours=i}onOpen(){let{contentEl:e}=this;e.parentElement?.classList.add(`token-display-modal`),this.titleEl.setText(`API Token Generated`),e.createDiv($31,e=>{e.setText(`Your API token has been generated successfully. Copy and save it securely as it will expire in 1 hour.`)});let t=e.createDiv(`token-container`),n=t.createDiv($be);n.createEl($6x,{text:`Token:`});let r=n.createEl($0o,{cls:$bd,attr:{readonly:$0q,rows:`3`}});r.value=this.token;let i=t.createDiv($be);i.createEl($6x,{text:`Authorization Header:`});let a=i.createEl($0o,{cls:$bd,attr:{readonly:$0q,rows:`2`}});a.value=this.authHeader;let o=t.createDiv($be);o.createEl($6x,{text:`Usage Example:`});let s=o.createEl($0o,{cls:$bd,attr:{readonly:$0q,rows:`4`}});s.value=`curl -X POST http://127.0.0.1:43999/create \\
  155. -H "Authorization: ${this.authHeader}" \\
  156. -H "Content-Type: application/json" \\
  157. -d '{"text": "Hello from API", "type": "DAILY"}'`;let c=e.createDiv(`expiry-info`),l=this.expiryHours>=24?`\u23F0 This token will expire in ${Math.floor(this.expiryHours/24)} day(s).`:`\u23F0 This token will expire in ${this.expiryHours} hour(s).`;c.createEl(`p`,{text:l,cls:`expiry-warning`});let u=e.createDiv($1p),f=u.createEl($7,{text:`Copy Token`});f.onclick=async()=>{new d.Notice(await R.copyTextToClipboard(this.token)?`Token copied to clipboard`:$1j)};let p=u.createEl($7,{text:`Copy Auth Header`});p.onclick=async()=>{new d.Notice(await R.copyTextToClipboard(this.authHeader)?`Authorization header copied to clipboard`:$1j)};let m=u.createEl($7,{text:$9e});m.onclick=()=>this.close()}onClose(){let{contentEl:e}=this;e.empty()}},lO=[{title:$kj,method:$25,path:`/create`,description:`Create a new thino with text content and optional images`,parameters:[[$0l,$q,!0,`The content of the thino`],[`isList`,$2s,!1,`Whether to format as list item (default: false)`],[$gm,$q,!1,`Save location type (DAILY, CANVAS, MULTI, FILE)`],[`imageList`,`array`,!1,`Array of base64 encoded images`],[`sourceLink`,$q,!1,`Source URL to append to the thino`]],body:{text:`This is my new thino`,isList:!1,type:$00}},{title:`Search Thinos`,method:$3i,path:`/search`,query:`?keyword=meeting`,description:`Search for thinos containing specific keywords`,parameters:[[`keyword`,$q,!0,`Search keyword`]]},{title:`List Thinos`,method:$3i,path:`/list`,query:`?count=20`,description:`Get a list of recent thinos`,parameters:[[$d2,$0e,!1,`Number of thinos to return (1-100, default: 10)`]]},{title:`Get Settings Info`,method:$3i,path:`/info`,query:`?getSettings=true`,description:`Get current plugin settings information`,parameters:[[`getSettings`,$2s,!0,`Must be true to retrieve settings`]]}],uO=[[`cURL`,(e,t)=>`curl -X ${t.method} ${e}${t.path}${t.query??``} \\\n -H "Authorization: Bearer <your-token>"`+(t.body?` \\\n -H "Content-Type: application/json" \\\n -d '${JSON.stringify(t.body,null,2)}'`:``)],[`Python`,(e,t)=>`import requests
  158. import json
  159. url = "${e}${t.path}${t.query??``}"
  160. headers = {
  161. "Authorization": "Bearer <your-token>"${t.body?`,
  162. "Content-Type": "application/json"`:``}
  163. }
  164. ${t.body?`\ndata = ${JSON.stringify(t.body,null,4)}\n\nresponse = requests.${t.method.toLowerCase()}(url, headers=headers, json=data)`:`\nresponse = requests.${t.method.toLowerCase()}(url, headers=headers)`}
  165. print(response.json())`],[`Node.js`,(e,t)=>`const fetch = require('node-fetch');
  166. const url = '${e}${t.path}${t.query??``}';
  167. const options = {
  168. method: '${t.method}',
  169. headers: {
  170. 'Authorization': 'Bearer <your-token>'${t.body?`,
  171. 'Content-Type': 'application/json'`:``}
  172. }${t.body?`,\n body: JSON.stringify(${JSON.stringify(t.body,null,8)})`:``}
  173. };
  174. fetch(url, options)
  175. .then(response => response.json())
  176. .then(data => console.log(data))
  177. .catch(error => console.error('Error:', error));`]],dO=[`401 Unauthorized - Missing or invalid token`,`403 Forbidden - Pro license required`,`404 Not Found - Endpoint not found`,`405 Method Not Allowed - Wrong HTTP method`,`413 Request Too Large - Request body too large`,`429 Too Many Requests - Rate limit exceeded`],fO=class extends d.Modal{plugin;constructor(e,t){super(e),this.plugin=t}onOpen(){let{contentEl:e}=this;e.parentElement?.classList.add(`api-documentation-modal`),this.titleEl.setText(`Thino API Documentation`);let t=`http://${this.plugin.settings.HttpApiIpType}:${this.plugin.settings.HttpApiPort}`,n=e.createDiv(`api-doc-container`),r=(e,t)=>{let r=n.createDiv(`api-section`);return r.createEl(`h2`,{text:e}),t&&r.createEl(`p`,{text:t}),r},i=(e,t,n)=>{e.createEl(`h4`,{text:t}),e.createEl(`pre`).createEl($d1,{text:n})},a=r(`Overview`,`The Thino HTTP API allows you to interact with your thinos programmatically. All endpoints require authentication using a Bearer token.`).createDiv(`server-info`);a.createEl($7x,{text:`Server Address: `}),a.createSpan({text:t}),i(r(`Authentication`,`All API requests require a Bearer token in the Authorization header. Generate a token using the "Generate Token" button above.`).createDiv($kv),`Authorization Header Format:`,`Authorization: Bearer <your-token-here>`);let o=r(`API Endpoints`);for(let e of lO)this.createEndpointSection(o,t,e);let s=r(`Response Format`,`All API responses return JSON in the following format:`).createDiv($kv);i(s.createDiv(),`Success Response:`,JSON.stringify({status:$3a,data:$6f},null,2)),i(s.createDiv(),`Error Response:`,JSON.stringify({status:$12,message:`Error description`},null,2));let c=r(`Common Error Codes`).createEl(`ul`);for(let e of dO)c.createEl(`li`,{text:e});let l=e.createDiv($1p).createEl($7,{text:$9e});l.onclick=()=>this.close()}createEndpointSection(e,t,n){let r=e.createDiv(`endpoint-section`),i=r.createDiv(`endpoint-header`);if(i.createEl($6x,{text:n.title}),i.createSpan({cls:`method-badge method-${n.method.toLowerCase()}`,text:n.method}),i.createEl($d1,{cls:`endpoint-path`,text:n.path}),r.createEl(`p`,{text:n.description}),n.parameters.length>0){r.createEl(`h4`,{text:`Parameters:`});let e=r.createEl($2x,{cls:`param-table`}),t=e.createEl(`tr`);for(let e of[`Name`,`Type`,`Required`,`Description`])t.createEl(`th`,{text:e});for(let[t,r,i,a]of n.parameters){let n=e.createEl(`tr`);for(let e of[t,r,i?`Yes`:`No`,a])n.createEl(`td`,{text:e})}}r.createEl(`h4`,{text:`Examples:`});let a=r.createDiv(`example-tabs`),o=a.createDiv(`tab-buttons`),s=a.createDiv(`tab-contents`);uO.forEach(([e,r],i)=>{let a=i===0?` active`:``,c=o.createEl($7,{text:e,cls:$gg+a}),l=s.createDiv(`tab-content`+a),u=r(t,n);l.createEl(`pre`).createEl($d1,{text:u}),this.addCopyButton(l,u),c.onclick=()=>{o.querySelectorAll(`.tab-btn`).forEach(e=>e.removeClass($0v)),s.querySelectorAll(`.tab-content`).forEach(e=>e.removeClass($0v)),c.addClass($0v),l.addClass($0v)}})}addCopyButton(e,t){let n=e.createEl($7,{text:`Copy`,cls:`copy-btn`});n.onclick=async()=>{let e=await R.copyTextToClipboard(t);n.setText(e?`Copied!`:`Copy failed`),window.setTimeout(()=>n.setText(`Copy`),2e3)}}onClose(){let{contentEl:e}=this;e.empty()}},pO,mO,hO,gO,_O,vO=o((()=>{pO={none:`None`,low:`Low`,medium:`Medium`,high:`High`,xhigh:`Extra High`},mO={default:`Default`,"accept-edits":`Accept Edits`,"plan-mode":`Plan Mode`,"dont-ask":`Don't Ask`,"bypass-permissions":`Bypass Permissions`},hO=`You are responding via a WeChat bot. Follow these rules for file/media output:
  178. 1. To send a local file to the user, output its ABSOLUTE path on a single line by itself (e.g. /home/user/project/report.pdf). The bot will automatically upload and send it.
  179. 2. IMPORTANT: Files can only be sent if they are located within the current working directory (cwd) or the vault directory. If a file is outside these directories, COPY or MOVE it into the cwd first, then output the new path.
  180. 3. To send an image, use markdown image syntax: ![description](https://url-to-image.png). The bot will download and send it as an image message.
  181. 4. Supported file types for auto-sending: pdf, doc/docx, xls/xlsx, ppt/pptx, zip, txt, csv, png, jpg, gif, webp, mp4, mov.
  182. 5. For text responses, use plain language. Markdown formatting (headers, bold, lists) will be converted to plain text for WeChat display.`,gO={enabled:!1,defaultAgent:$5u,agents:{claude:{type:$b3,command:$5u,aliases:[`cc`]},codex:{type:$b3,command:$2w,aliases:[`cx`]},gemini:{type:$b3,command:$9z,aliases:[`gm`]}}},_O={info(){},warn(){},error(){}}}));async function yO(e){let t=await(0,d.requestUrl)({url:e,throw:!1});if(t.status>=400)throw Error(`HTTP ${t.status}: ${t.text}`);return t.json}function bO(e,t){return new Promise((n,r)=>{if(t.aborted){r(Error($ln));return}let i=()=>r(Error($ln));t.addEventListener($gq,i,{once:!0}),e.then(e=>{t.removeEventListener($gq,i),n(e)},e=>{t.removeEventListener($gq,i),r(e instanceof Error?e:Error(String(e)))})})}function xO(){let e=SO.randomBytes(4).readUInt32LE();return Buffer.from(e.toString()).toString($4m)}var SO,CO,wO,TO=o((()=>{jp(),SO=Ap($ih),CO=`https://ilinkai.weixin.qq.com`,wO=class{baseURL;botToken;botId;wechatUIN;constructor(e){this.baseURL=e.baseurl||CO,this.botToken=e.bot_token,this.botId=e.ilink_bot_id,this.wechatUIN=xO()}async getUpdates(e,t){let n={get_updates_buf:e,base_info:{channel_version:`1.0.0`}};return this.post(`/ilink/bot/getupdates`,n,t)}async sendMessage(e){return this.post(`/ilink/bot/sendmessage`,e)}async getConfig(e,t){let n={ilink_user_id:e,context_token:t,base_info:{}};return this.post(`/ilink/bot/getconfig`,n)}async sendTyping(e,t,n){let r={ilink_user_id:e,typing_ticket:t,status:n,base_info:{}};return this.post(`/ilink/bot/sendtyping`,r)}async getUploadURL(e){return this.post(`/ilink/bot/getuploadurl`,e)}async post(e,t,n){if(n?.aborted)throw Error($ln);let r=(0,d.requestUrl)({url:this.baseURL+e,method:$25,headers:this.headers(),body:JSON.stringify(t),throw:!1}),i=n?await bO(r,n):await r;if(i.status>=400)throw Error(`HTTP ${i.status}: ${i.text}`);return i.json}headers(){return{"Content-Type":$0d,AuthorizationType:`ilink_bot_token`,Authorization:`Bearer ${this.botToken}`,"X-WECHAT-UIN":this.wechatUIN}}}}));async function EO(){return yO(kO)}async function DO(e,t,n){let r=AO+encodeURIComponent(e);for(;;){if(n?.aborted)throw Error($h4);let e;try{e=await yO(r)}catch{if(n?.aborted)throw Error($h4);continue}switch(e.status){case NO:{let n={bot_token:e.bot_token,ilink_bot_id:e.ilink_bot_id,baseurl:e.baseurl,ilink_user_id:e.ilink_user_id};return t?.onConfirmed?.(n),n}case PO:throw Error($h7);case MO:t?.onScanned?.();break;case jO:default:break}}}async function OO(e,t){let n=await EO();return e?.onQRCode?.(n.qrcode,n.qrcode_img_content),DO(n.qrcode,e,t)}var kO,AO,jO,MO,NO,PO,FO=o((()=>{TO(),kO=`https://ilinkai.weixin.qq.com/ilink/bot/get_bot_qrcode?bot_type=3`,AO=`https://ilinkai.weixin.qq.com/ilink/bot/get_qrcode_status?qrcode=`,jO=`wait`,MO=`scaned`,NO=$ov,PO=`expired`}));function IO(e,t){return new Promise(n=>{if(t?.aborted){n();return}let r=window.setTimeout(n,e);t?.addEventListener($gq,()=>{window.clearTimeout(r),n()},{once:!0})})}var LO,RO,zO,BO,VO,HO,UO=o((()=>{LO=5,RO=3e3,zO=6e4,BO=5e3,VO=-14,HO=class{client;handler;getUpdatesBuf;failures=0;abortController=null;running=!1;log;loadBuf;saveBuf;constructor(e,t,n){this.client=e,this.handler=t,this.loadBuf=n.loadBuf,this.saveBuf=n.saveBuf,this.log=n.logger,this.getUpdatesBuf=this.loadBuf()}get isRunning(){return this.running}async run(){if(this.running)return;this.running=!0,this.abortController=new AbortController;let{signal:e}=this.abortController;try{for(;!e.aborted;)try{let t=await this.client.getUpdates(this.getUpdatesBuf,e);if(this.failures=0,t.errcode===VO){this.log.warn(`[monitor] session expired, resetting sync buf`),this.getUpdatesBuf=``,this.saveBuf(``),await IO(BO,e);continue}if(t.ret!==0&&t.errcode){this.log.warn(`[monitor] server error: ret=${t.ret} errcode=${t.errcode} errmsg=${t.errmsg}`);continue}if(t.get_updates_buf&&(this.getUpdatesBuf=t.get_updates_buf,this.saveBuf(this.getUpdatesBuf)),t.msgs)for(let e of t.msgs)try{this.handler(this.client,e)}catch(e){this.log.error(`[monitor] handler error:`,e)}}catch(t){if(e.aborted)break;this.failures++;let n=this.calcBackoff();this.log.warn(`[monitor] GetUpdates error (${this.failures}/${LO}, backoff=${n}ms):`,t instanceof Error?t.message:t),await IO(n,e)}}finally{this.running=!1}}stop(){this.abortController?.abort()}calcBackoff(){let e=RO;for(let t=1;t<this.failures;t++)if(e*=2,e>zO)return zO;return e}}}));async function WO(e,t,n,r){let i=ZO.randomBytes(16),a=ZO.randomBytes(16),o=i.toString($mo),s=a.toString($mo),c=ZO.createHash(`md5`).update(t).digest($mo),l=XO(t.length),u={filekey:o,media_type:r,to_user_id:n,rawsize:t.length,rawfilemd5:c,filesize:l,no_need_thumb:!0,aeskey:s,base_info:{}},d=await e.getUploadURL(u);if(d.ret!=null&&d.ret!==0)throw Error(`getUploadURL failed: ret=${d.ret} errmsg=${d.errmsg}`);let f=JO(t,a);return{downloadParam:await KO(f,d.upload_param,o),aesKeyHex:s,fileSize:t.length,cipherSize:f.length}}function GO(e){return Buffer.from(e).toString($4m)}async function KO(e,t,n){let r=await(0,d.requestUrl)({url:`${QO}/upload?encrypted_query_param=${encodeURIComponent(t)}&filekey=${encodeURIComponent(n)}`,method:$25,headers:{"Content-Type":`application/octet-stream`},body:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),throw:!1});if(r.status>=400)throw Error(`CDN upload HTTP ${r.status}: ${r.text}`);let i=r.headers[`x-encrypted-param`]||r.headers[`X-Encrypted-Param`];if(!i)throw Error(`CDN upload: missing X-Encrypted-Param header`);return i}async function qO(e,t){let n=await(0,d.requestUrl)({url:`${QO}/download?encrypted_query_param=${encodeURIComponent(e)}`,method:$3i,throw:!1});if(n.status>=400)throw Error(`CDN download HTTP ${n.status}`);let r=Buffer.from(n.arrayBuffer),i=Buffer.from(t,$4m).toString(`utf-8`);return YO(r,Buffer.from(i,$mo))}function JO(e,t){let n=16-e.length%16,r=Buffer.alloc(e.length+n);e.copy(r),r.fill(n,e.length);let i=ZO.createCipheriv($m9,t,null);return i.setAutoPadding(!1),Buffer.concat([i.update(r),i.final()])}function YO(e,t){let n=ZO.createDecipheriv($m9,t,null);n.setAutoPadding(!1);let r=Buffer.concat([n.update(e),n.final()]);if(r.length===0)return r;let i=r[r.length-1];return i>0&&i<=16?r.subarray(0,r.length-i):r}function XO(e){return(Math.floor((e+1)/16)+1)*16}var ZO,QO,$O=o((()=>{jp(),ZO=Ap($ih),QO=`https://novac2c.cdn.weixin.qq.com/c2c`})),ek,tk=o((()=>{ek=class{handlers=new Map;on(e,t){return this.handlers.has(e)||this.handlers.set(e,new Set),this.handlers.get(e).add(t),this}off(e,t){return this.handlers.get(e)?.delete(t),this}emit(e,t){for(let n of this.handlers.get(e)??[])try{n(t)}catch(t){console.error(`[Emitter] handler error on "${e}":`,t)}}removeAllListeners(){this.handlers.clear()}}})),nk,rk,ik,ak,ok,sk=o((()=>{nk={None:0,User:1,Bot:2},rk={New:0,Generating:1,Finish:2},ik={None:0,Text:1,Image:2,Voice:3,File:4,Video:5},ak={Image:1,Video:2,File:3,Voice:4},ok={Typing:1,Cancel:2}}));function ck(e){for(let t of e.item_list||[])if(t.type===ik.Text&&t.text_item)return t.text_item.text;return``}function lk(e,t){let n=e.trim();if(!n.startsWith(`/`))return{command:null,text:n};let r=n.slice(1),i=r.indexOf(` `),a=i<=0?r:r.slice(0,i);return{command:t.get(a)||a,text:i<=0?``:r.slice(i+1).trim()}}async function uk(e,t,n,r,i){let a={msg:{from_user_id:e.botId,to_user_id:t,client_id:dk.randomUUID(),message_type:nk.Bot,message_state:rk.Finish,item_list:[n],context_token:r},base_info:{}},o=await e.sendMessage(a);if(o.ret!=null&&o.ret!==0)throw Error(`${i} failed: ret=${o.ret} errmsg=${o.errmsg}`)}var dk,fk,pk=o((()=>{jp(),TO(),FO(),UO(),$O(),tk(),vO(),sk(),dk=Ap($ih),fk=class extends ek{options;log;storage;client=null;monitor=null;credentials=null;syncBuf=``;commands=new Map;aliases=new Map;defaultHandler=null;contextTokens=new Map;constructor(e,t){super(),this.options={defaultReply:!1,...t},this.log=t?.logger===!1?_O:t?.logger||console,this.storage=e,t?.credentials&&(this.credentials=t.credentials)}command(e,t){let n=Array.isArray(e)?e:[e],r=n[0];this.commands.set(r,t);for(let e of n)this.aliases.set(e,r);return this}onDefault(e){return this.defaultHandler=e,this}async login(e){let t=await OO({onQRCode:(e,t)=>this.emit(`qrcode`,{url:e,imageBase64:t}),onScanned:()=>this.emit($m2,void 0),onConfirmed:e=>{this.storage.saveCredentials(e),this.emit(`login`,e)}},e);return this.credentials=t,t}async start(){this.credentials||=this.storage.loadCredentials(),this.credentials||await this.login();let e=this.credentials;this.client=new wO(e),this.syncBuf=await this.storage.loadSyncBuf(),this.monitor=new HO(this.client,this.handleRawMessage.bind(this),{loadBuf:()=>this.syncBuf,saveBuf:e=>{this.syncBuf=e,this.storage.saveSyncBuf(e).catch(e=>this.log.error(`[weclaw] save sync buf error:`,e))},logger:this.log}),this.emit(`ready`,void 0);try{await this.monitor.run()}catch(e){this.emit($12,e)}finally{this.emit(`stopped`,void 0)}}stop(){this.monitor?.stop()}get running(){return this.monitor?.isRunning??!1}logout(){this.stop(),this.credentials=null,this.client=null,this.syncBuf=``,this.storage.clearCredentials()}async sendText(e,t,n){let r=this.requireClient(),i=n||this.contextTokens.get(e)||``;await this.doSendText(r,e,t,i)}async sendMedia(e,t,n,r){let i=this.requireClient(),a=r?.contextToken||this.contextTokens.get(e)||``,o=await WO(i,t,e,n),s={encrypt_query_param:o.downloadParam,aes_key:GO(o.aesKeyHex),encrypt_type:1},c;switch(n){case ak.Image:c={type:ik.Image,image_item:{media:s,mid_size:o.cipherSize}};break;case ak.Video:c={type:ik.Video,video_item:{media:s,video_size:o.cipherSize}};break;default:c={type:ik.File,file_item:{media:s,file_name:r?.fileName||$44,len:String(o.fileSize)}}}await uk(i,e,c,a,`sendMedia`)}handleRawMessage(e,t){if(t.message_type!==nk.User||t.message_state!==rk.Finish)return;if(this.options.allowedUsers?.length&&!this.options.allowedUsers.includes(t.from_user_id)){this.log.warn(`[weclaw] ignored message from unauthorized user: ${t.from_user_id}`);return}let n=ck(t);this.contextTokens.set(t.from_user_id,t.context_token);let{command:r,text:i}=lk(n,this.aliases),a={fromUserId:t.from_user_id,text:i,command:r,fullText:n,contextToken:t.context_token,rawMessage:t,items:t.item_list||[],reply:async n=>{await this.doSendText(e,t.from_user_id,n,t.context_token)}};this.emit(`message`,a),this.routeMessage(e,a).catch(e=>{this.log.error(`[weclaw] handler error:`,e),this.emit($12,e)})}async routeMessage(e,t){this.sendTypingIndicator(e,t.fromUserId,t.contextToken);let n=t.command?this.commands.get(t.command):void 0,r=n?await n(t):await this.runDefaultHandler(t);typeof r==$q&&r.length>0&&(await this.doSendText(e,t.fromUserId,r,t.contextToken),this.emit(`reply`,{toUserId:t.fromUserId,text:r}))}async runDefaultHandler(e){if(this.defaultHandler)return this.defaultHandler(e);if(this.options.defaultReply!==!1)return this.options.defaultReply;this.emit(`message:unhandled`,e)}doSendText(e,t,n,r){return uk(e,t,{type:ik.Text,text_item:{text:n}},r,`sendMessage`)}sendTypingIndicator(e,t,n){(async()=>{try{let r=await e.getConfig(t,n);r.typing_ticket&&await e.sendTyping(t,r.typing_ticket,ok.Typing)}catch{}})()}requireClient(){if(!this.client)throw Error(`WeClaw not started. Call start() first.`);return this.client}}})),mk,hk,gk,_k=o((()=>{mk={botToken:`wechat-bot-token`,botId:`wechat-bot-id`,baseUrl:`wechat-base-url`,userId:`wechat-user-id`},hk=Object.keys(mk),gk=class{app;basePath;adapter;mem={botToken:null,botId:null,baseUrl:null,userId:null};constructor(e,t){this.app=e,this.adapter=e.vault.adapter,this.basePath=(0,d.normalizePath)(`${e.vault.configDir}/plugins/${t}/wechat`)}get secrets(){return this.app.secretStorage}loadSecrets(){for(let e of hk)this.mem[e]=this.secrets.getSecret(mk[e])??null}set(e,t){this.mem[e]=t,this.secrets.setSecret(mk[e],t)}saveCredentials(e){this.set(`botToken`,e.bot_token),this.set(`botId`,e.ilink_bot_id),this.set(`baseUrl`,e.baseurl),this.set(`userId`,e.ilink_user_id)}loadCredentials(){let{botToken:e,botId:t,baseUrl:n,userId:r}=this.mem;return e?{bot_token:e,ilink_bot_id:t||``,baseurl:n||``,ilink_user_id:r||``}:null}clearCredentials(){for(let e of hk)this.set(e,``),this.mem[e]=null}async ensureDir(){await this.adapter.exists(this.basePath)||await this.adapter.mkdir(this.basePath)}async saveSyncBuf(e){await this.ensureDir();let t=(0,d.normalizePath)(`${this.basePath}/sync.json`);await this.adapter.write(t,JSON.stringify({get_updates_buf:e}))}async loadSyncBuf(){let e=(0,d.normalizePath)(`${this.basePath}/sync.json`);try{if(!await this.adapter.exists(e))return``;let t=await this.adapter.read(e);return JSON.parse(t).get_updates_buf||``}catch{return``}}}}));function vk(e){let t=e?.trim();if(!t)return null;if(/^data:image\//i.test(t)||/^https?:\/\//i.test(t))return t;let n=t.replace(/\s+/g,``);return/^[A-Za-z0-9+/]+={0,2}$/.test(n)?`data:${yk.find(([e])=>n.startsWith(e))?.[1]??$14};base64,${n}`:null}var yk,bk,xk,Sk=o((()=>{I(),yk=[[`iVBORw0KGgo`,$14],[`/9j/`,$o4],[`R0lGOD`,`image/gif`],[`UklGR`,`image/webp`]],bk={loading:`loader`,waiting:`scan`,scanned:$ku,confirmed:`check-circle-2`,expired:$cz,error:`alert-triangle`},xk=class extends d.Modal{statusEl;imgEl;onCancel;constructor(e,t){super(e),this.onCancel=t}onOpen(){let{contentEl:e,modalEl:t}=this;t.addClass(`wechat-qr-modal`);let n=e.createDiv({cls:`wechat-qr-header`});(0,d.setIcon)(n.createSpan({cls:`wechat-qr-icon`}),$5x),n.createEl(`h2`,{text:F(1035)}),n.createEl(`p`,{text:F(1007),cls:`wechat-qr-subtitle`}),this.imgEl=e.createDiv({cls:`wechat-qr-img-container`}).createEl($6y,{cls:`wechat-qr-img`,attr:{alt:`WeChat QR Code`}}),this.statusEl=e.createDiv({cls:`wechat-qr-status`}),this.setStatus($ly,F(962))}onClose(){this.onCancel(),this.contentEl.empty()}setQRCode(e){let t=vk(e);if(!t){console.error(`[WeChatQRModal] no usable QR image in the login response`),this.setStatus($12,F(961));return}this.imgEl.onerror=()=>{console.error(`[WeChatQRModal] QR image failed to load`),this.setStatus($12,F(961))},this.imgEl.src=t,this.setStatus(`waiting`,F(1034))}setStatus(e,t){this.statusEl.empty(),this.statusEl.className=`wechat-qr-status wechat-qr-status--${e}`,(0,d.setIcon)(this.statusEl.createSpan({cls:`wechat-qr-status-icon`}),bk[e]||$da),this.statusEl.createSpan({text:t})}}})),Ck=c({SILK_SAMPLE_RATE:()=>Ek,SilkCodec:()=>jk});function wk(e,t){let n=e.byteLength,r=44+n,i=Buffer.allocUnsafe(r),a=0;return i.write(`RIFF`,a),a+=4,i.writeUInt32LE(r-8,a),a+=4,i.write(`WAVE`,a),a+=4,i.write(`fmt `,a),a+=4,i.writeUInt32LE(16,a),a+=4,i.writeUInt16LE(1,a),a+=2,i.writeUInt16LE(1,a),a+=2,i.writeUInt32LE(t,a),a+=4,i.writeUInt32LE(t*2,a),a+=4,i.writeUInt16LE(2,a),a+=2,i.writeUInt16LE(16,a),a+=2,i.write($g0,a),a+=4,i.writeUInt32LE(n,a),a+=4,Buffer.from(e.buffer,e.byteOffset,e.byteLength).copy(i,a),i}var Tk,Ek,Dk,Ok,kk,Ak,jk,Mk=o((()=>{jp(),Tk=Ap($46),Ek=24e3,Dk=`https://cdn.jsdelivr.net/npm/silk-wasm@3.7.1/lib`,Ok=[$oy,`silk.wasm`],kk=null,Ak=window.require,jk=class{dir;absDir;adapter;constructor(e,t){this.adapter=e.vault.adapter,this.dir=(0,d.normalizePath)(`${e.vault.configDir}/plugins/${t}/silk-wasm`);let n=this.adapter instanceof d.FileSystemAdapter?this.adapter.getBasePath():``;this.absDir=Tk.join(n,this.dir)}async isInstalled(){for(let e of Ok)if(!await this.adapter.exists((0,d.normalizePath)(`${this.dir}/${e}`)))return!1;return!0}async download(){await this.adapter.exists(this.dir)||await this.adapter.mkdir(this.dir);try{for(let e of Ok){let t=await(0,d.requestUrl)({url:`${Dk}/${e}`}),n=(0,d.normalizePath)(`${this.dir}/${e}`);e.endsWith(`.wasm`)?await this.adapter.writeBinary(n,t.arrayBuffer):await this.adapter.write(n,t.text)}}catch(e){throw await this.remove(),e}kk=null}async remove(){kk=null;for(let e of Ok){let t=(0,d.normalizePath)(`${this.dir}/${e}`);try{await this.adapter.exists(t)&&await this.adapter.remove(t)}catch{}}try{await this.adapter.rmdir(this.dir,!1)}catch{}}async decodeToWav(e){try{let{data:t}=await(await this.loadModule()).decode(e,Ek);return wk(t,Ek)}catch{return null}}async loadModule(){if(kk)return kk;let e=Tk.join(this.absDir,$oy);return Ak.cache?.[e]&&delete Ak.cache[e],kk=Ak(e),kk}}})),Nk,Pk,Fk=o((()=>{Nk=class e extends Error{code;data;constructor(e,t,n){super(t),this.name=`JsonRpcError`,this.code=e,this.data=n}static fromErrorObject(t){return new e(t.code,t.message,t.data)}static methodNotFound(t){return new e(-32601,`"Method not found": ${t}`,{method:t})}static internalError(t){return new e(-32603,`Internal error`,t)}toErrorObject(){return{code:this.code,message:this.message,data:this.data}}},Pk=class{options;pending=new Map;decoder=new TextDecoder;nextRequestId=0;buffer=``;isClosed=!1;constructor(e){this.options=e}get closed(){return this.isClosed}receive(e){if(this.isClosed)return;this.buffer+=typeof e==$q?e:this.decoder.decode(e,{stream:!0});let t=this.buffer.split(`
  183. `);this.buffer=t.pop()??``;for(let e of t){let t=e.trim();if(!t)continue;let n;try{n=JSON.parse(t)}catch(e){this.reportError(`Failed to parse JSON message:`,t,e);continue}this.processMessage(n)}}sendRequest(e,t){if(this.isClosed)return Promise.reject(new Nk(-32603,`Connection closed before "${e}" could be sent`));let n=this.nextRequestId++,r=new Promise((e,t)=>{this.pending.set(n,{resolve:e,reject:t})});return this.sendMessage({jsonrpc:`2.0`,id:n,method:e,params:t}),r}sendNotification(e,t){this.isClosed||this.sendMessage({jsonrpc:`2.0`,method:e,params:t})}close(e=`Connection closed`){if(this.isClosed)return;this.isClosed=!0,this.buffer=``;let t=new Nk(-32603,e);for(let e of this.pending.values())e.reject(t);this.pending.clear()}async processMessage(e){try{if(`method`in e&&`id`in e){let t=await this.callRequestHandler(e.method,e.params);this.sendMessage({jsonrpc:`2.0`,id:e.id,...t});return}if(`method`in e){try{await this.options.onNotification?.(e.method,e.params)}catch(t){this.reportError(`Error handling notification`,e,t)}return}if(`id`in e){this.handleResponse(e);return}this.reportError(`Invalid message`,e)}catch(t){this.reportError(`Unexpected error during message processing:`,e,t),`id`in e&&e.id!==void 0&&this.sendMessage({jsonrpc:`2.0`,id:e.id,error:{code:-32700,message:`Parse error`}})}}async callRequestHandler(e,t){try{if(!this.options.onRequest)throw Nk.methodNotFound(e);return{result:await this.options.onRequest(e,t)??null}}catch(t){let n=t instanceof Nk?t:Nk.internalError({details:t instanceof Error?t.message:String(t)});return this.reportError(`Error handling request`,e,n),{error:n.toErrorObject()}}}handleResponse(e){let t=this.pending.get(e.id);if(!t){this.reportError(`Got response to unknown request`,e.id);return}this.pending.delete(e.id),$12 in e&&e.error?t.reject(Nk.fromErrorObject(e.error)):t.resolve(`result`in e?e.result:null)}sendMessage(e){try{this.options.write(JSON.stringify(e)+`
  184. `)}catch(e){this.reportError(`JSON-RPC write error:`,e)}}reportError(e,...t){this.options.onError?this.options.onError(e,...t):console.error(e,...t)}}})),Ik,Lk,Rk,zk=o((()=>{Fk(),Ik={authenticate:`authenticate`,initialize:`initialize`,session_cancel:`session/cancel`,session_new:`session/new`,session_prompt:`session/prompt`,session_set_config_option:`session/set_config_option`,session_set_mode:`session/set_mode`,session_set_model:`session/set_model`},Lk={fs_read_text_file:`fs/read_text_file`,fs_write_text_file:`fs/write_text_file`,session_request_permission:`session/request_permission`,session_update:`session/update`},Rk=class{rpc;constructor(e){let{handlers:t}=e;this.rpc=new Pk({write:e.write,onError:e.onError,onRequest:async(e,n)=>{switch(e){case Lk.fs_write_text_file:return await t.writeTextFile?.(n)??{};case Lk.fs_read_text_file:return t.readTextFile?.(n);case Lk.session_request_permission:return t.requestPermission(n);default:throw Nk.methodNotFound(e)}},onNotification:async(e,n)=>{switch(e){case Lk.session_update:await t.sessionUpdate(n);return;default:throw Nk.methodNotFound(e)}}})}receive(e){this.rpc.receive(e)}close(e){this.rpc.close(e)}get closed(){return this.rpc.closed}initialize(e){return this.rpc.sendRequest(Ik.initialize,e)}newSession(e){return this.rpc.sendRequest(Ik.session_new,e)}prompt(e){return this.rpc.sendRequest(Ik.session_prompt,e)}cancel(e){this.rpc.sendNotification(Ik.session_cancel,e)}async setSessionMode(e){return await this.rpc.sendRequest(Ik.session_set_mode,e)??{}}async setSessionModel(e){return await this.rpc.sendRequest(Ik.session_set_model,e)??{}}setSessionConfigOption(e){return this.rpc.sendRequest(Ik.session_set_config_option,e)}}})),Bk,Vk,Hk=o((()=>{jp(),zk(),vO(),{spawn:Bk}=Ap($b2),Vk=class{name;config;cwd;log;proc=null;connection=null;sessions=new Map;sessionMetas=new Map;agentTitle=``;started=!1;chunkCollector=null;constructor(e,t,n,r){this.name=e,this.config=t,this.cwd=n,this.log=r??_O}async start(){if(this.started)return;this.proc=Bk(this.config.command||$87,this.config.args??[],{cwd:this.cwd,stdio:[$ge,$ge,$ge],env:{...process.env,...this.config.env}}),this.proc.stderr?.on($g0,e=>{let t=e.toString().trim();t&&this.log.warn(`[acp-stderr] ${t}`)}),this.proc.on(`exit`,e=>{this.started=!1,this.connection?.close(`[acp] subprocess exited (code=${e})`)});let e=new Rk({write:e=>{this.proc?.stdin?.write(e)},handlers:{requestPermission:async e=>({outcome:{outcome:$57,optionId:e.options.find(e=>e.kind===`allow`)?.optionId??e.options[0]?.optionId??`allow`}}),sessionUpdate:async e=>{this.handleSessionUpdate(e)},readTextFile:async()=>({content:``}),writeTextFile:async()=>({})}});this.connection=e,this.proc.stdout?.on($g0,t=>e.receive(t)),this.proc.stdout?.on($5q,()=>e.close(`[acp] agent stdout closed`));let t=await this.connection.initialize({protocolVersion:1,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0}}});this.agentTitle=t.agentInfo?.title||t.agentInfo?.name||this.name,this.started=!0}async chat(e,t,n){this.started||await this.start();let r=this.sessions.get(e)??await this.createSession(e),i=[];this.chunkCollector=i;try{await this.connection.prompt({sessionId:r,prompt:[{type:$0l,text:t}]})}finally{this.chunkCollector=null}let a=i.join(``).trim();if(!a)throw Error(`agent returned empty response`);return a}async createSession(e){let t=await this.connection.newSession({cwd:this.cwd,mcpServers:[]}),n=t.sessionId;this.sessions.set(e,n);let r={};if(t.models&&(r.models={current:t.models.currentModelId,available:t.models.availableModels.map(e=>({id:e.modelId,name:e.name}))}),t.modes&&(r.modes={current:t.modes.currentModeId,available:t.modes.availableModes.map(e=>({id:e.id,name:e.name}))}),t.configOptions&&(r.configOptions=t.configOptions.map(e=>({id:e.id,name:e.name,type:e.type,current:e.currentValue}))),this.sessionMetas.set(e,r),this.config.model&&r.models){let e=r.models.available.find(e=>e.id===this.config.model||e.name.toLowerCase().includes(this.config.model.toLowerCase()));if(e&&e.id!==r.models.current)try{await this.connection.setSessionModel({sessionId:n,modelId:e.id}),r.models.current=e.id}catch(e){this.log.warn(`[acp] failed to set default model: ${e}`)}}return n}hasSession(e){return this.sessions.has(e)}cancelPrompt(e){let t=this.sessions.get(e);!t||!this.connection||this.connection.cancel({sessionId:t})}async resetSession(e){return this.sessions.delete(e),this.sessionMetas.delete(e),this.started||await this.start(),this.createSession(e)}getSessionMeta(e){return this.sessionMetas.get(e)??null}requireSession(e){let t=this.sessions.get(e);if(!t||!this.connection)throw Error(`No active session`);return t}async setModel(e,t){let n=this.requireSession(e);await this.connection.setSessionModel({sessionId:n,modelId:t});let r=this.sessionMetas.get(e);r?.models&&(r.models.current=t)}async setMode(e,t){let n=this.requireSession(e);await this.connection.setSessionMode({sessionId:n,modeId:t});let r=this.sessionMetas.get(e);r?.modes&&(r.modes.current=t)}async setConfigOption(e,t,n){let r=this.requireSession(e);await this.connection.setSessionConfigOption({sessionId:r,configOptionId:t,value:n});let i=this.sessionMetas.get(e)?.configOptions?.find(e=>e.id===t);i&&(i.current=n)}info(){return{name:this.agentTitle||this.name,type:`acp`,model:this.config.model||``,command:this.config.command||$87,pid:this.proc?.pid}}stop(){this.connection?.close(`[acp] agent stopped`),this.proc&&=(this.proc.kill(),null),this.connection=null,this.started=!1,this.sessions.clear(),this.sessionMetas.clear()}handleSessionUpdate(e){let t=e.update;t.sessionUpdate===`agent_message_chunk`&&t.content?.type===$0l&&this.chunkCollector?.push(t.content.text)}}}));function Uk(){return d.Platform.isDesktop&&process.platform===$dk&&typeof kA.statSync==$z&&typeof kA.readdirSync==$z&&typeof kA.realpathSync==$z&&typeof AA.join==$z&&typeof AA.isAbsolute==$z}function Wk(e){let t=e.trim();if(!t)return``;if(/^[a-zA-Z]:\//.test(t))return t.replace(/\//g,`\\`);let n=t.match(/^\/([a-zA-Z])\/(.*)$/);return n?`${n[1].toUpperCase()}:\\${n[2].replace(/\//g,`\\`)}`:t}function Gk(e,t){if(!Uk())return null;let n=Wk(e);if(!n)return null;try{let e=kA.statSync(n);return(t===$44?!e.isFile():!e.isDirectory())?null:kA.realpathSync(n)}catch{return null}}function Kk(e){return Gk(e,$44)}function qk(e){return Gk(e,`directory`)}function Jk(e){return[...new Set(e)]}function Yk(e){return[...e].sort((e,t)=>t.localeCompare(e,void 0,{numeric:!0,sensitivity:$nq}))}function Xk(e,t){let n=qk(e);if(!n)return[];try{return Yk(kA.readdirSync(n)).flatMap(e=>{if(!t.test(e))return[];let r=AA.join(n,e);return qk(r)?[r]:[]})}catch{return[]}}function Zk(e){let t=e?.trim()||``;if(!t)return[];let n=t.includes(`;`)?`;`:`:`;return Jk(t.split(n).map(e=>Wk(e)).filter(Boolean))}function Qk(e){let t=Wk(e||``).trim();return t?jA.test(t):!0}function $k(e){if(!Uk())return!1;let t=Wk(e||``);return!!t&&AA.isAbsolute(t)}function eA(e){if(!Uk())return!1;let t=Wk(e||``).trim();if(!t)return!1;let n=AA.basename(t).toLowerCase();return n===$2w||n===$hv||n===$ou}function tA(e){return{command:e,argsPrefix:[],displayCommand:e}}function nA(e,t){let n=(t?Kk(AA.join(t,`node.exe`)):null)||`node`;return{command:n,argsPrefix:[e],displayCommand:`${n} ${e}`}}function rA(e){let t=qk(e);if(!t)return null;let n=Kk(AA.join(t,$2w));return n?nA(n,t):null}function iA(e){let t=qk(e);if(!t)return null;let n=Kk(AA.join(t,$hv));return n?rA(t)||tA(n):null}function aA(e){for(let t of SA(e)){let e=iA(t);if(e)return e}return null}function oA(e,t){let n=Wk(e.LOCALAPPDATA||``);if(!n)return null;let r=qk(AA.join(n,`Codex`));if(!r)return null;for(let e of Xk(r,MA)){let n=t(e);if(n)return n}return null}function sA(e){let t=Wk(e.USERPROFILE||``);return t?AA.join(t,`.codex`,`.sandbox-bin`):null}function cA(e){return oA(e,e=>iA(AA.join(e,$i1)))}function lA(e){let t=sA(e);return t?iA(t):null}function uA(e){return e?.command.toLowerCase()===`node`?typeof DA==$z?e:null:e}function dA(e){return uA(cA(e))||uA(lA(e))||uA(aA(e))}function fA(e){return Qk(e)||$k(e)&&eA(e)}function pA(e,t){return process.platform===$dk&&!t&&fA(e)}function mA(){return Error(`Windows auto-detection could not find a usable Codex executable. Set the WeChat agent Command to an absolute codex.exe path.`)}function hA(e){return process.platform===$dk&&e instanceof Error&&e.code===`ENOENT`?Error(`${e.message}. Windows shell shims are not directly spawnable here; set the WeChat agent Command to an absolute codex.exe path.`):e instanceof Error?e:Error(String(e))}function gA(e){let t=qk(e);if(!t)return null;let n=AA.dirname(t);return AA.basename(t).toLowerCase()===$2w&&AA.basename(n).toLowerCase()===$ll?t:qk(AA.join(t,$l7,$ll,$2w))}function _A(e,t){return AA.join($l7,$ll,`codex-win32-${e}`,`vendor`,t,$2w,$49)}function vA(){let e=[_A(`x64`,`x86_64-pc-windows-msvc`),_A($pk,`aarch64-pc-windows-msvc`)];return process.arch===$pk?e.reverse():e}function yA(e){let t=qk(e);if(!t)return null;let n=[AA.join(t,$49),AA.join(t,$i1,$49)];for(let e of n){let t=Kk(e);if(t)return t}let r=gA(t);if(!r)return null;for(let e of vA()){let t=Kk(AA.join(r,e));if(t)return t}return null}function bA(e){let t=qk(e);if(!t)return null;let n=gA(t);if(!n)return null;let r=Kk(AA.join(n,`bin`,`codex.js`));return r?nA(r,t):null}function xA(e){for(let t of e){let e=yA(t);if(e)return tA(e)}for(let t of e){let e=bA(t);if(e)return e}return null}function SA(e){let t=Zk(e.PATH),n=t.flatMap(e=>e.toLowerCase().includes(`\\nvm`)?Xk(e,/^v\d/i):[]);return Jk([...t,...n]).flatMap(e=>{let t=qk(e);return t?[t]:[]})}function CA(e){return oA(e,e=>{let t=Kk(AA.join(e,$i1,$49));return t?tA(t):null})}function wA(e){let t=sA(e),n=t&&Kk(AA.join(t,$49));return n?tA(n):null}function TA(e){let t=Wk(e.USERPROFILE||``);if(!t)return null;let n=[AA.join(t,`.vscode`,$ny),AA.join(t,`.cursor`,$ny)],r=process.arch===$pk?[$k9,$iu]:[$iu,$k9];for(let e of n)for(let t of Xk(e,NA))for(let e of r){let n=Kk(AA.join(t,`bin`,e,$49));if(n)return tA(n)}return null}function EA(e,t){if(!Uk())return null;let n=Wk(e||``).trim();if(n&&AA.isAbsolute(n)){let e=Kk(n);if(!e)return null;let t=AA.basename(e).toLowerCase();return t===$49?tA(e):t===$hv||t===$ou||t===$2w?xA([AA.dirname(e)])||iA(AA.dirname(e)):tA(e)}if(!Qk(n))return null;let r=[CA(t),wA(t),TA(t)];for(let e of r)if(e)return e;return xA(SA(t))||dA(t)}var DA,OA,kA,AA,jA,MA,NA,PA,FA,IA=o((()=>{jp(),vO(),{spawn:DA}=Ap($b2),{createInterface:OA}=Ap(`readline`),kA=Ap(`fs`),AA=Ap($46),jA=/^codex(?:\.(?:cmd|bat|exe))?$/i,MA=/^app-/i,NA=/^openai\.chatgpt-/i,PA={claude:{"bypass-permissions":[$4c,`bypassPermissions`],"dont-ask":[$4c,`dontAsk`],"plan-mode":[$4c,`plan`],"accept-edits":[$4c,`acceptEdits`]},codex:{"bypass-permissions":[`--dangerously-bypass-approvals-and-sandbox`],"dont-ask":[`--full-auto`],"plan-mode":[`-s`,`read-only`],"accept-edits":[`-a`,`untrusted`,`-s`,`workspace-write`]},gemini:{"bypass-permissions":[`--yolo`],"dont-ask":[`--yolo`],"plan-mode":[$gx,`plan`],"accept-edits":[$gx,`auto_edit`]}},FA=class{agentName;config;cwd;log;sessions=new Map;cachedCodexLaunch=null;constructor(e,t,n,r){this.agentName=e,this.config=t,this.cwd=n,this.log=r??_O}async chat(e,t,n){switch(this.agentName){case $2w:return this.chatCodex(t,n);case $9z:return this.chatGemini(t,n);default:return this.chatClaude(e,t,n)}}permissionFlags(e){let t=this.config.permissionMode;return t&&PA[e][t]||[]}spawnCli(e,t,n,r){let i=DA(e,t,{cwd:this.cwd,stdio:[$ge,$ge,$ge],env:n});return r&&r.addEventListener($gq,()=>i.kill(),{once:!0}),i}async runOnce(e,t,n,r,i=e=>e){let a=this.spawnCli(e,t,n,r),o=[],s=[];a.stdout?.on($g0,e=>o.push(e)),a.stderr?.on($g0,e=>s.push(e));let c=await new Promise((e,t)=>{a.on(`exit`,e),a.on($12,e=>t(i(e)))}),l=Buffer.concat(o).toString().trim();if(c!==0&&!l){let e=Buffer.concat(s).toString().trim();throw Error(`${this.agentName} error (code=${c}): ${e||$bf}`)}if(!l)throw Error(`${this.agentName} returned empty response`);return l}getCachedCodexLaunch(e,t){let n=[process.platform,e,t.PATH||``,t.LOCALAPPDATA||``,t.USERPROFILE||``].join(`|`);if(this.cachedCodexLaunch?.key===n)return this.cachedCodexLaunch.spec;let r=EA(e,t);return this.cachedCodexLaunch={key:n,spec:r},r}async chatClaude(e,t,n){let r=this.config.command||$5u,i=[`-p`,t,`--output-format`,`stream-json`,`--verbose`];this.config.model&&i.push($lj,this.config.model),this.config.systemPrompt&&i.push(`--append-system-prompt`,this.config.systemPrompt),i.push(...this.permissionFlags($5u),...this.config.args??[]);let a=this.sessions.get(e);a&&i.push(`--resume`,a);let o=this.spawnCli(r,i,{...process.env,...this.config.env},n),s=``,c=``,l=[],u=OA({input:o.stdout});for await(let e of u)if(e.trim())try{let t=JSON.parse(e);if(t.session_id&&(c=t.session_id),t.type===`result`){if(t.is_error)throw Error(`${this.agentName} error: ${t.result}`);s=t.result||``}else if(t.type===$1u&&t.message?.content)for(let e of t.message.content)e.type===$0l&&e.text&&l.push(e.text)}catch(e){if(e instanceof SyntaxError)continue;throw e}if(await new Promise((e,t)=>{o.on(`exit`,n=>{n!==0&&!s&&l.length===0?t(Error(`${this.agentName} exited with code ${n}`)):e()}),o.on($12,t)}),!s&&l.length>0&&(s=l.join(``)),c&&this.sessions.set(e,c),s=s.trim(),!s)throw Error(`${this.agentName} returned empty response`);return s}async chatCodex(e,t){let n=this.config.command||$2w,r=[`exec`,e];this.config.model&&r.push($lj,this.config.model),r.push(...this.permissionFlags($2w)),this.config.reasoningEffort&&this.config.reasoningEffort!==`medium`&&r.push(`--reasoning-effort`,this.config.reasoningEffort),this.config.args&&r.push(...this.config.args);let i={...process.env,...this.config.env},a=this.getCachedCodexLaunch(n,i),o=a?.command||n,s=[...a?.argsPrefix||[],...r];if(pA(n,a))throw mA();return this.runOnce(o,s,i,t,hA)}async chatGemini(e,t){let n=this.config.command||$9z,r=[`prompt`,e];return this.config.model&&r.push($lj,this.config.model),r.push(...this.permissionFlags($9z),...this.config.args??[]),this.runOnce(n,r,{...process.env,...this.config.env},t)}hasSession(e){return this.sessions.has(e)}cancelPrompt(){}async resetSession(e){return this.sessions.delete(e),``}info(){return{name:this.agentName,type:$b3,model:this.config.model||``,command:this.cachedCodexLaunch?.spec?.displayCommand||this.config.command||this.agentName}}stop(){this.sessions.clear(),this.cachedCodexLaunch=null}}})),LA,RA=o((()=>{vO(),LA=class{agentName;config;log;history=new Map;maxHistory;constructor(e,t,n){this.agentName=e,this.config=t,this.log=n??_O,this.maxHistory=t.maxHistory||20}async chat(e,t,n){let r=this.config.endpoint;if(!r)throw Error(`HTTP agent requires endpoint`);let i=this.buildMessages(e,t),a=JSON.stringify({model:this.config.model||$d8,messages:i}),o=await(0,d.requestUrl)({url:r,method:$25,headers:{"Content-Type":$0d,...this.config.apiKey?{Authorization:`Bearer ${this.config.apiKey}`}:{},...this.config.headers},body:a});if(o.status!==200)throw Error(`HTTP agent error ${o.status}: ${o.text}`);let s=o.json?.choices?.[0]?.message?.content;if(!s)throw Error(`HTTP agent: no content in response`);let c=this.history.get(e)??[];c.push({role:$3n,content:t},{role:$1u,content:s});let l=this.maxHistory*2;return c.length>l&&c.splice(0,c.length-l),this.history.set(e,c),s}hasSession(e){return this.history.has(e)}cancelPrompt(){}async resetSession(e){return this.history.delete(e),``}info(){return{name:this.agentName,type:$4t,model:this.config.model||$d8,command:this.config.endpoint||``}}stop(){this.history.clear()}buildMessages(e,t){let n=[];this.config.systemPrompt&&n.push({role:$eh,content:this.config.systemPrompt});let r=this.history.get(e);return r&&n.push(...r),n.push({role:$3n,content:t}),n}}}));function zA(e,t,n,r,i){let a=t.cwd||n,o={...t};switch(i&&(o.systemPrompt=i+`\nYour current working directory is: ${a}\nFiles must be within this directory to be sent automatically.`+(t.systemPrompt?$bh+t.systemPrompt:``)),o.type){case`acp`:return new Vk(e,o,a,r);case $b3:return new FA(e,o,a,r);case $4t:return new LA(e,o,r);default:throw Error(`Unknown agent type: ${o.type}`)}}var BA=o((()=>{Hk(),IA(),RA()}));function VA(e,t){return t?.[e]?t[e]:qA[e]?qA[e]:e}function HA(e,t){return t===$9i?e?.models:e?.modes}function UA(e){return e.available.find(t=>t.id===e.current)?.name||e.current}function WA(e,t){return t===e.current?` *`:``}function GA(e){return e instanceof Error?e.message:String(e)}function KA(e,t,n){let r=e.trim();if(!r.startsWith(`/`)&&!r.startsWith(`@`))return null;let i=[],a=r;for(;a.length>0&&(a=a.trimStart(),!(!a.startsWith(`/`)&&!a.startsWith(`@`)));){let e=a.slice(1),t=e.search(/[\s/@]/),r;if(t<0?(r=e,a=``):e[t]===`/`||e[t]===`@`?(r=e.slice(0,t),a=e.slice(t)):(r=e.slice(0,t),a=e.slice(t).trimStart()),r){let e=VA(r,n);if(JA.has(r))return null;i.push(e)}if(!a)break}if(i.length===0)return null;let o=new Set,s=i.filter(e=>o.has(e)?!1:(o.add(e),!0)).filter(e=>t.has(e));return s.length===0?null:{agents:s,message:a}}var qA,JA,YA,XA,ZA,QA=o((()=>{BA(),vO(),qA={cc:$5u,cx:$2w,cs:`cursor`,km:`kimi`,gm:$9z,oc:`openclaw`,ocd:`opencode`,pi:`pi`,cp:`copilot`,dr:`droid`,if:`iflow`,kr:`kiro`,qw:`qwen`},JA=new Set([$da,`help`,`new`,`clear`]),YA=[$9i,$ju],XA={model:`Model`,mode:`Mode`},ZA=class{agents=new Map;configs;_defaultAgent;cwd;log;customAliases;baseSystemPrompt;activeAgent=new Map;userLock=new Map;inFlight=new Map;constructor(e,t,n,r){this.configs=e,this._defaultAgent=t,this.cwd=n,this.log=r?.logger??_O,this.customAliases=r?.customAliases,this.baseSystemPrompt=r?.baseSystemPrompt}get defaultAgent(){return this._defaultAgent}set defaultAgent(e){this._defaultAgent=e}get knownAgents(){return new Set(Object.keys(this.configs))}async getOrCreateAgent(e){let t=this.agents.get(e);if(t)return t;let n=this.configs[e];if(!n)throw Error(`Agent "${e}" not configured`);return t=zA(e,n,this.cwd,this.log,this.baseSystemPrompt),this.agents.set(e,t),t}async chat(e,t,n){let r=this.userLock.get(t)??Promise.resolve(),i,a=new Promise(e=>{i=e});this.userLock.set(t,a);try{await r;let i=await this.getOrCreateAgent(e),a=n.length>30?n.slice(0,30)+$6f:n;this.inFlight.set(t,{agent:e,startedAt:Date.now(),message:a});try{return await i.chat(t,n)}finally{this.inFlight.delete(t)}}finally{i(),this.userLock.get(t)===a&&this.userLock.delete(t)}}async broadcast(e,t,n){let r=e.map(async e=>{try{return{name:e,reply:await this.chat(e,t,n)}}catch(t){return{name:e,reply:`Error: ${GA(t)}`}}});return Promise.all(r)}async resetSession(e,t){let n=this.agents.get(e);return n?n.resetSession(t):``}sessionAgent(e){let t=this.activeAgent.get(e)||this._defaultAgent;return t?this.agents.get(t)??$6i:`No agent active.`}cancelActivePrompt(e){let t=this.sessionAgent(e);return typeof t==$q?t:(t.cancelPrompt(e),`Cancelled ${t.info().name}`)}getActiveAgent(e){return this.activeAgent.get(e)??null}setActiveAgent(e,t){this.activeAgent.set(e,t)}clearActiveAgent(e){this.activeAgent.delete(e)}async resetActiveSession(e){let t=this.sessionAgent(e);if(typeof t==$q)return t;t.cancelPrompt(e),this.activeAgent.delete(e);let n=await t.resetSession(e),r=t.info().name;return n?`${r} session reset\n${n}`:`${r} session reset`}listUserSessions(e){let t=[],n=this.activeAgent.get(e),r=1;for(let[i,a]of this.agents)a.hasSession(e)&&t.push({index:r++,name:i,active:i===n});return t}formatSessionList(e){let t=this.listUserSessions(e);if(t.length===0)return`No active sessions.`;let n=[`Sessions:`,``];for(let e of t){let t=e.active?` *`:``;n.push(` ${e.index}. ${e.name}${t}`)}return n.push(``,`Reply /resume <number> to switch.`),n.join(`
  185. `)}resumeByIndex(e,t){let n=this.listUserSessions(e).find(e=>e.index===t);return n?(this.activeAgent.set(e,n.name),`Resumed ${n.name}`):`Invalid session number: ${t}`}resumeByName(e,t){let n=this.resolveAlias(t),r=this.agents.get(n);return!r||!r.hasSession(e)?`No session found for "${n}"`:(this.activeAgent.set(e,n),`Resumed ${n}`)}resolveAlias(e){return VA(e,this.customAliases)}getAgentInfo(e){let t=this.activeAgent.get(e),n=[];if(t){let r=this.agents.get(t),i=r?.info();n.push(`active: ${t}${i?` [${i.type}]`:``}`);let a=r?.getSessionMeta?.(e),o=HA(a,$9i);o?n.push(`model: ${UA(o)}`):i?.model&&n.push(`model: ${i.model}`);let s=HA(a,$ju);s&&n.push(`mode: ${UA(s)}`)}else n.push(`active: none (thino mode)`);return this._defaultAgent&&n.push(`default: ${this._defaultAgent}`),n.join(`
  186. `)}getActiveHelp(e){let t=this.activeAgent.get(e),n=t?this.agents.get(t):void 0,r=n?.getSessionMeta?.(e),i=[];if(t){let e=n?.info();i.push(`Current: ${t} [${e?.type||`?`}]`);for(let e of YA){let t=HA(r,e);if(t){i.push(`${XA[e]}: ${UA(t)}`,` /${e} <id> to switch. Available:`);for(let e of t.available)i.push(` - ${e.id} (${e.name})${WA(t,e.id)}`)}}i.push(``)}else i.push(`No active agent (thino mode)`),i.push(``);i.push(`Commands:`,` @agent msg - Send to agent`,` @a @b msg - Broadcast`,` /thino <text> - Save as thino`,` /d, /t, /n - Diary/Todo/Note`),t?(i.push(` /info - Agent info`,` /new - Reset session`,` /cancel - Stop generation`,` /resume - Switch session`),r?.models&&i.push(` /model <id> - Switch model`),r?.modes&&i.push(` /mode <id> - Switch mode`),r?.configOptions?.length&&i.push(` /config <id> <val> - Set config`)):i.push(` /resume - Resume a previous session`),i.push(` /status - Running tasks`);let a=Object.entries(qA).filter(([,e])=>this.configs[e]).map(([e,t])=>`/${e}(${t})`);return a.length>0&&i.push(``,`Aliases: ${a.join(` `)}`),i.join(`
  187. `)}async switchSlot(e,t,n){let r=this.activeAgent.get(e);if(!r)return`No active agent. Use @agent first.`;let i=this.agents.get(r);if(!i)return $6i;let a=t===$9i?i.setModel?.bind(i):i.setMode?.bind(i);if(!a)return`${r} does not support ${t} switching.`;let o=HA(i.getSessionMeta?.(e),t),s=n;if(o&&!o.available.some(e=>e.id===n)){let e=n.toLowerCase(),r=o.available.find(t=>t.id.toLowerCase().includes(e)||t.name.toLowerCase().includes(e));if(!r){let e=o.available.map(e=>` - ${e.id} (${e.name})`).join(`
  188. `);return`${XA[t]} "${n}" not found. Available:\n${e}`}s=r.id}try{return await a(e,s),`${XA[t]} switched to ${s}`}catch(e){return`Failed: ${GA(e)}`}}setActiveModel(e,t){return this.switchSlot(e,$9i,t)}setActiveMode(e,t){return this.switchSlot(e,$ju,t)}listSlot(e,t){let n=this.activeAgent.get(e);if(!n)return $84;let r=HA(this.agents.get(n)?.getSessionMeta?.(e),t);if(!r)return`${n} does not expose ${t} list.`;let i=[`${XA[t]}s (${n}):`];for(let e of r.available)i.push(` ${e.id} - ${e.name}${WA(r,e.id)}`);return i.join(`
  189. `)}listModels(e){return this.listSlot(e,$9i)}listModes(e){return this.listSlot(e,$ju)}listConfig(e){let t=this.activeAgent.get(e);if(!t)return $84;let n=this.agents.get(t)?.getSessionMeta?.(e);if(!n?.configOptions?.length)return`${t} has no config options.`;let r=[`Config (${t}):`];for(let e of n.configOptions)r.push(` ${e.id}: ${e.current} [${e.type}] - ${e.name}`);return r.push(``,`/config <id> <value> to change.`),r.join(`
  190. `)}async setActiveConfig(e,t,n){let r=this.activeAgent.get(e);if(!r)return $84;let i=this.agents.get(r);if(!i)return $6i;if(!i.setConfigOption)return`${r} does not support config options.`;let a=n;n===$0q?a=!0:n===$pn&&(a=!1);try{return await i.setConfigOption(e,t,a),`${t} = ${n}`}catch(e){return`Failed: ${GA(e)}`}}getStatus(){let e=[],t=[...this.agents.entries()].map(([e,t])=>{let n=t.info(),r=n.pid?` pid=${n.pid}`:``;return` ${e} [${n.type}]${r}`});e.push(`Running agents (${t.length}):`),t.length>0?e.push(...t):e.push(` (none)`),e.push(``);let n=[...this.inFlight.entries()].map(([e,t])=>{let n=Math.round((Date.now()-t.startedAt)/1e3);return` [${t.agent}] ${e} (${n}s) "${t.message}"`});e.push(`In-flight tasks (${n.length}):`),n.length>0?e.push(...n):e.push(` (none)`);let r=[...this.activeAgent.entries()];if(r.length>0){e.push(``),e.push(`Active sessions (${r.length}):`);for(let[t,n]of r)e.push(` ${t} → ${n}`)}return e.join(`
  191. `)}async switchDefault(e){return this.configs[e]?(await this.getOrCreateAgent(e),this._defaultAgent=e,`Switched to ${e}`):`Agent "${e}" not configured`}parseCommand(e){return KA(e,this.knownAgents,this.customAliases)}stopAll(){for(let e of this.agents.values())e.stop();this.agents.clear()}}}));function $A(e){let t=e;return t=t.replace(cj,(e,t)=>t?t.trim():``),t=t.replace(uj,``),t=t.replace(dj,$ff),t=t.replace(fj,``),t=t.replace(pj,(e,t)=>t.split(`|`).map(e=>e.trim()).join(` `)),t=t.replace(mj,``),t=t.replace(hj,(e,t,n)=>t||n),t=t.replace(gj,$ff),t=t.replace(_j,``),t=t.replace(vj,``),t=t.replace(yj,`$1• `),t=t.replace(lj,$ff),t=t.replace(bj,$bh),t.trim()}function ej(e){let t=[];for(let n of e.matchAll(xj)){let e=n[1].trim();(e.startsWith(`http://`)||e.startsWith(`https://`))&&t.push(e)}return t}function tj(e){let t=[],n=new Set;for(let r of e.split(`
  192. `)){let e=r.trim();if(!e||!sj.isAbsolute(e))continue;let i=sj.extname(e).toLowerCase();if(wj.has(i)){try{if(oj.statSync(e).isDirectory())continue}catch{continue}n.has(e)||(n.add(e),t.push(e))}}return t}function nj(e,t){if(t.includes(``))return!0;let n;try{n=oj.realpathSync(e)}catch{try{n=sj.resolve(e)}catch{return!1}}for(let e of t){if(!e)continue;let t;try{t=oj.realpathSync(e)}catch{t=sj.resolve(e)}let r=sj.relative(t,n);if(r===`.`||!r.startsWith(`..`)&&!sj.isAbsolute(r))return!0}return!1}function rj(e,t,n){let r=new Map(t.map(e=>[e,`已发送附件:${sj.basename(e)}`])),i=e.split(`
  193. `).map(e=>{let t=e.trim();return r.get(t)??e}).join(`
  194. `),a=[...new Set(n)];if(a.length>0){let e=a.map(e=>`附件发送失败:${sj.basename(e)}`);i=i.trim()?i+`
  195. `+e.join(`
  196. `):e.join(`
  197. `)}return i}function ij(e){let t=sj.extname(e).toLowerCase();return Sj.has(t)?ak.Image:Cj.has(t)?ak.Video:ak.File}async function aj(e){let{weclaw:t,toUserId:n,contextToken:r,allowedRoots:i,log:a}=e,{reply:o}=e,s=tj(o),c=[],l=[];for(let e of s){if(!nj(e,i)){a?.warn(`[media] rejected attachment outside allowed roots: ${e}`),l.push(e);continue}try{let i=oj.readFileSync(e),o=ij(e);await t.sendMedia(n,Buffer.from(i),o,{fileName:sj.basename(e),contextToken:r}),c.push(e),a?.info(`[media] sent attachment: ${e}`)}catch(t){a?.error(`[media] failed to send attachment ${e}:`,t),l.push(e)}}o=rj(o,c,l);let u=ej(o),f=$A(o);f&&await t.sendText(n,f,r);for(let e of u)try{let i=await(0,d.requestUrl)({url:e,method:$3i});if(i.status!==200){a?.warn(`[media] failed to download image ${e}: HTTP ${i.status}`);continue}let o=Buffer.from(i.arrayBuffer);await t.sendMedia(n,o,ak.Image,{contextToken:r}),a?.info(`[media] sent image from URL: ${e}`)}catch(t){a?.error(`[media] failed to send image ${e}:`,t)}}var oj,sj,cj,lj,uj,dj,fj,pj,mj,hj,gj,_j,vj,yj,bj,xj,Sj,Cj,wj,Tj=o((()=>{jp(),sk(),oj=Ap(`fs`),sj=Ap($46),cj=/```[^\n]*\n?([\s\S]*?)```/g,lj=/`([^`]+)`/g,uj=/!\[[^\]]*\]\([^)]*\)/g,dj=/\[([^\]]+)\]\([^)]*\)/g,fj=/^\|[\s:|-]+\|$/gm,pj=/^\|(.+)\|$/gm,mj=/^#{1,6}\s+/gm,hj=/\*\*(.+?)\*\*|__(.+?)__/g,gj=/~~(.+?)~~/g,_j=/^>\s?/gm,vj=/^[-*_]{3,}\s*$/gm,yj=/^(\s*)[-*+]\s+/gm,bj=/\n{3,}/g,xj=/!\[[^\]]*\]\(([^)]+)\)/g,Sj=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`,`.bmp`]),Cj=new Set([`.mp4`,`.mov`,`.webm`,`.mkv`,`.avi`]),wj=new Set([...Sj,...Cj,`.pdf`,`.doc`,`.docx`,`.xls`,`.xlsx`,`.ppt`,`.pptx`,`.zip`,`.txt`,`.csv`])})),Ej=c({WeChatService:()=>Aj});function Dj(){return{info:(e,...t)=>P(e,...t),warn:(e,...t)=>console.warn(e,...t),error:(e,...t)=>console.error(e,...t)}}function Oj(e){return qO(e.encrypt_query_param,e.aes_key)}function kj(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}var Aj,jj=o((()=>{pk(),_k(),Sk(),$O(),Mk(),I(),sf(),Gp(),kp(),sk(),QA(),Tj(),vO(),Dn(),Aj=class{plugin;weclaw=null;storage;silkCodec;qrModal=null;loginAbort=null;router=null;constructor(e){this.plugin=e,this.storage=new gk(e.app,e.manifest.id),this.silkCodec=new jk(e.app,e.manifest.id)}async start(){if(!d.Platform.isDesktop){new d.Notice(F(853));return}if(!await Up()){Op();return}if(this.weclaw?.running){new d.Notice(F(854));return}this.storage.loadSecrets();let e=this.plugin.settings.wechat,t=Dj();this.initRouter(t),this.weclaw=new fk(this.storage,{defaultReply:e.defaultReply||!1,logger:t}),this.registerCommands(),this.weclaw.on(`qrcode`,({imageBase64:e})=>{this.qrModal&&this.qrModal.setQRCode(e)}),this.weclaw.on($m2,()=>{this.qrModal?.setStatus($m2,F(858))}),this.weclaw.on(`login`,()=>{this.qrModal?.setStatus($ov,F(859)),window.setTimeout(()=>this.qrModal?.close(),1500)}),this.weclaw.on(`ready`,()=>{new d.Notice(F(855))}),this.weclaw.on($12,e=>{console.error(`[WeChatService] error:`,e)}),this.weclaw.on(`stopped`,()=>{new d.Notice(F(856))}),this.storage.loadCredentials()||this.showQRModal(),this.weclaw.start().catch(e=>{console.error(`[WeChatService] start failed:`,e),e.message===$h7?this.qrModal?.setStatus(`expired`,F(860)):new d.Notice(`WeChat: ${e.message}`)})}stop(){this.loginAbort?.abort(),this.loginAbort=null,this.weclaw?.stop(),this.qrModal?.close(),this.qrModal=null,this.router?.stopAll(),this.router=null}logout(){this.router?.stopAll(),this.router=null,this.weclaw?.logout(),this.weclaw=null,new d.Notice(F(857))}get running(){return this.weclaw?.running??!1}hasCredentials(){return this.storage.loadCredentials()!==null}onunload(){this.stop(),this.weclaw?.removeAllListeners(),this.weclaw=null}showQRModal(){this.qrModal=new xk(this.plugin.app,()=>{this.loginAbort?.abort()}),this.qrModal.open()}initRouter(e){let t=this.plugin.settings.wechat.agentRouting;if(!t?.enabled){this.router=null;return}let n=t.agents??{};if(Object.keys(n).length===0){console.warn(`[WeChatService] agent routing enabled but no agents configured`),this.router=null;return}let r=t.cwd||this.vaultPath();this.router=new ZA(n,t.defaultAgent||``,r,{logger:e,customAliases:t.customAliases,baseSystemPrompt:t.baseSystemPrompt??hO})}registerCommands(){if(!this.weclaw)return;let e=()=>this.plugin.settings.MemoSaveLocation||$00;this.weclaw.onDefault(async t=>this.handleDefaultMessage(t,e())),this.weclaw.command([`d`,`diary`],async e=>this.handleMessage(e,$00)),this.weclaw.command([`t`,`todo`],async t=>this.handleMessage(t,e(),!0)),this.weclaw.command([`n`,`note`],async e=>this.handleMessage(e,$0g)),this.router&&(this.weclaw.command($da,async e=>this.router.getAgentInfo(e.fromUserId)),this.weclaw.command([`new`,`clear`],async e=>this.router.resetActiveSession(e.fromUserId)),this.weclaw.command(`help`,async e=>this.router.getActiveHelp(e.fromUserId)),this.weclaw.command($9i,async e=>{let t=e.text.trim();return t?this.router.setActiveModel(e.fromUserId,t):this.router.listModels(e.fromUserId)}),this.weclaw.command($ju,async e=>{let t=e.text.trim();return t?this.router.setActiveMode(e.fromUserId,t):this.router.listModes(e.fromUserId)}),this.weclaw.command(`config`,async e=>{let t=e.text.trim();if(!t)return this.router.listConfig(e.fromUserId);let n=t.indexOf(` `);if(n<0)return this.router.listConfig(e.fromUserId);let r=t.slice(0,n),i=t.slice(n+1).trim();return this.router.setActiveConfig(e.fromUserId,r,i)}),this.weclaw.command($ir,async()=>this.router.getStatus()),this.weclaw.command([`cancel`,`stop`],async e=>this.router.cancelActivePrompt(e.fromUserId)),this.weclaw.command(`resume`,async e=>{let t=e.text.trim();if(!t)return this.router.formatSessionList(e.fromUserId);let n=parseInt(t,10);return isNaN(n)?this.router.resumeByName(e.fromUserId,t):this.router.resumeByIndex(e.fromUserId,n)}),this.weclaw.command($0c,async t=>t.text?this.handleMessage(t,e()):F(910)))}async handleDefaultMessage(e,t){if(!this.router||!this.weclaw)return this.handleMessage(e,t);try{let t=this.router.parseCommand(e.fullText);if(t){if(t.agents.length===1&&!t.message)return this.router.setActiveAgent(e.fromUserId,t.agents[0]),await this.router.switchDefault(t.agents[0]);let n=t.message||e.text||e.fullText;if(t.agents.length===1){this.router.setActiveAgent(e.fromUserId,t.agents[0]);let r=await this.router.chat(t.agents[0],e.fromUserId,n);await this.sendAgentReply(e,r);return}let r=(await this.router.broadcast(t.agents,e.fromUserId,n)).map(e=>`[${e.name}] ${e.reply}`).join($bh);await this.sendAgentReply(e,r);return}let n=this.router.getActiveAgent(e.fromUserId);if(n){let t=await this.router.chat(n,e.fromUserId,e.text||e.fullText);await this.sendAgentReply(e,t);return}}catch(e){return console.error(`[WeChatService] agent routing error:`,e),`Agent error: ${e instanceof Error?e.message:String(e)}`}return this.handleMessage(e,t)}async sendAgentReply(e,t){if(!this.weclaw)return;let n=this.plugin.settings.wechat.agentRouting,r=n?.allowAllPaths?[process.platform===$dk?``:`/`]:[this.vaultPath(),n?.cwd,process.cwd(),...n?.allowedFileRoots??[]].filter(Boolean);await aj({weclaw:this.weclaw,toUserId:e.fromUserId,contextToken:e.contextToken,reply:t,allowedRoots:r,log:Dj()})}async handleMessage(e,t,n=!1){try{let r=this.plugin.settings.wechat.voiceSaveMode??$6s,i=await this.saveMediaItems(e.items,r),a=e.text||e.fullText||``;if(r===$0l||r===$6s){let t=[];for(let n of e.items)n.type===ik.Voice&&n.voice_item?.text&&t.push(n.voice_item.text);if(t.length>0){let e=t.join(`
  198. `);a=a.trim()?`${a.trim()}\n${e}`:e}}else if(!a.trim()){for(let t of e.items)if(t.type===ik.Voice&&t.voice_item?.text){a=t.voice_item.text;break}}let o=[];a.trim()&&o.push(n?`- [ ] ${a.trim()}`:a.trim()),i.length>0&&o.push(...i);let s=o.join(`
  199. `);return s?(await Y.createThino({content:s,type:t,isList:!0}),this.plugin.settings.wechat.defaultReply||F(861)):F(862)}catch(e){return console.error(`[WeChatService] save thino error:`,e),F(296)}}async saveMediaItems(e,t=$6s){let n=[],r=async(e,t)=>{let r=await this.saveToVault(`wechat-${(0,d.moment)().format($08)}-${t}`,e);r&&n.push(`![[${r.name}]]`)};for(let n of e)try{if(n.type===ik.Image&&n.image_item?.media)await r(await Oj(n.image_item.media),`${kj(4)}.png`);else if(n.type===ik.Voice&&n.voice_item?.media){if(t===$0l)continue;let e=await Oj(n.voice_item.media),i=await this.silkCodec.decodeToWav(e);await r(i??e,`${kj(4)}.${i?`wav`:`silk`}`)}else if(n.type===ik.Video&&n.video_item?.media)await r(await Oj(n.video_item.media),`${kj(4)}.mp4`);else if(n.type===ik.File&&n.file_item?.media){let e=n.file_item.file_name||$44;await r(await Oj(n.file_item.media),e.includes(`.`)?e:`${e}.bin`)}}catch(e){console.error(`[WeChatService] media download error:`,e)}return n}vaultPath(){let e=this.plugin.app.vault.adapter;return(e instanceof d.FileSystemAdapter?e.getBasePath():``)||process.cwd()}async saveToVault(e,t){let n=this.plugin.app.vault,r=e.split(`.`).pop()||`bin`,i=e.replace(/\.[^.]+$/,``),a=await n.getAvailablePathForAttachments(i,r),o=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return await n.createBinary(a,o)}}}));I(),kp(),vO();var Mj=(0,d.requireApiVersion)(`1.11.0`),Nj=class{constructor(e){this.props=e}async display(){let{containerEl:e,settingTab:t,plugin:n,verified:r}=this.props,i=tD(e,F(817));$(i).setDesc(F(818));let a=e=>{n.settings.wechat={...n.settings.wechat,...e},t.applySettingsUpdate()};$(i,F(819),F(820)).addToggle(e=>e.setValue(n.settings.wechat.enabled).onChange(async t=>{if(t&&!r){Op(),e.setValue(!1);return}if(t&&!d.Platform.isDesktop){new d.Notice(F(853)),e.setValue(!1);return}a({enabled:t})})),$(i,F(821),F(822)).addToggle(e=>e.setValue(n.settings.wechat.autoStart).onChange(async t=>{if(!r){Op(),e.setValue(!1);return}a({autoStart:t})})),$(i,F(823),F(824)).addText(e=>e.setPlaceholder(F(861)).setValue(n.settings.wechat.defaultReply).onChange(async e=>a({defaultReply:e}))),$(i,F(825),F(826)).addDropdown(e=>e.addOptions({both:F(827),text:F(828),voice:F(829)}).setValue(n.settings.wechat.voiceSaveMode??$6s).onChange(async e=>a({voiceSaveMode:e})));let o=tD(e,F(830)),s=n.wechatService?.running??!1,c=n.wechatService?.hasCredentials()??!1,l=()=>window.setTimeout(()=>t.debounceApplySettingsUpdate(),500);$(o,F(s?831:832),F(c?833:834)).addButton(e=>{e.setButtonText(F(s?267:268)).setCta().onClick(async()=>{if(!r){Op();return}if(s)n.wechatService?.stop();else{if(!n.wechatService){let{WeChatService:e}=await Promise.resolve().then(()=>(jj(),Ej));n.wechatService=new e(n)}await n.wechatService.start()}l()})}),c&&$(o,F(286),F(835)).addButton(e=>{e.setButtonText(F(286)).setWarning().onClick(async()=>{n.wechatService?.logout(),l()})});let u=tD(e,F(836)),{SilkCodec:f}=await Promise.resolve().then(()=>(Mk(),Ck)),p=new f(n.app,n.manifest.id),m=await p.isInstalled();$(u,F(837),F(m?838:839)).addButton(e=>{m?e.setButtonText(F(212)).setWarning().onClick(async()=>{await p.remove(),new d.Notice(F(842)),t.display()}):e.setButtonText(F(840)).setCta().onClick(async()=>{e.setButtonText(F(841)).setDisabled(!0);try{await p.download(),new d.Notice(F(843))}catch(e){new d.Notice(`${F(844)}: ${e.message}`)}t.display()})});let h=tD(e,F(845)),g=createFragment(),_=g.createDiv({cls:$ck});_.createEl(`p`,{text:F(846)});let v=_.createEl(`ul`),y=(e,t,n)=>{let r=v.createEl(`li`);e.forEach((e,t)=>{t>0&&r.appendText(` ${F(847)} `),r.createEl($d1,{text:e})}),t&&r.appendText(t),r.appendText(` - ${n}`)};y([`/d`,`/diary`],``,F(848)),y([`/t`,`/todo`],``,F(849)),y([`/n`,`/note`],``,F(850)),y([],F(851),F(852)),$(h).setDesc(g),this.displayAgentRouting(e,t,n)}displayAgentRouting(e,t,n){let r=n.settings.wechat.agentRouting??{...gO},i=tD(e,F(863)),a=e=>{n.settings.wechat={...n.settings.wechat,agentRouting:{...r,...e}},t.applySettingsUpdate()};$(i).setDesc(F(864)),$(i,F(865),F(866)).addToggle(e=>e.setValue(r.enabled).onChange(async e=>a({enabled:e})));let o=Object.keys(r.agents??{}),s={"":F(869)};for(let e of o)s[e]=e;$(i,F(867),F(868)).addDropdown(e=>e.addOptions(s).setValue(r.defaultAgent||``).onChange(async e=>a({defaultAgent:e}))),$(i,F(892),F(893)).addText(e=>e.setPlaceholder(F(894)).setValue(r.cwd||``).onChange(async e=>a({cwd:e||void 0}))),$(i,F(911),F(912)).addToggle(e=>e.setValue(r.allowAllPaths??!1).onChange(async e=>a({allowAllPaths:e}))),$(i,F(870),F(871)).addButton(e=>e.setButtonText(F(872)).setCta().onClick(async()=>{let e=`agent-`+Date.now().toString(36);a({agents:{...r.agents??{},[e]:{type:`acp`}}}),t.display()}));for(let[i,a]of Object.entries(r.agents??{}))this.displayAgent(e,t,n,i,a,r);if(r.enabled&&o.length>0){let t=e.createDiv({cls:$ck});t.createEl(`p`).createEl($7x,{text:`${F(884)}:`});let n=t.createEl(`ul`),r=(e,t,r)=>{let i=n.createEl(`li`);e.forEach((e,t)=>{t>0&&i.appendText(` or `),i.createEl($d1,{text:e})}),t&&i.appendText(` ${t}`),i.appendText(` - ${r}`)};r([`@agent msg`,`/agent msg`],``,F(885)),r([`@a @b msg`],``,F(886)),r([`/agent`],`(${F(887)})`,F(888)),r([`/new`,`/clear`],``,F(889)),r([`/info`],``,F(890));let i=t.createEl(`p`);i.createEl($7x,{text:`${F(891)}:`}),i.appendText(` /cc(claude) /cx(codex) /cs(cursor) /km(kimi) /gm(gemini) /oc(openclaw)`)}}displayAgent(e,t,n,r,i,a){let o=e=>{n.settings.wechat={...n.settings.wechat,agentRouting:{...a,agents:e}},t.applySettingsUpdate()},s=e=>{let t={...a.agents??{}};t[r]={...i,...e},o(t)},c=async()=>{let e={...a.agents??{}};delete e[r],o(e),t.display()},l=e=>e.addOptions({acp:`ACP`,cli:`CLI`,http:`HTTP`}).setValue(i.type||`acp`).onChange(e=>{s({type:e}),t.display()}),u,f;if(Mj){let t=new d.SettingGroup(e).setHeading(`${r} [${i.type.toUpperCase()}]`).addExtraButton(e=>{e.setIcon($gl).setTooltip(F(873)).onClick(c)}),n={addSetting(e){return t.addSetting(e),n}};u=n,f=e=>e,$(u,F(903)).addDropdown(l)}else u=e,f=()=>void 0,new d.Setting(e).setName(r).addDropdown(l).addButton(e=>e.setButtonText(F(873)).setWarning().onClick(c));if(i.type===$4t)$(u,F(874),f(F(875))).addText(e=>e.setPlaceholder(`https://api.openai.com/v1/chat/completions`).setValue(i.endpoint||``).onChange(e=>s({endpoint:e}))),$(u,F(876)).addText(e=>e.setPlaceholder(`sk-...`).setValue(i.apiKey||``).onChange(e=>s({apiKey:e})));else{let e=i.type===$b3&&r===$2w;$(u,F(877),F(e?991:878)).addText(t=>t.setPlaceholder(e?$2w:i.type===`acp`?$87:$5u).setValue(i.command||``).onChange(e=>s({command:e}))),$(u,F(879),f(F(880))).addText(e=>e.setValue((i.args??[]).join(` `)).onChange(e=>s({args:e.trim()?e.trim().split(/\s+/):[]})))}if($(u,F(881)).addText(e=>e.setPlaceholder(i.type===$4t?$d8:$7g).setValue(i.model||``).onChange(e=>s({model:e}))),i.type!==$4t){let e=e=>{let t={};for(let[n,r]of Object.entries(e))t[n]=F(r);return t};$(u,F(895),f(F(896))).addDropdown(t=>t.addOptions(e(mO)).setValue(i.permissionMode||$3q).onChange(e=>s({permissionMode:e}))),$(u,F(904),F(905)).addDropdown(t=>t.addOptions(e(pO)).setValue(i.reasoningEffort||`medium`).onChange(e=>s({reasoningEffort:e}))),$(u,F(892),f(F(901))).addText(e=>e.setPlaceholder(F(902)).setValue(i.cwd||``).onChange(e=>s({cwd:e||void 0})))}$(u,F(882),f(F(883))).addText(e=>e.setValue(i.systemPrompt||``).onChange(e=>s({systemPrompt:e})))}};sf(),I(),X(),Gp(),_f(),dc(),jp();var Pj=Ap(`os`),Fj=async()=>{let e=await Hp(),t;if(d.Platform.isDesktop&&typeof Pj?.hostname==$z&&typeof Pj?.platform==$z)t=JSON.stringify({hostname:Pj.hostname(),platform:Pj.platform(),machineid:e});else{let n=await window.Capacitor?.Plugins?.Device?.getInfo?.(),r=n?.model,i=n?.platform;t=JSON.stringify({hostname:r||($e8+d.Platform.isMobile?Math.random().toString(36).substring(7):``),platform:i||$e8,machineid:e})}return vD(t)},Ij={FirstLoaded:!0,StartDate:$nj,InsertAfter:``,UserName:$95,ProcessEntriesBelow:``,Language:`en`,SaveMemoButtonLabel:`NOTE`,SaveMemoButtonIcon:``,ShareFooterStart:`{ThinoNum} Thino {UsedDay} Day`,ShareFooterEnd:`✍️ by {UserName}`,DefaultPrefix:$na,DefaultTimePrefix:$17,UseDailyOrPeriodic:$63,InsertDateFormat:$cv,DefaultEditorLocation:$dw,UseButtonToShowEditor:!1,FocusOnEditor:!0,ShowClipboardOnFocus:!0,OpenDailyMemosWithMemos:!0,HideDoneTasks:!1,ShowTaskLabel:!0,AppendDateWhenTaskDone:!1,MobileAndDesktop:`All`,OpenMemosAutomatically:!1,ShowScrollbar:!1,ShowTime:!0,ShowDate:!0,AddBlankLineWhenDate:!1,AutoSaveWhenOnMobile:!1,DeleteFileName:$5v,QueryFileName:$pp,UseVaultTags:!1,SetCustomBackgroundImage:!1,SetCustomMemoFooter:!1,DefaultLightBackgroundImage:``,DefaultDarkBackgroundImage:``,DefaultLightBackgroundImageForClean:``,DefaultDarkBackgroundImageForClean:``,DefaultMemoComposition:`{TIME} {CONTENT}`,CommentOnMemos:!1,CommentsInOriginalNotes:!1,FetchMemosMark:`#memo`,FetchMemosFromNote:!1,ShowCommentOnMemos:!1,ShowLeftSideBar:!1,MemoListView:$0y,MemoSaveLocation:$00,MemoOtherSaveLocation:{MemoDefaultCanvasPath:$e0,MemoDefaultMultiFilePath:$0h,MemoDefaultSingleFilePath:$5t},JournalSettings:{granularity:$04,useIndependentSettings:!1,headingDateFormat:$02,daily:{folder:``,format:$02,template:``},weekly:{folder:``,format:$g5,template:``},monthly:{folder:``,format:$b0,template:``},yearly:{folder:``,format:$j9,template:``}},MemoDailyTarget:5,HeatmapColorScheme:$3q,EnabledHttpApi:!1,HttpApiIpType:$80,HttpApiPort:`43999`,AutoDownloadImage:!1,EditorType:$0k,EnabledLocationList:[{value:$00,target:$18,insert:$8j}],DeleteThinoDirectly:!1,CaptureKey:{EnableCaptureKey:!1,OpenThinoGlobally:`CommandOrControl+Shift+T`,ShowNearMouse:!1},startSync:!1,tokenForVerify:{},saveThinoType:$0i,showDayMark:!1,dayMarkRange:$04,navigation:!1,password:``,needVerify:!1,addTagAutomatically:!1,addTagPosition:$j2,addTagWithNewline:!1,chatViewStyle:$3q,MomentsBackgroundImage:`https://images.pexels.com/photos/531767/pexels-photo-531767.jpeg`,MomentsIcon:`https://images.pexels.com/photos/256514/pexels-photo-256514.jpeg`,MomentsQuote:`Share your thino with the world`,DefaultThemeForThino:$3f,LastUpdatedVersion:`0.0.0`,ShareToThinoWithText:!1,ShareToThinoWithTextAppend:``,ShareToThinoWithTextPrepend:``,ShareToThinoWithTextNewline:$1i,hidePinnedGroup:!1,DifferentInsertTarget:!1,InsertAfterForTask:``,ProcessContentTarget:$2k,InsertType:$2k,ShareAppendType:$a6,SharePrependType:$a6,SetFileNameAfterCreate:!1,TagForFileTypeFiles:`thino/file`,TagForMultiTypeFiles:`thino/multi`,MinHeightForShare:$go,ThinoMaxHeight:0,ThinoCollapsedHeight:100,OptimizeForCallout:!0,AppendOrPrependTextViaServer:!1,AppendViaServer:``,PrependViaServer:``,WithNewLineViaServer:$1i,SupportSelectOtherView:!1,WaitTemplaterToFinishParse:!1,NavbarButton:!1,AlwaysShowStatusText:!1,FilterByMetadata:!1,ShowSourcePath:!1,ShowUpdateMessage:!0,SyncManually:!1,MemoFixedPrefix:``,MemoFixedSuffix:``,UseMemoFixedStrings:!1,enableWordCount:!1,maxWordCount:0,enableReferenceLinksGroup:!1,doubleClickBehavior:$4r,useMobileViewDefaultHeader:!1,IgnoreFolderForMultiType:[],UseBlockLinkWhenDragging:!1,ShowScrollToTopButton:!0,ZoomImageWhenViewing:!1,ViewArchiveInRandomReview:!1,DraggingBehavior:$9u,superEnabled:!1,enableSecretMasking:!1,secretContentRegex:``,secretMaskingStyle:$4n,fsrsRequestRetention:.9,fsrsMaximumInterval:36500,fsrsEnableFuzz:!0,fsrsEnableShortTerm:!0,fsrsWeights:[],fsrsDailyLimit:100,wechat:{enabled:!1,autoStart:!1,defaultReply:``,voiceSaveMode:$6s,agentRouting:{enabled:!1,defaultAgent:$5u,agents:{claude:{type:$b3,command:$5u,aliases:[`cc`]},codex:{type:$b3,command:$2w,aliases:[`cx`]},gemini:{type:$b3,command:$9z,aliases:[`gm`]}}}},general:{...LD}},Lj=class extends d.PluginSettingTab{plugin;passwordMatched=!1;activeModal=null;icon=$44;constructor(e,t){super(e,t),this.plugin=t}settingDefinitionItems=null;getSettingDefinitions(){return this.settingDefinitionItems||=kD(),this.settingDefinitionItems}getElementForDefinition(e){for(let t of this.getSettingDefinitions())if(!(!($gm in t)||t.type!==$gt)&&(t===e||t.items?.some(t=>t===e))){let n=t===e?void 0:e.name;this.openSettingsModal(t.tabId,n);return}}renderTab(){this.display()}updateSettings(e,t){this.plugin.settings={...this.plugin.settings,[e]:t},this.applySettingsUpdate()}debounceApplySettingsUpdate=(0,d.debounce)(async()=>{await this.plugin.saveSettings()},100,!0);debounceDisplay=(0,d.debounce)(async()=>{if(this.activeModal){this.activeModal.openTab(this.activeModal.activeTabId);return}await this.displayAsync()},300,!0);applySettingsUpdate(){this.debounceApplySettingsUpdate(),Y.updateTagsState()}hide(){this.passwordMatched=!1}openSettingsModal(e,t){this.activeModal?this.activeModal.setInitialTabId(e):this.activeModal=new MD(this.app,this.plugin,this,e),this.activeModal.open(),t&&this.activeModal.revealSetting(t)}closeSettingsModal(){this.activeModal?.close()}onModalClose(){this.activeModal=null,this.passwordMatched=!1}renderTabInModal(e,t){switch(e){case $4s:this.generateGeneralSettings(t);break;case $0c:this.generateMemosSettings(t);break;case $83:this.generateThemeSettings(t);break;case $3d:this.generateEditorSettings(t);break;case`tasks`:this.generateTasksSettings(t);break;case $dg:this.generateShareSettings(t);break;case $23:this.generateSuperSettings(t);break;case $99:this.customProSettings(t);break;case $ed:this.generateReviewSettings(t);break;case`advanced`:this.generateAdvancedSettings(t);break;case $62:this.generateWeChatSettings(t);break;case`about`:this.generateAboutSettings(t);break}}display(){this.displayAsync()}async displayAsync(){await this.plugin.loadSettings(),this.containerEl.empty(),this.containerEl.toggleClass(`memos-settings`,!0),this.containerEl.toggleClass(`thino-settings-entry`,!0),d.Platform.isMobile&&this.containerEl.toggleClass(`memos-mobile`,!0),this.generateEntryPage()}generateEntryPage(){let{containerEl:e}=this,t=e.createDiv({cls:`settings-entry-header`}),n=t.createDiv({cls:`settings-entry-title-container`});(0,d.setIcon)(n.createSpan({cls:`settings-entry-logo`}),$2e);let r=n.createDiv({cls:`settings-entry-title-text`});r.createDiv({cls:`settings-entry-title`,text:$0h}),r.createSpan({cls:`settings-entry-version`,text:`v${this.plugin.manifest.version}`}),t.createDiv({cls:`settings-entry-desc`}).createEl(`p`,{text:F(771)}),new d.Setting(e).setName(F(987)).setDesc(F(940)).addButton(e=>{e.setButtonText(F(987)).setCta().onClick(()=>{this.openSettingsModal()})});let i=e.createDiv({cls:`settings-entry-links`});new d.Setting(i).setName(F(996)).setHeading();let a=i.createDiv({cls:`settings-entry-links-grid`}),o=[{icon:`book`,text:F(775),url:$1d},{icon:`github`,text:`GitHub`,url:$1d},{icon:`heart`,text:F(1020),url:gf()?$2t:$2h}];gf()&&o.push({icon:`clipboard-list`,text:`Thino Web 问卷`,url:`https://memos.pkmer.cn:6002/s/cmkev0bdr0000o201ckgbarid`}),o.forEach(e=>{let t=a.createEl(`a`,{cls:`settings-entry-link`,href:e.url});t.setAttr(`target`,$1l),(0,d.setIcon)(t.createSpan({cls:`settings-entry-link-icon`}),e.icon),t.createSpan({text:e.text})});let s=e.createDiv({cls:`settings-entry-features`});new d.Setting(s).setName(F(132)).setHeading();let c=[{icon:`chef-hat`,title:F(137),desc:F(1031),tabId:$4s},{icon:$2e,title:$0h,desc:F(980),tabId:$0c},{icon:`brush`,title:F(643),desc:F(1025),tabId:$83},{icon:$d4,title:F(527),desc:F(951),tabId:$3d},{icon:$lx,title:`Pro`,desc:F(995),tabId:$99},{icon:$58,title:$9f,desc:F(921),tabId:$23}],l=s.createDiv({cls:`settings-entry-features-grid`});c.forEach(e=>{let t=l.createDiv({cls:`settings-entry-feature`});e.tabId&&(t.addClass(`is-clickable`),t.addEventListener($05,()=>{this.openSettingsModal(e.tabId)})),(0,d.setIcon)(t.createDiv({cls:`settings-entry-feature-icon`}),e.icon);let n=t.createDiv({cls:`settings-entry-feature-text`});n.createEl($7x,{text:e.title}),n.createSpan({text:e.desc})})}async checkVerified(){return await Up()}generateProSettings(e,t){let n=tD(e,`🏆 `+F(351)),r=$(n,F(202),F(t?287:291)).setClass($fd).addButton(e=>{e.setCta().setButtonText(F(t?351:202)).onClick(()=>{new ID(this.app,this.plugin,()=>this.debounceDisplay()).open()})});r.settingEl.toggleClass(`thino-activation-setting`,!0),r.nameEl.toggleClass(`thino-activation-title`,!0);let i=!!this.plugin.settings.general?.userInfo?.sub;if(t&&!i){let e=!1;$(n,F(211)).setClass($fd).addButton(t=>{t.setWarning().setButtonText(F(212)).onClick(async()=>{if(!e){t.setButtonText(F(213)),e=!0;return}e=!1;let n=await Hp();nc(this.plugin.app,n)&&new d.Notice(F(210)),await this.plugin.verify(),G.setRefresh(!0),window.setTimeout(()=>{this.display()},20)})})}}generateGeneralSettings(e){new KD({containerEl:e,settingTab:this,plugin:this.plugin}).display()}async generateThemeSettings(e){let t=await this.checkVerified();await new XD({containerEl:e,settingTab:this,plugin:this.plugin,verified:t}).display()}async generateEditorSettings(e){new ZD({containerEl:e,settingTab:this,plugin:this.plugin}).display()}async generateTasksSettings(e){let t=tD(e,`📃 `+F(634));this.addTaskRelatedSettings(t)}async generateMemosSettings(e){let t=await Up();await new YD({containerEl:e,settingTab:this,plugin:this.plugin,verified:t}).display()}async generateShareSettings(e){let t=await Up();new $D({containerEl:e,settingTab:this,plugin:this.plugin,verified:t}).display()}async generateSuperSettings(e){let t=await this.checkVerified();await new nO({containerEl:e,settingTab:this,plugin:this.plugin,verified:t}).display()}generateReviewSettings(e){new tO({containerEl:e,settingTab:this,plugin:this.plugin}).display()}async generateAdvancedSettings(e){let t=tD(e,F(139));this.addAutoOpenMemosSettings(t),this.setPasswordSettings(t),this.addDoubleClickBehaviorSettings(t),this.addDraggingBehaviorSettings(t),this.saveDataSettings(t),this.fetchDataSettings(t),this.navigationSettings(t),this.optimizeForCalloutSettings(t),this.addSecretMaskingSettings(t),this.clearConfigSettings(t)}get rowProps(){return{settingTab:this,plugin:this.plugin}}addSecretMaskingSettings(e){if(!(0,d.requireApiVersion)($ms)){$(e,F(800),F(816));return}UD(this.rowProps,e,F(801),F(802),`enableSecretMasking`,{redraw:!0}),this.plugin.settings.enableSecretMasking&&($(e,F(803),F(804)).addText(e=>{e.setPlaceholder(`#secret`).setValue(this.plugin.settings.secretContentRegex),e.inputEl.addEventListener($4n,()=>{this.plugin.settings.secretContentRegex=e.inputEl.value,this.applySettingsUpdate()})}),GD(this.rowProps,e,F(805),F(806),`secretMaskingStyle`,[$4n,`Blur`,$64,`Block characters`]),$(e,F(807),F(808)).addButton(e=>{e.setButtonText(F(807)).onClick(()=>{new zj(this.app).open()})}))}async generateWeChatSettings(e){let t=await this.checkVerified();await new Nj({containerEl:e,settingTab:this,plugin:this.plugin,verified:t}).display()}async generateAboutSettings(e){new eO({containerEl:e,settingTab:this,plugin:this.plugin}).display()}async customProSettings(e){let t=await this.checkVerified();this.generateProSettings(e,t),new oO({containerEl:e,settingTab:this,plugin:this.plugin,verified:t}).display()}addDoubleClickBehaviorSettings(e){GD(this.rowProps,e,F(747),F(748),`doubleClickBehavior`,[$gd,F(749),$4r,F(750),$d7,F(751),$g2,F(752)])}addDraggingBehaviorSettings(e){GD(this.rowProps,e,F(768),F(769),`DraggingBehavior`,[$9u,F(770),$0l,F(773)])}saveDataSettings(e){UD(this.rowProps,e,F(193),F(194),$cn)}fetchDataSettings(e){$(e,F(122),F(123)).addDropdown(async e=>{e.addOption($63,F(124)),e.addOption($dt,$dt).setDisabled(!this.app.plugins.getPlugin($0m)),e.setValue(this.plugin.settings.UseDailyOrPeriodic).onChange(async e=>{this.plugin.settings.UseDailyOrPeriodic=e,this.applySettingsUpdate()})}).addExtraButton(e=>{e.setIcon($42).onClick(()=>{if(this.plugin.settings.UseDailyOrPeriodic===$63){if(!this.app.internalPlugins.plugins[$2l]?.enabled){new d.Notice(`Daily Notes plugin is not installed`);return}this.app.setting.open(),this.app.setting.openTabById($2l)}else{if(!this.app.plugins.getPlugin($0m)?._loaded){new d.Notice(`Periodic Notes plugin is not installed`);return}this.app.setting.open(),this.app.setting.openTabById($0m)}})})}navigationSettings(e){UD(this.rowProps,e,F(439),void 0,`navigation`)}optimizeForCalloutSettings(e){UD(this.rowProps,e,F(666),F(667),`OptimizeForCallout`)}clearConfigSettings(e){$(e,F(631),F(633)).addButton(e=>{e.setWarning().setButtonText(F(632)).onClick(async()=>{new A_(this.app,F(631),()=>{(async()=>{this.plugin.settings={...Ij,tokenForVerify:this.plugin.settings.tokenForVerify,password:this.plugin.settings.password,needVerify:this.plugin.settings.needVerify},this.debounceApplySettingsUpdate(),await Y.fetchAllMemos(),Y.updateTagsState(),Ys(this.plugin.app),G.setRefresh(!0),G.setMemoListView($0y),new d.Notice(F(630)),this.debounceDisplay()})()}).open()})})}addAutoOpenMemosSettings(e){GD(this.rowProps,e,F(11),F(12),`MobileAndDesktop`,[$lp,$lp,$nc,$nc,`All`,`All`]).addToggle(e=>e.setValue(this.plugin.settings.OpenMemosAutomatically).onChange(async e=>{this.plugin.settings.OpenMemosAutomatically=e,this.applySettingsUpdate()}))}setPasswordSettings(e){let t=()=>this.plugin.settings.needVerify&&!!this.plugin.settings.password&&!this.passwordMatched,n=(e,t)=>{this.passwordMatched||(e.preventDefault(),new Rj(this.app,this,this.plugin,e=>{t(e),this.passwordMatched=e,this.debounceDisplay()}).open(),new d.Notice(F(457)))};$(e,F(453)).addToggle(e=>{t()&&(e.toggleEl.onclick=t=>n(t,t=>{e.setDisabled(!t)})),e.setDisabled(t()).setValue(this.plugin.settings.needVerify).onChange(async e=>{this.plugin.settings.needVerify=e,e&&(this.passwordMatched=!1),this.applySettingsUpdate(),this.debounceDisplay()})}),this.plugin.settings.needVerify&&$(e,F(448)).addText(e=>{t()&&(e.inputEl.onclick=t=>n(t,t=>e.inputEl.readOnly=!t)),e.inputEl.readOnly=t(),e.inputEl.oncopy=()=>!1,e.inputEl.type=$41,e.setValue(this.plugin.settings.password).onChange(async e=>{this.plugin.settings.password=e,this.applySettingsUpdate()})})}addTaskRelatedSettings(e){UD(this.rowProps,e,F(100),F(101),$j7),UD(this.rowProps,e,F(635),F(636),$9m)}},Rj=class extends d.Modal{plugin;settingTab;constructor(e,t,n,r){super(e),this.cb=r,this.app=e,this.settingTab=t,this.plugin=n}onOpen(){let{contentEl:e}=this;e.parentElement?.classList.add($45),this.titleEl.toggleClass($mi,!0),this.titleEl.setText(F(456)),e.createDiv($31,e=>{e.setText(F(457))});let t=new d.Setting(e.createDiv($b8)).setName(F(455)).addText(e=>{e.setPlaceholder(F(458)).inputEl.type=$41}),n=e.createDiv($1p),r=n.createEl($7,{text:F(305)}),i=n.createEl($7,{cls:`thino-password-confirm-btn`,text:F(213).replace(/(\?|?)/g,``)});i.onclick=async()=>{t.controlEl.querySelector($09).value===this.plugin.settings.password?(this.cb?.(!0),this.close()):new d.Notice(F(451))},r.onclick=async()=>{this.close()}}onClose(){let{contentEl:e}=this;e.empty()}},zj=class extends d.Modal{constructor(e){super(e)}onOpen(){let{contentEl:e}=this;this.titleEl.setText(F(807));let t=e.createEl($09,{type:$41,placeholder:F(810),cls:$3h}),n=e.createEl($09,{type:$41,placeholder:F(811),cls:$3h}),r=e.createDiv($1p),i=r.createEl($7,{text:F(305)}),a=r.createEl($7,{text:F(791),cls:$2c});i.onclick=()=>this.close(),a.onclick=()=>{let e=t.value,r=n.value;if(e){if(e!==r){new d.Notice(F(812));return}this.app.secretStorage.setSecret($6e,e),new d.Notice(F(814)),this.close()}}}onClose(){this.contentEl.empty()}},Bj=u(s(((e,t)=>{t.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t==$0j&&typeof n==$0j){if(t.constructor!==n.constructor)return!1;var r,i,a;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(a=Object.keys(t),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}}))()),Vj=p.Facet.define({combine:e=>({defaultPlacement:e.find(e=>e.defaultPlacement)?.defaultPlacement||$4f,padding:e.find(e=>e.padding)?.padding||8})}),Hj=e=>e.split(`-`)[0],Uj=e=>e===`x`?`y`:`x`,Wj=e=>[$4f,$1m].includes(Hj(e))?`x`:`y`,Gj=(e,t,n)=>Math.max(e,Math.min(t,n)),Kj=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,n],r)=>[e,t(n,e,r)])),qj=e=>e===void 0?e:typeof e==$0e?-e:Kj(e,e=>e===void 0?e:-e),Jj=(e={})=>({name:$pq,fn:async t=>{let{x:n,y:r,placement:i}=t,{mainAxis:a=!0,crossAxis:o=!1,limiter:s=({x:e,y:t})=>({x:e,y:t}),editorMenu:c,...l}=e,u={x:n,y:r},d=await im(t,l),f=Wj(Hj(i)),p=Uj(f),m=u[f],h=u[p];if(a){let e=f===`y`?$4f:$1y,n=f===`y`?$1m:$2i,r=m+d[e],i=m-d[n];if(c){let a=await im(t,{...l,boundary:c.dom,padding:qj(l.padding)});if((p===`y`?[$4f,$1m]:[$1y,$2i]).every(e=>a[e]<=0)){let o=t.rects.floating.width,s=m+a[e]-o,c=m-a[n]+o,l=Math.abs(d[e]-a[e]),u=Math.abs(d[n]-a[n]);m=l>=o||u<l?Gj(r,m,s):Gj(c,m,i)}else m=Gj(r,m,i)}else m=Gj(r,m,i)}if(o){let e=p===`y`?$4f:$1y,t=p===`y`?$1m:$2i,n=h+d[e],r=h-d[t];h=Gj(n,h,r)}return s({...t,[f]:m,[p]:h})}}),Yj=`thino-mini-toolbar`,Xj=(e=0,t=0)=>({width:0,height:0,top:t,left:e,bottom:t,right:e,x:e,y:t}),Zj=(e,t)=>{if(!e)return null;let n=Math.min(e.left,t?.left??e.left),r=Math.max(e.right,t?.right??e.right),i=Math.max(e.bottom,t?.bottom??e.bottom)-Math.min(e.top,t?.top??e.top),a=Math.min(e.top,t?.top??e.top),o={left:n,right:r,top:a,bottom:a+i,width:0,height:i,x:a,y:n};return t&&(o.width=Math.abs(r-n)),o},Qj=Xj(),$j=class{containerEl;virtualEl;toolbar=null;isThinoView;get workspace(){return this.view.state.field(d.editorInfoField).app.workspace}tooltipInfo;inView=!0;defaultPlacement;editorMenu;constructor(e){this.view=e,this.containerEl=this.view.dom.parentElement,this.defaultPlacement=this.view.state.facet(Vj).defaultPlacement,this.tooltipInfo=e.state.facet(tM),this.virtualEl={rect:Qj,getBoundingClientRect(){return this.rect}},this.maybeMeasure(),this.editorMenu={currMenu:null,evtRef:e.state.field(d.editorInfoField)},this.isThinoView=this.checkThinoView()}checkThinoView(){return this.view.state.field(d.editorInfoField)?this.view.state.field(d.editorInfoField)&&this.view.state.field(d.editorInfoField)?.getViewType?.()===$0n:!1}shouldRemoveToolbar(e){return!((e??this.tooltipInfo)?.end||this.editorMenu.currMenu)}onEditorMenuOpen(e){this.editorMenu.currMenu||(this.editorMenu.currMenu=e,this.cachedRefRect?this.computePosition(this.cachedRefRect):this.maybeMeasure(),!d.Platform.isMacOS&&this.tooltipInfo&&(this.createToolbar(),this.maybeMeasure()))}onEditorMenuClose(e){this.editorMenu.currMenu===e&&(this.editorMenu.currMenu=null),!d.Platform.isMacOS&&this.toolbar&&this.shouldRemoveToolbar()&&this.removeToolbar()}createToolbar(e){let t=e??this.tooltipInfo;if(!t)return;this.removeToolbar();let n=t.create(this.containerEl),r=this.view.state.field(d.editorInfoField);if(!r||!r?.editor)return;let i=r.editor.offsetToPos(t.start),a=t.end?r.editor.offsetToPos(t.end):i;this.workspace.trigger(Yj,n,{from:i,to:a},r.editor,r),this.toolbar=n}removeToolbar(){this.toolbar&&=(this.toolbar.hide(),null)}update(e){if(!this.isThinoView)return;let t=e.state.facet(tM),n=t!==this.tooltipInfo&&!(0,Bj.default)(t,this.tooltipInfo);n&&(this.tooltipInfo=t,this.shouldRemoveToolbar()?this.removeToolbar():t&&!this.toolbar&&this.createToolbar(t));let r=n||e.geometryChanged,i=e.state.facet(Vj);i.defaultPlacement!=this.defaultPlacement&&(i.defaultPlacement=this.defaultPlacement),r&&this.maybeMeasure()}destroy(){this.editorMenu.currMenu=null,this.removeToolbar(),this.toolbar=null,this.view.state.field(d.editorInfoField).app.workspace.offref(this.editorMenu.evtRef)}cachedRefRect=null;readFromDOM=()=>{if(this.tooltipInfo){let{start:e}=this.tooltipInfo,{end:t}=this.tooltipInfo;t&&e===t&&(t=void 0);let n=this.view.coordsAtPos(e),r=t?this.view.coordsAtPos(t):null;if(n&&r&&n.top!==r.top){let e=this.view.contentDOM.getBoundingClientRect();r={left:e.right,right:e.right,top:n.top,bottom:n.bottom}}let i=Zj(n,r);i&&(this.cachedRefRect=i,this.computePosition(i))}};async computePosition(e){if(!this.toolbar)return;this.virtualEl.rect=e;let{padding:t}=this.view.state.facet(Vj),{x:n,y:r}=await th(this.virtualEl,this.toolbar.dom,{placement:this.defaultPlacement,middleware:[gm({mainAxis:5}),mm({padding:t,boundary:this.view.scrollDOM}),Jj({padding:t,boundary:this.view.scrollDOM,editorMenu:this.editorMenu.currMenu})]});Object.assign(this.toolbar.dom.style,{top:`0`,left:`0`,transform:`translate(${Math.round(n)}px,${Math.round(r)}px)`})}maybeMeasure(){this.view.inView&&this.toolbar&&this.view.requestMeasure({read:this.readFromDOM}),this.inView!=this.view.inView&&(this.inView=this.view.inView,this.inView||this.removeToolbar())}},eM=m.ViewPlugin.fromClass($j,{eventHandlers:{scroll(){this.maybeMeasure()}}}),tM=p.Facet.define({enables:[eM],combine:e=>e.filter(e=>e!=null).first()??null}),nM=e=>{let t=sM(e);t&&window.navigator.clipboard.writeText(t?.getSelection())},rM=e=>{e.commands.executeCommandById(`editor:toggle-bold`,e)},iM=e=>{e.commands.executeCommandById(`editor:toggle-strikethrough`,e)},aM=e=>{e.commands.executeCommandById(`editor:toggle-highlight`,e)},oM=e=>{e.commands.executeCommandById(`editor:toggle-italics`,e)},sM=e=>{let{editor:t}=e.field(d.editorInfoField);return t},cM=(e,t)=>{let n=e.selection.ranges[0];if(!n)return null;let{anchor:r,head:i,empty:a}=n,[o,s]=[r,i].sort();return{start:o,end:a?void 0:s,create:n=>new fM(n).addSmallButton(t=>{t.setClass($30).setIcon($27).onClick(()=>nM(e))}).addSmallButton(e=>{e.setClass($30).setIcon(`bold`).onClick(()=>rM(t))}).addSmallButton(e=>{e.setClass($30).setIcon(`italic`).onClick(()=>oM(t))}).addSmallButton(e=>{e.setClass($30).setIcon($k1).onClick(()=>iM(t))}).addSmallButton(e=>{e.setClass($30).setIcon($me).onClick(()=>aM(t))})}},lM=e=>p.StateField.define({create:t=>cM(t,e),update:(t,n)=>!n.docChanged&&!n.selection?t:cM(n.state,e),provide:e=>tM.from(e)}),uM=e=>[lM(e)],dM=class extends d.BaseComponent{button;disabled=!1;dropdownOptions=[];menu;menuOpened=!1;constructor(e){super(),this.button=new d.ButtonComponent(e)}setDisabled(e){return this.button.setDisabled(e),this.disabled=e,this}setIcon(e){return this.button.setIcon(e),this}setClass(e){return this.button.setClass(e),this}setDropdownText(e){let t=this.button.buttonEl.createDiv(`mini-toolbar-text`);(0,d.setIcon)(this.button.buttonEl.createDiv(`mini-toolbar-icon-with-text`),$4z);let n=e.doc.lineAt(e.selection.ranges[0].from)?.from,r=(0,f.syntaxTree)(e).resolveInner(n+1),i=r.type.prop(f.tokenClassNodeProp);return t.setText(this.detectFormat(i,r)||$nm),this}setDropdownIcon(){let e=this.button.buttonEl.createDiv(`mini-toolbar-highlight-icon`),t=this.button.buttonEl.createDiv(`mini-toolbar-icon-with-icon`);return(0,d.setIcon)(e,$me),(0,d.setIcon)(t,$4z),this}detectFormat(e,t){if(!e)return $nm;if(e.includes($7x))return`Bold`;if(e.includes(`em`))return`Italic`;if(e.includes($k1))return`Strike`;if(e.contains(`hmd-codeblock`))return`CodeBlock`;if(e.contains(`hmd-inline-code`))return`Code`;if(e.contains(`formatting-header`)){let t=e.match(/header-\d{1,}/);if(t)return`Heading `+t[0].slice(-1)}if(e.contains(`formatting-list`)||e.contains(`hmd-list-indent`)){if(t?.parent&&(t.parent?.type.prop(f.lineClassNodeProp))?.contains(`HyperMD-task-line`))return`To-do list`;if(e.contains(`formatting-list-ol`))return`Numbered list`;if(e.contains(`formatting-list-ul`))return`Bulleted list`}}setTooltip(e){return this.button.setTooltip(e),this}setOptionsList(e){return this.dropdownOptions=e,this}onClick(e){return this.dropdownOptions.length>0?(this.button.onClick(e=>this.showEditMenu(e)),this):(this.button.onClick(e),this)}showEditMenu(e){if(this.menuOpened=!this.menuOpened,!this.menuOpened)return;this.menu=new d.Menu,this.menu.onHide(()=>{this.menuOpened=!1});let t=e.currentTarget,n=e.currentTarget?.getBoundingClientRect(),r={x:n.left-6,y:n.bottom+6};for(let e=0;e<this.dropdownOptions?.length;e++)this.menu.addItem(t=>{t.setIcon(`zap`).setTitle(this.dropdownOptions[e]).onClick(()=>{})});this.menu.setParentElement(t).showAtPosition(r)}then(e){return e(this),this}},fM=class extends d.Component{dom;smallBtnContainer;constructor(e){super(),this.dom=(e?.closest($bi)||e?.closest($kb)).createDiv({cls:`cm-mini-toolbar`},e=>e.setCssStyles({position:$dx})),this.smallBtnContainer=this.dom}addSmallButton(e){return e(new dM(this.smallBtnContainer)),this}unloading=!1;hide(){return this.unload(),this.unloading?this:(this.unloading=!0,this.dom.detach(),this.unloading=!1,this)}};I();var pM=m.Decoration.line({attributes:{"data-ph":F(49)},class:`thino-editor-placeholder`}),mM=p.StateField.define({create(){return m.Decoration.none},update(e,t){let n=t.state.field(d.editorInfoField);if(!n||n.getViewType&&n.getViewType()!==$0n)return e;let r=new p.RangeSetBuilder,i=t.state.doc.toString(),a=t.state.doc.lineAt(0);return i?.length==0&&r.add(a.from,a.from,pM),r.finish()},provide:e=>m.EditorView.decorations.from(e)});ro();function hM(e){return`userId:${e}`}function gM(e,t){return`expiryDate:${t}:${e}`}function _M(e){try{if(!e?.appId)return``;let t=hM(e.appId);return no.get([t])[t]||``}catch(e){return console.error(e),``}}function vM(e,t){try{if(!t?.appId)return;let n=hM(t.appId);return no.set({[n]:e}),{userId:e,key:n}}catch(e){console.error(e)}}function yM(e,t){try{if(!t?.appId)return;let n=gM(_M(t),t.appId);no.set({[n]:e})}catch(e){console.error(e)}}X(),ia(),Ia(),I(),Dn(),jp();var bM=Ap($4t),xM=Ap(`url`);function SM(e){e.setHeader(`Access-Control-Allow-Origin`,`*`),e.setHeader(`Access-Control-Allow-Methods`,`GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE`),e.setHeader(`Access-Control-Allow-Headers`,`Origin, X-Requested-With, Content-Type, Accept, Authorization, Cache-Control, Pragma`)}function CM(e,t){e.statusCode=200,e.setHeader($ki,$0d),e.end(JSON.stringify(t))}var wM=class{server=null;isServerRunning=!1;plugin;settings;tokenManager;constructor(e,t){this.plugin=e,this.settings=t,this.tokenManager=new iO(e)}createSecureServer(){this.server=bM.createServer((e,t)=>{(async()=>{SM(t),t.setHeader(`Access-Control-Allow-Credentials`,$pn),t.setHeader(`Access-Control-Max-Age`,`86400`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.setHeader(`X-Frame-Options`,`DENY`),t.setHeader(`X-XSS-Protection`,`1; mode=block`),t.setHeader(`Strict-Transport-Security`,`max-age=31536000; includeSubDomains`);try{await this.handleRequest(e,t)}catch(e){console.error(`Request handling error:`,e),this.sendErrorResponse(t,500,$aj)}})()}),this.server.on($12,e=>{console.error(`Server error:`,e),new d.Notice(`Thino - Server error: `+e.message)}),this.server.on(`clientError`,(e,t)=>{console.error(`Client error:`,e),t.end(`HTTP/1.1 400 Bad Request\r
  200. \r
  201. `)})}async handleRequest(e,t){if(!e.url){this.sendErrorResponse(t,400,`Invalid request`);return}let n=xM.parse(e.url,!0),r=n.pathname;if(e.method===`OPTIONS`){t.statusCode=200,t.setHeader(`Content-Length`,`0`),t.end();return}let i=e.headers.authorization;if(!i){this.sendErrorResponse(t,401,`Missing authorization header`);return}let a=this.tokenManager.extractTokenFromHeader(i);if(!a){this.sendErrorResponse(t,401,`Invalid authorization format`);return}if(!await this.tokenManager.validateToken(a)){this.sendErrorResponse(t,401,`Invalid or expired token`);return}if(!await this.tokenManager.isUserVerified()){this.sendErrorResponse(t,403,`Pro license required`);return}let o=e.socket.remoteAddress||$bf;if(!this.checkRateLimit(o)){this.sendErrorResponse(t,429,`Too many requests`);return}try{switch(r){case`/create`:await this.handleCreateRequest(e,t);break;case`/search`:await this.handleSearchRequest(e,t,n.query);break;case`/list`:await this.handleListRequest(e,t,n.query);break;case`/info`:await this.handleInfoRequest(e,t,n.query);break;default:this.sendErrorResponse(t,404,`Not found`);break}}catch(e){console.error(`Route handling error:`,e),this.sendErrorResponse(t,500,$aj)}}async handleCreateRequest(e,t){if(e.method!==$25){this.sendErrorResponse(t,405,$3v);return}let n=``,r=0;e.on($g0,e=>{if(r+=e.length,r>10485760){this.sendErrorResponse(t,413,`Request too large`);return}n+=e.toString()});let i=async()=>{try{let e=this.validateAndSanitizeInput(JSON.parse(n));CM(t,await this.processCreateRequest(e))}catch(e){console.error(`Create request error:`,e),this.sendErrorResponse(t,400,$bt)}};e.on($5q,()=>{i()}),e.on($12,e=>{console.error(`Request stream error:`,e),this.sendErrorResponse(t,400,`Request error`)})}async handleSearchRequest(e,t,n){if(e.method!==$3i){this.sendErrorResponse(t,405,$3v);return}let r=this.sanitizeInput(n.keyword);if(!r){this.sendErrorResponse(t,400,`Invalid keyword`);return}try{CM(t,{status:$3a,thinos:Y.getThinoViaKeyword(r)})}catch(e){console.error(`Search error:`,e),this.sendErrorResponse(t,500,`Search failed`)}}async handleListRequest(e,t,n){if(e.method!==$3i){this.sendErrorResponse(t,405,$3v);return}let r=n.count,i=Math.min(Math.max(parseInt(r)||10,1),100);try{CM(t,{status:$3a,thinos:Y.getState().memos.slice(0,i)})}catch(e){console.error(`List error:`,e),this.sendErrorResponse(t,500,`List failed`)}}async handleInfoRequest(e,t,n){if(e.method!==$3i){this.sendErrorResponse(t,405,$3v);return}if(!n.getSettings){this.sendErrorResponse(t,400,`Missing getSettings parameter`);return}try{let e=W.getState().settings;CM(t,{status:$3a,infoSettings:e})}catch(e){console.error(`Info error:`,e),this.sendErrorResponse(t,500,`Info retrieval failed`)}}validateAndSanitizeInput(e){if(!e||typeof e!=$0j)throw Error($bt);let t=e;return{text:this.sanitizeInput(t.text||``),isList:!!t.isList,type:this.sanitizeInput(t.type||``),imageList:Array.isArray(t.imageList)?t.imageList.slice(0,10):[],sourceLink:this.sanitizeInput(t.sourceLink||``)}}sanitizeInput(e){return typeof e==$q?e.replace(/[<>]/g,``).replace(/javascript:/gi,``).replace(/data:/gi,``).substring(0,1e4):``}async processCreateRequest(e){let{text:t,isList:n,type:r,imageList:i,sourceLink:a}=e;if(!t)return{status:$3a,thino:null,link:null};let o=t;if(/<[a-zA-Z][^>]*>/g.test(t)&&(o=(0,d.htmlToMarkdown)(t)),a)try{o=`${o} [source](<${decodeURIComponent(a)}>)`}catch(e){console.warn(`Failed to decode source link:`,e)}this.settings.AutoDownloadImage&&i.length>0&&(o=await this.processImages(o,i)),this.plugin.settings?.AppendOrPrependTextViaServer&&(o=this.formatText(o));let s=r||this.settings.MemoSaveLocation,c=await Y.createThino({content:o,isList:n,type:s});return c&&(Y.pushMemo(c),K.clearQuery()),{status:$3a,thino:c,link:c?`obsidian://thino?openId=${c.id}`:null}}async processImages(e,t){try{let n=e.match(Xi)||[],r=[];for(let e of n.slice(0,5))try{let t=await R.grabImageFromUrl(e);if(t.size===0)continue;let n=new File([t],$hy,{type:$14}),i=await this.handleUploadFile(n);i&&r.push({oldUrl:e,newUrl:i})}catch(e){console.error(`Error processing image URL:`,e)}r.forEach(t=>{e=e.replace(t.oldUrl,t.newUrl)});let i=[];for(let e of t.slice(0,5))try{if(typeof e==$q&&e.startsWith(`data:image/`)){let t=this.base64ImageToBlob(e),n=new File([t],$hy,{type:$14}),r=await this.handleUploadFile(n);r&&i.push(r)}}catch(e){console.error(`Error processing base64 image:`,e)}i.length>0&&(e+=`
  202. `+i.join(`
  203. `))}catch(e){console.error(`Error processing images:`,e)}return e}base64ImageToBlob(e){let t=e.indexOf(`;base64,`);if(t===-1)throw Error(`Invalid base64 image format`);let n=e.substring(5,t),r=e.slice(t+8);if(!/^[A-Za-z0-9+/]*={0,2}$/.test(r))throw Error(`Invalid base64 characters`);let i=atob(r),a=new ArrayBuffer(i.length),o=new Uint8Array(a);for(let e=0;e<i.length;e++)o[e]=i.charCodeAt(e);return new Blob([a],{type:n})}async handleUploadFile(e){let{type:t}=e;if(!t.startsWith($53))return null;try{return`${await pf.upload(e)}`}catch(e){return console.error(`Upload error:`,e),new d.Notice(String(e)),null}}formatText(e){let t=this.settings;return`${t?.PrependViaServer||``}${t?.WithNewLineViaServer===$3r||t?.WithNewLineViaServer===$6s?`
  204. `:``}${e}${t?.WithNewLineViaServer===$ie||t?.WithNewLineViaServer===$6s?`
  205. `:``}${t?.AppendViaServer||``}`}sendErrorResponse(e,t,n){e.statusCode=t,e.setHeader($ki,$0d),SM(e),e.end(JSON.stringify({status:$12,message:n}))}rateLimitMap=new Map;checkRateLimit(e){let t=Date.now(),n=this.rateLimitMap.get(e);return!n||t>n.resetTime?(this.rateLimitMap.set(e,{count:1,resetTime:t+6e4}),!0):n.count>=100?!1:(n.count++,!0)}async listen(e,t){try{this.createSecureServer(),P(`Thino - Starting HTTP server on port ${t}`),this.server?.listen({port:parseInt(t),host:e},()=>{this.isServerRunning=!0,P(`Thino - Started HTTP server on port ${t}`),new d.Notice(`${F(273)} ${t}`)})}catch(e){throw console.error(`Failed to start server:`,e),new d.Notice(F(272)),e}}close(){this.server&&this.isServerRunning&&this.server.close(()=>{this.isServerRunning=!1,P(`Thino - Terminated HTTP server`),new d.Notice(F(274))})}isRunning(){return this.isServerRunning}};function TM(e,t){let n=new wM(e,t);return{listen(e,t){n.listen(e,t)},close(){n.close()}}}jp();var{clipboard:EM}=Ap($jj),DM=new class{eventListeners;constructor(){this.eventListeners={}}on(e,t){this.eventListeners[e]=this.eventListeners[e]||[],this.eventListeners[e].push(t)}once(e,t){t.$emitOnce=!0,this.on(e,t)}removeListener(e,t){if(this.eventListeners[e]){let n=this.eventListeners[e].findIndex(e=>e===t);n>=0&&this.eventListeners[e].splice(n,1)}}removeAllListeners(e){this.eventListeners[e]&&(this.eventListeners[e].length=0)}emit(e,...t){this.eventListeners[e]&&this.eventListeners[e].forEach(n=>{n.call(this,...t),n.$emitOnce&&this.removeListener(e,n)})}},OM=null,kM=EM?.readText(),AM=EM?.readImage();EM&&(EM.on=(e,t)=>(DM.on(e,t),EM),EM.once=(e,t)=>(DM.once(e,t),EM),EM.off=(e,t)=>(t?DM.removeListener(e,t):DM.removeAllListeners(e),EM),EM.startWatching=()=>(OM||=window.setInterval(()=>{jM(kM,kM=EM?.readText())&&DM.emit($dh),MM(AM,AM=EM?.readImage())&&DM.emit($b5)},500),EM),EM.stopWatching=()=>(OM&&window.clearInterval(OM),OM=null,EM));function jM(e,t){return t&&e!==t}function MM(e,t){return!!t&&!t.isEmpty()&&e?.toDataURL()!==t.toDataURL()}I(),jp();var NM=Ap($jj)?.remote,PM=Ap($jj)?.remote?.screen,FM=class{isRegisted;leaf;clipboard;isScreenTop=!1;currentSplitWindow;intervalNum;allowsCopy=!1;plugin;actionEl=null;constructor(e,t){this.app=e,this.plugin=t,this.isRegisted=!1,this.leaf=null,this.clipboard=EM}async onload(){d.Platform.isDesktop&&(this.initGlobalCopyEvents(),await this.registerAllShortcuts(),this.registerEvents())}registerEvents(){this.plugin.registerEvent(this.app.workspace.on(`quit`,()=>{NM.globalShortcut.unregister(this.plugin.settings.CaptureKey.OpenThinoGlobally)}))}initGlobalCopyEvents(){this.plugin.addCommand({id:`init-global-copy-events`,name:F(354),callback:()=>{this.allowsCopy=!this.allowsCopy,!this.allowsCopy&&this.clipboard.stopWatching(),this.allowsCopy&&this.clipboard.startWatching(),this.leaf&&this.allowsCopy&&(this.actionEl=this.leaf.view.addAction(`clipboard-x`,`Stop global copying`,()=>{this.allowsCopy=!1,this.clipboard.stopWatching(),this.actionEl?.remove()}))}})}onunload(){this.isRegisted&&(NM.globalShortcut.unregister(this.plugin.settings.CaptureKey.OpenThinoGlobally),this.clipboard.off($dh),this.clipboard.off($b5),this.clipboard.stopWatching(),this.leaf&&this.leaf.detach())}getCurrentLeaf(){return this.leaf?this.app.workspace.getLeavesOfType($0n).length>0&&this.app.workspace.getLeafById(this.leaf.id)?!0:(this.leaf?.detach(),this.currentSplitWindow.close(),this.currentSplitWindow=null,this.leaf=null,this.isScreenTop=!1,!1):!1}async registerAllShortcuts(){NM?.globalShortcut?.register(this.plugin.settings.CaptureKey.OpenThinoGlobally,()=>{this.getCurrentLeaf()?this.showThinoView():this.openThinoView()}),this.isRegisted=!0}showThinoView(){let e=PM.getCursorScreenPoint(),t=this.leaf?.parent?.parent?.win?.electronWindow;if(t){if(t.setAlwaysOnTop(!this.isScreenTop,$io),this.leaf.setPinned(!this.isScreenTop),this.leaf.view.containerEl.toggleClass($ek,!0),t.isMinimized()&&t.restore(),t.focus(),this.plugin.settings.CaptureKey.ShowNearMouse){let{width:n,height:r}=t.getBounds();t.setBounds({x:e.x,y:e.y,width:n,height:r})}if(this.app.workspace.trigger($1h),this.isScreenTop){this.isScreenTop=!1,window.setTimeout(()=>{t.setAlwaysOnTop(!1,$io)},200);return}this.isScreenTop=!0}}openThinoView(){this.leaf=this.app.workspace.openPopoutLeaf({size:{width:400,height:400}});let e=this.leaf;this.leaf.view.containerEl.toggleClass($ek,!0),this.leaf.setViewState({type:$0n}),window.setTimeout(()=>{e.view.containerEl.classList.toggle($8r,!0)},0),this.currentSplitWindow=this.leaf?.parent?.parent??null;let t=this.leaf?.parent?.parent?.win.electronWindow;if(!t)return;t.setAlwaysOnTop(!this.isScreenTop,$io),this.leaf.setPinned(!this.isScreenTop),this.isScreenTop=!0;let n=this.app,r=t=>{let r=PM.getCursorScreenPoint(),i=e?.parent?.parent?.win?.electronWindow;if(i){if(i.isMinimized()&&i.restore(),!this.isScreenTop&&this.plugin.settings.CaptureKey.ShowNearMouse){let{width:e,height:t}=i.getBounds();i.setBounds({x:r.x,y:r.y-200,width:e,height:t})}i.setAlwaysOnTop(!0,$io),n.workspace.trigger($1h),n.workspace.trigger($ba,t,e)}};this.clipboard.on($dh,()=>{r(this.clipboard.readText())}).on($b5,()=>{r(this.clipboard.readImage())})}},IM=class extends d.Modal{bridge=null;constructor(e){super(e)}getViewType(){return $0n}onOpen(){let{contentEl:e,modalEl:t}=this;try{e.empty(),this.bridge=new lg(e,Iv,{editorType:$1g,destroy:this.close.bind(this),modal:this}),this.bridge.load(),t.toggleClass($ej,!0),window.setTimeout(()=>{e.querySelector($0o)?.focus(),this.app.workspace.trigger($1h)},10)}catch(e){console.error(e)}}onClose(){this.bridge?.unload(),this.bridge=null,this.containerEl&&this.containerEl.empty()}};X();var LM=class extends d.EditorSuggest{editor;cursor;plugin;tags;type=$ow;HASHTAG_REGEX=/(^|\s)#[^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~[\]\\\s]*$/g;constructor(e,t){super(e),this.plugin=t}checkSettings(){return this.plugin.settings.UseVaultTags}checkInMemosView(e){let t=e.containerEl;return t&&(t.parentElement?.parentElement)?.classList.contains($5a)||!1}fuzzySearchItemsOptimized(e,t){let n=(0,d.prepareFuzzySearch)(e);return t.map(e=>{let t=n(e);return t?{item:e,match:t}:null}).filter(Boolean)}onTrigger(e,t){if(!this.checkInMemosView(t)||this.checkSettings())return null;this.tags=Y.getState().tags,this.cursor=e,this.editor=t;let n=e.line,r=t.getLine(n),i=r.slice(0,e.ch);if(i.match(this.HASHTAG_REGEX)&&r.slice(e.ch,e.ch+1)!==`#`){let t=i.lastIndexOf(`#`),r=i.slice(t+1);return{start:{line:n,ch:t},end:{line:n,ch:e.ch},query:r}}return null}getSuggestions(e){return this.fuzzySearchItemsOptimized(e.query,this.tags).map(e=>e.item).sort((e,t)=>e.localeCompare(t))||[]}renderSuggestion(e,t){t.setText(e)}selectSuggestion(e){if(this.context){let t=this.context.editor,n=this.context.start,r=this.context.end;t.transaction({changes:[{from:n,to:r,text:`#`+e+` `}]}),window.setTimeout(function(){return t.focus()})}this.close()}};Wl();var RM=class{notice;unsubscribe;titleEl;fillEl;detailEl;finished=!1;constructor(){let e=createFragment(),t=e.createDiv({cls:`thino-sync-progress`});t.setCssStyles({minWidth:`220px`}),this.titleEl=t.createDiv({cls:`thino-sync-progress-title`,text:`Syncing with Thino Web`}),this.titleEl.setCssStyles({fontWeight:`600`,marginBottom:`6px`});let n=t.createDiv({cls:`thino-sync-progress-track`});n.setCssStyles({height:`6px`,borderRadius:`3px`,background:$59,overflow:$5w}),this.fillEl=n.createDiv({cls:`thino-sync-progress-fill`}),this.fillEl.setCssStyles({height:$2n,width:`0%`,borderRadius:`3px`,background:$8g,transition:`width 120ms ease`}),this.detailEl=t.createDiv({cls:`thino-sync-progress-detail`}),this.detailEl.setCssStyles({marginTop:`4px`,fontSize:`var(--font-ui-smaller)`,color:$7j}),this.notice=new d.Notice(e,0),this.render(q.getSnapshot()),this.unsubscribe=q.subscribe(()=>this.render(q.getSnapshot()))}isFinished(){return this.finished}render(e){if(this.finished)return;e.message&&(this.titleEl.textContent=e.message);let{processed:t,total:n}=e;if(n>0){let e=Math.min(t,n),r=Math.min(100,Math.round(e/n*100));this.fillEl.setCssStyles({width:`${r}%`}),this.detailEl.textContent=`${e} / ${n} · ${r}%`}else this.fillEl.setCssStyles({width:`0%`}),this.detailEl.textContent=`…`}finish(e,t){if(this.finished)return;this.finished=!0,this.unsubscribe();let n=q.getSnapshot();e?(this.fillEl.setCssStyles({width:$2n}),this.titleEl.textContent=n.message||$9q,this.detailEl.textContent=n.total>0?`${n.total} / ${n.total} · 100%`:``,window.setTimeout(()=>this.hideNow(),3e3)):(this.fillEl.setCssStyles({background:`var(--text-error)`}),this.titleEl.textContent=n.message||`Sync failed`,this.detailEl.textContent=t||n.error||``,window.setTimeout(()=>this.hideNow(),8e3))}hideNow(){this.notice.hide(),zM===this&&(zM=null)}},zM=null;function BM(){return zM&&!zM.isFinished()?zM:(zM?.hideNow(),zM=new RM,zM)}var VM={name:`RSASSA-PKCS1-v1_5`,hash:`SHA-256`};function HM(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function UM(e){if(!/^[A-Za-z0-9_-]*$/.test(e))throw TypeError(`Invalid base64url string`);let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return HM(t+`=`.repeat((4-t.length%4)%4))}async function WM(e){let t=e.replace(/-----BEGIN [^-]+-----/,``).replace(/-----END [^-]+-----/,``).replace(/\s+/g,``);if(!t)throw TypeError(`Invalid SPKI PEM input`);let n=HM(t);return crypto.subtle.importKey(`spki`,n,VM,!1,[`verify`])}async function GM(e,t){if(typeof e!=$q)throw TypeError(`Compact JWS must be a string`);let n=e.split(`.`);if(n.length!==3)throw TypeError(`Invalid Compact JWS`);let[r,i,a]=n;if(!r)throw TypeError(`Invalid Compact JWS: missing protected header`);let o;try{o=JSON.parse(new TextDecoder().decode(UM(r)))}catch{throw TypeError(`Invalid Compact JWS: protected header is not valid JSON`)}if(!o||typeof o!=$0j)throw TypeError(`Invalid Compact JWS: protected header is not an object`);if(o.alg!==`RS256`)throw TypeError(`Unsupported "alg" value: ${String(o.alg)}`);if(`crit`in o)throw TypeError(`Unsupported "crit" header parameter`);let s=UM(i),c=UM(a),l=new TextEncoder().encode(`${r}.${i}`);if(!await crypto.subtle.verify(VM.name,t,c,l))throw Error(`signature verification failed`);return{payload:s,protectedHeader:o}}var KM={webId:`globe-2`,pinned:$56,archived:$11,visibility:`eye`,deleted:$3m},qM=class extends m.WidgetType{error=!1;constructor(e,t,n,r,i){super(),this.view=e,this.plugin=t,this.target=n,this.type=r,this.to=i}eq(e){return this.target===e.target}toDOM(){let e=createSpan();return e.toggleClass(`thino-inline-widget`,!0),(0,d.setIcon)(e,KM[this.type]||`help-circle`),d.setTooltip&&(0,d.setTooltip)(e,this.target),e}};function JM(e){class t{view;match=new m.MatchDecorator({regexp:/\[(webId|pinned|archived|visibility|deleted)::([^\]]+)\]/g,decorate:(t,n,r,i,a)=>{this.shouldRender(a,n,r)&&t(n,r,m.Decoration.replace({widget:new qM(a,e,i[0],i[1],r)}))}});decorations=m.Decoration.none;constructor(e){this.view=e,this.updateDecorations(e)}update(e){this.updateDecorations(e.view,e)}destroy(){this.decorations=m.Decoration.none}updateDecorations(e,t){!t||this.decorations.size===0?this.decorations=this.match.createDeco(e):this.decorations=this.match.updateDeco(t,this.decorations)}isLivePreview(e){return e.field(d.editorLivePreviewField)}shouldRender(e,t,n){return!e.state.selection.ranges.some(e=>e.from<=t?e.to>=t:e.from<=n)&&this.isLivePreview(e.state)}}return m.ViewPlugin.fromClass(t,{decorations:e=>e.decorations.update({filter:(t,n,r)=>{let i=r.spec.widget;return i&&i.error?!1:t===n||!e.view.state.selection.ranges.filter(e=>{let r=e.from,i=e.to;return r<=t?i>=t:r<=n}).length}})})}Ia(),Rd(),cd();var YM=/[぀-ヿ㐀-䶿一-鿿豈-﫿가-힯]/u,XM=new Set(`the.and.for.are.but.not.you.all.any.can.her.was.one.our.out.day.get.has.him.his.how.man.new.now.old.see.two.way.who.did.its.let.put.say.she.too.use.this.that.with.have.from.they.will.your.what.when.make.like.time.just.know.take.into.than.then.them.some.could.about.there.their.would.which.were.been.http.https.www.的.了.和.是.在.我.有.他.这.中.来.上.个.到.说.们.为.你.出.时.年.得.就.那.要.下.以.会.自.着.去.之.过.家.对.可.她.里.后.么.多.天.而.能.好.都.然.没.日.于.起.发`.split(`.`));function ZM(e){if(!e)return null;let t=new Date,n=/^(\d+)d$/.exec(e);if(n)return{from:nd(t,Number(n[1])).getTime(),to:t.getTime()};switch(e){case`thisweek`:return{from:Xu(t).getTime(),to:Zu(t).getTime()};case`thismonth`:return{from:Qu(t).getTime(),to:$u(t).getTime()};case`thisyear`:return{from:ed(t).getTime(),to:td(t).getTime()};case`lastweek`:{let e=nd(t,7);return{from:Xu(e).getTime(),to:Zu(e).getTime()}}case`lastmonth`:{let e=id(t,1);return{from:Qu(e).getTime(),to:$u(e).getTime()}}case`lastyear`:{let e=ad(t,1);return{from:ed(e).getTime(),to:td(e).getTime()}}default:return null}}function QM(e){let t=ld(e.content),n=e.fileInfo?.tags;return Array.isArray(n)&&n.forEach(e=>{typeof e==$q&&t.add(e.replace(/^#/,``))}),t}function $M(e,t){let{terms:n,tag:r,source:i,path:a,includeArchived:o,includeDeleted:s}=t,c=ZM(t.range),l=a.toLowerCase(),u=e.filter(e=>{if(!o&&e.rowStatus===$07||!s&&e.deletedAt||e.content.includes($jh)||i&&e.sourceType!==i||a&&!(e.path??``).toLowerCase().includes(l))return!1;if(r){let t=QM(e);if(!Array.from(t).some(e=>e===r||typeof e==$q&&e.startsWith(`${r}/`)))return!1}if(n.length>0){let t=e.content.toLowerCase();if(!n.every(e=>t.includes(e)))return!1}if(c){let t=R.getMemoTimestamp(e);if(t<c.from||t>c.to)return!1}return!0});return u.sort((e,n)=>{let r=R.getMemoTimestamp(e)-R.getMemoTimestamp(n);return t.sort===$jb?r:-r}),t.limit>0?u.slice(0,t.limit):u}function eN(e){return e.replace(/```[\s\S]*?```/g,` `).replace(/`[^`]*`/g,` `).replace(/!\[\[[^\]]*\]\]/g,` `).replace(/!\[[^\]]*\]\([^)]*\)/g,` `).replace(/\[\[(?:[^\]|]*\|)?([^\]]*)\]\]/g,$ff).replace(/\[([^\]]*)\]\([^)]*\)/g,$ff).replace(/^\s{0,3}#{1,6}\s+/gm,``).replace(/^\s*>+\s?/gm,``).replace(/^\s*[-*+]\s+(\[.\]\s+)?/gm,``).replace(/[*_~]+/g,``).replace(/\s+/g,` `).trim()}function tN(e,t,n){let r=e.match(/[##]?[\p{L}\p{N}_/-]+/gu);if(r)for(let e of r){let r=/^[##]/.test(e),i=e.replace(/^[##]/,``);if(i){if(r){let e=`#${i.toLowerCase()}`;t.set(e,(t.get(e)??0)+3),n.add(e);continue}if(YM.test(i)){let e=Array.from(i);if(e.length<2)continue;for(let n=0;n<e.length-1;n++){let r=e[n]+e[n+1];XM.has(r)||t.set(r,(t.get(r)??0)+1)}}else{let e=i.toLowerCase();if(e.length<2||/^[\d/-]+$/.test(e)||XM.has(e))continue;t.set(e,(t.get(e)??0)+1)}}}}function nN(e,t){let n=new Map,r=new Set;for(let t of e)tN(eN(t.content),n,r);return Array.from(n.entries()).filter(([,e])=>e>1||n.size<=t).sort((e,t)=>t[1]-e[1]).slice(0,t).map(([e,t])=>({text:e,value:t,isTag:r.has(e)}))}var rN=60;function iN(e){switch(e){case $22:return`GGGG-[W]WW`;case $0s:return $b0;default:return $02}}function aN(e,t,n){if(t===$70){let t=new Map;for(let n of e)ld(n.content).forEach(e=>{let n=String(e);t.set(n,(t.get(n)??0)+1)});return Array.from(t.entries()).sort((e,t)=>t[1]-e[1]).slice(0,n).map(([e,t])=>({key:e,label:`#${e}`,value:t}))}if(t===$iq){let t=new Map;for(let n of e){let e=n.sourceType||`UNKNOWN`;t.set(e,(t.get(e)??0)+1)}return Array.from(t.entries()).sort((e,t)=>t[1]-e[1]).map(([e,t])=>({key:e,label:e,value:t}))}let r=iN(t),i=new Map;for(let t of e){let e=(0,d.moment)(R.getMemoTimestamp(t)).format(r);i.set(e,(i.get(e)??0)+1)}return Array.from(i.entries()).sort((e,t)=>e[0]<t[0]?-1:e[0]>t[0]?1:0).slice(-rN).map(([e,t])=>({key:e,label:e,value:t}))}I();var oN=e=>F(e),sN={list:$0y,table:$2x,cloud:$gs,wordcloud:$gs,"word-cloud":$gs,chart:$gr,bar:$gr,barchart:$gr},cN={day:$04,daily:$04,week:$22,weekly:$22,month:$0s,monthly:$0s,tag:$70,tags:$70,source:$iq},lN=480;function uN(e){return e===!0||e===$0q||e===1||e===`1`}function dN(e,t){if(typeof e==$0e&&Number.isFinite(e))return e;if(typeof e==$q){let t=Number(e.trim());if(Number.isFinite(t))return t}return t}function fN(e){if(typeof e.pager==$q){let t=e.pager.trim().toLowerCase();if(t===$gb||t===`loadmore`||t===`load-more`)return $gb;if(t===`pages`||t===`page`)return`pages`}return uN(e.more)?$gb:`pages`}function pN(e){if(!e)return[];let t=[],n=/"([^"]+)"|'([^']+)'|(\S+)/g,r;for(;(r=n.exec(e))!==null;){let e=(r[1]??r[2]??r[3]??``).trim().toLowerCase();e&&t.push(e)}return t}function mN(e){if(typeof e.view==$q){let t=sN[e.view.trim().toLowerCase()];if(t)return t}return uN(e.table)?$2x:uN(e.cloud)||uN(e.wordcloud)?$gs:uN(e.chart)?$gr:typeof e.keyword==$q||typeof e.query==$q||typeof e.search==$q||typeof e.text==$q?$0y:null}function hN(e){if(!e||typeof e!=$0j)return null;let t=mN(e);if(!t)return null;let n=String(e.keyword??e.query??e.search??e.text??``).trim(),r=typeof e.groupBy==$q?e.groupBy.trim().toLowerCase():``;return{view:t,keyword:n,terms:pN(n),tag:String(e.tag??``).trim(),source:String(e.source??``).trim().toUpperCase(),path:String(e.path??``).trim(),range:String(e.range??``).trim().toLowerCase(),limit:Math.max(0,Math.floor(dN(e.limit,0))),pageSize:Math.max(0,Math.floor(dN(e.pageSize,10))),maxHeight:Math.floor(dN(e.maxHeight,lN)),pager:fN(e),sort:e.sort===$jb?$jb:$9w,includeArchived:uN(e.includeArchived),includeDeleted:uN(e.includeDeleted),groupBy:cN[r]??$04,top:Math.max(1,Math.floor(dN(e.top,50))),title:String(e.title??``).trim()}}function gN(e){return[$3d,$1q,$1c,$50,$0y,$ir].filter(t=>uN(e[t])||t===$50&&typeof e.daily==$q)}U();var _N=()=>V(e=>{let{tag:t,duration:n,type:r,text:i,path:a,filter:o}=e.query;return!!(t||n&&n.from<n.to||r||i||a||o)});N(),U(),$d(),I();var vN=({type:e,timestamp:t})=>{let{memos:n}=z(),r=_N(),i=Qd(e=>e.filteredMemos),a=Qd(e=>e.version),[o,s]=D([]),c=M.useRef(null);return O(()=>{let a=r?i:n;if(e===$50){let e=a;if(t){s(e.filter(e=>(0,d.moment)(e.createdAt,$6).isSame((0,d.moment)(t,$6),$04)));return}s(e.filter(e=>(0,d.moment)(e.createdAt,$6).isSame((0,d.moment)(),$04)))}else if(e===`latest`){let e=a.filter(e=>!e.deletedAt&&e.rowStatus!==$07),t=e.filter(e=>e.pinned),n=e.filter(e=>!e.pinned);s([...t,...n])}},[n,i,a,r,e,t]),O(()=>{c.current&&(c.current.scrollTop=0)},[o]),o.length>0?Z($0,{ref:c,className:$cb,children:o.map(e=>Z(yy,{memo:e},e.id))}):Z($0,{className:$21,children:Z($8,{className:$16,children:F(47)})})};Ia(),X(),$d();var yN=12,bN=30;function xN(e){let t=createDiv({cls:$21});return t.createSpan({cls:$16,text:e??oN(`Here is No Memos.`)}),t}var SN=class extends d.Component{owned=[];constructor(e){super(),this.rootEl=e}own(e){return this.owned.push(e),e}clearOwned(){for(;this.owned.length;)this.owned.pop()?.detach()}onunload(){this.clearOwned()}},CN=class{constructor(e,t,n){this.rootEl=e,this.pager=t,this.onChange=n}build(){return this.pager.pageCount>1?this.buildPages():this.pager.remaining>0?this.buildMore():null}buildPages(){let e=this.rootEl.createDiv({cls:`thino-cb-pager`}),{page:t,pageCount:n}=this.pager,r=e.createEl($7,{cls:$ei,attr:{type:$7,"aria-label":oN(`Previous page`)}});(0,d.setIcon)(r,$2v),r.disabled=t<=0,r.onclick=()=>{this.pager.setPage(t-1),this.rootEl.closest($gz)?.scrollTo({top:0}),this.onChange()},e.createSpan({cls:`thino-cb-pager-info`,text:`${t+1} / ${n}`});let i=e.createEl($7,{cls:$ei,attr:{type:$7,"aria-label":oN(`Next page`)}});return(0,d.setIcon)(i,$0z),i.disabled=t>=n-1,i.onclick=()=>{this.pager.setPage(t+1),this.rootEl.closest($gz)?.scrollTo({top:0}),this.onChange()},e}buildMore(){let e=this.rootEl.createDiv({cls:`thino-cb-pager thino-cb-pager-more`}),t=e.createEl($7,{cls:`thino-cb-more-btn`,text:`${oN(`Load more`)} (${this.pager.remaining})`,attr:{type:$7}});return t.onclick=()=>{this.pager.loadMore(),this.onChange()},e}},wN=class extends SN{pager;bridges=new Map;listEl=null;listContainerEl=null;pagerEl=null;emptyEl=null;footer;constructor(e,t){super(e),this.pager=new Jx(t.pager,t.pageSize),this.footer=new CN(e,this.pager,()=>this.paint())}setMemos(e){this.pager.setItems(e),this.paint()}paint(){if(this.pager.total===0){this.teardownList(),this.emptyEl||=this.rootEl.appendChild(xN());return}this.emptyEl?.detach(),this.emptyEl=null,this.listEl||(this.listEl=this.rootEl.createDiv({cls:`thino-embed-container thino-cb-list`}),this.listContainerEl=this.listEl.createDiv({cls:$cb}));let e=this.pager.visible;xy(this.listContainerEl,e,e=>e.id,e=>{let t=createDiv(),n=new lg(t,yy,{memo:e});return this.bridges.set(e.id,n),this.addChild(n),t},{update:(e,t)=>this.bridges.get(t.id)?.setProps({memo:t}),destroy:(e,t)=>{let n=this.bridges.get(t.id);n&&(this.bridges.delete(t.id),this.removeChild(n))}}),this.pagerEl?.detach(),this.pagerEl=this.footer.build()}teardownList(){this.listContainerEl&&Sy(this.listContainerEl);for(let e of this.bridges.values())this.removeChild(e);this.bridges.clear(),this.listEl?.detach(),this.listEl=null,this.listContainerEl=null,this.pagerEl?.detach(),this.pagerEl=null}onunload(){this.teardownList(),this.emptyEl?.detach(),this.emptyEl=null,super.onunload()}};function TN(e){let t=``;return e.map(e=>{let n=(0,d.moment)(R.getMemoTimestamp(e)),r=n.format($02),i=r!==t;return t=r,{id:e.id,date:r,time:n.format($17),showDate:i,preview:eN(e.content)||oN(`(empty)`),memo:e}})}var EN=class extends SN{pager;footer;constructor(e,t){super(e),this.pager=new Jx(t.pager,t.pageSize),this.footer=new CN(e,this.pager,()=>this.paint())}setMemos(e){this.pager.setItems(e),this.paint()}paint(){if(this.clearOwned(),this.pager.total===0){this.own(this.rootEl.appendChild(xN()));return}let e=this.own(this.rootEl.createDiv({cls:`thino-cb-table`,attr:{role:$2x}})),t=e.createDiv({cls:`thino-cb-table-head`,attr:{role:`row`}});t.createDiv({cls:$fb,attr:{role:$kx},text:oN(`Date`)}),t.createDiv({cls:$ca,attr:{role:$kx},text:oN(`Content`)});let n=e.createDiv({cls:`thino-cb-table-body`});for(let e of TN(this.pager.visible)){let t=n.createDiv({cls:`thino-cb-table-row`,attr:{role:`row`}}),r=t.createDiv({cls:$fb,attr:{role:`cell`}});e.showDate&&r.createSpan({cls:`thino-cb-date`,text:e.date}),r.createSpan({cls:`thino-cb-time`,text:e.time}),t.createDiv({cls:$ca,attr:{role:`cell`},text:e.preview}),t.onclick=()=>mg(e.memo)}let r=this.footer.build();r&&this.own(r)}};function DN(e,t,n){if(n<=t)return(yN+bN)/2;let r=(Math.sqrt(e)-Math.sqrt(t))/(Math.sqrt(n)-Math.sqrt(t));return Math.round(yN+r*(bN-yN))}function ON(e){e.isTag?K.setTagQuery(e.text.replace(/^#/,``)):K.setTextQuery(e.text),Qd.getState().recompute()}var kN=class extends SN{constructor(e,t){super(e),this.top=t}setMemos(e){this.clearOwned();let t=nN(e,this.top);if(t.length===0){this.own(this.rootEl.appendChild(xN(oN(`No keywords found`))));return}let n=t[0].value,r=t[t.length-1].value,i=this.own(this.rootEl.createDiv({cls:`thino-cb-cloud`}));for(let e of t){let t=i.createEl($7,{cls:`thino-cb-cloud-term${e.isTag?` is-tag`:``}`,text:e.text,attr:{type:$7,title:`${e.text} · ${e.value}`}});t.style.fontSize=`${DN(e.value,r,n)}px`,t.onclick=()=>ON(e)}}},AN=class extends SN{constructor(e,t,n){super(e),this.groupBy=t,this.top=n}setMemos(e){this.clearOwned();let t=aN(e,this.groupBy,this.top);if(t.length===0){this.own(this.rootEl.appendChild(xN(oN(`No data to chart`))));return}let n=t.reduce((e,t)=>Math.max(e,t.value),0)||1,r=this.groupBy===$70,i=this.own(this.rootEl.createDiv({cls:`thino-cb-chart`,attr:{"data-group-by":this.groupBy}}));for(let e of t){let t=i.createDiv({cls:`thino-cb-chart-row${r?` is-interactive`:``}`,attr:{title:`${e.label} · ${e.value}`}});t.createDiv({cls:`thino-cb-chart-label`,text:e.label});let a=t.createDiv({cls:`thino-cb-chart-track`}).createDiv({cls:`thino-cb-chart-bar`});a.style.width=`${e.value/n*100}%`,t.createDiv({cls:`thino-cb-chart-value`,text:`${e.value}`}),r&&(t.onclick=()=>this.drillDown(e))}}drillDown(e){K.setTagQuery(e.key),Qd.getState().recompute()}};U(),I();var jN=class extends d.MarkdownRenderChild{constructor(e,t){super(e),this.plugin=t}onload(){this.containerEl.empty(),this.containerEl.createDiv({cls:`thino-error-code-block`,text:F(505)});let e=this.containerEl.createEl($7,{cls:`thino-open-view`,text:F(332)});e.onclick=()=>void this.plugin.openMemos($1f)}},MN=class extends d.MarkdownRenderChild{rootEl;headerEl=null;body;constructor(e,t){super(e),this.config=t}onload(){this.rootEl=this.containerEl.createDiv({cls:`thino-cb-query`,attr:{"data-view":this.config.view}}),this.rootEl.style.maxHeight=this.config.maxHeight>0?`${this.config.maxHeight}px`:`unset`,this.body=this.addChild(this.createBody()),this.register(GT(z,e=>e.memosHash,()=>this.update()))}onunload(){this.rootEl?.detach()}createBody(){switch(this.config.view){case $2x:return new EN(this.rootEl,this.config);case $gs:return new kN(this.rootEl,this.config.top);case $gr:return new AN(this.rootEl,this.config.groupBy,this.config.top);default:return new wN(this.rootEl,this.config)}}update(){let e=$M(z.getState().memos,this.config);this.renderHeader(e.length),this.body.setMemos(e)}renderHeader(e){this.headerEl?.detach(),this.headerEl=null;let t=[];this.config.keyword&&t.push(this.config.keyword),this.config.tag&&t.push(`#${this.config.tag}`),this.config.source&&t.push(this.config.source),this.config.range&&t.push(this.config.range);let n=this.config.title||t.join(` · `);if(!n&&e===0)return;let r=createDiv({cls:`thino-cb-header`});n&&r.createSpan({cls:`thino-cb-title`,text:n}),r.createSpan({cls:`thino-cb-count`,text:`${e} ${oN(`results`)}`}),this.rootEl.prepend(r),this.headerEl=r}},NN=class extends d.MarkdownRenderChild{constructor(e,t){super(e),this.yaml=t}onload(){let e=typeof this.yaml.daily==$q?this.yaml.daily:``;for(let t of gN(this.yaml)){let n=[`thino-embed-container`];t===$3d&&n.push($ej);let r=this.containerEl.createDiv({cls:n.join(` `),attr:{"data-embed-type":t}});this.addChild(PN(r,t,t===$50?e:void 0))}}};function PN(e,t,n){switch(t){case $3d:return new lg(e,Iv,{editorType:$1g,modal:!0});case $1q:return new lg(e,wb,{basicType:$1q});case $1c:return new lg(e,wb,{basicType:$7s});case $ir:return new lg(e,Nf,{statusType:$9t});case $50:return new lg(e,vN,{type:$50,timestamp:n});default:return new lg(e,vN,{type:`latest`})}}function FN(e,t){let n=hN(t);return n?new MN(e,n):new NN(e,t)}var IN=class extends d.Modal{view=null;cb;tags=[];constructor(e,t){super(e),this.cb=t}onOpen(){super.onOpen(),this.containerEl.toggleClass([$2m,$et],!0),this.contentEl.empty(),this.view=new dx(this.contentEl,{closeDialog:this.closeDialog.bind(this)}),this.view.load()}closeDialog(e){this.tags=e,this.close()}onClose(){this.cb(this.tags),super.onClose(),this.view?.unload(),this.view=null}};jp();var LN=Ap(`os`);function RN(e){let t=new Uint8Array(e),n=``;for(let e=0;e<t.length;e++)n+=String.fromCharCode(t[e]);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}var zN=300*1e3,BN={PRODUCT_NOT_PURCHASED:`Thino Pro has not been purchased for this PKMer account.`,INSUFFICIENT_SCOPE:`PKMer login is missing the thino scope. Please login again.`};function VN(e,t,n,r=``){e.writeHead(t,{"Content-Type":`text/html; charset=utf-8`}),e.end(`<html><body><h2>${n}</h2>${r}</body></html>`)}function HN(e){return Date.now()+(e.expires_in??3600)*1e3}var UN=class{plugin;cachedVerified=null;refreshPromise=null;callbackServer=null;lastDeviceRegistrationNoticeKey=null;lastDeviceRegistrationNoticeAt=0;pendingCodeVerifier=null;pendingState=null;preparedMobileAuthUrl=null;preparedMobileState=null;preparedMobileVerifier=null;preparedMobileExpireTimer=null;memAccessToken=null;memRefreshToken=null;memAiToken=null;constructor(e){this.plugin=e}get secrets(){return this.plugin.app.secretStorage}loadSecrets(){this.memAccessToken=this.readSecret($ep),this.memRefreshToken=this.readSecret($de),this.memAiToken=this.readSecret(`aiToken`)}readSecret(e){return this.secrets.getSecret(RD[e])??null}setAccessToken(e){this.memAccessToken=e,this.secrets.setSecret(RD.accessToken,e)}setRefreshToken(e){this.memRefreshToken=e,this.secrets.setSecret(RD.refreshToken,e)}setAiToken(e){this.memAiToken=e,this.secrets.setSecret(RD.aiToken,e)}clearSecrets(){this.setAccessToken(``),this.setRefreshToken(``),this.setAiToken(``),this.memAccessToken=null,this.memRefreshToken=null,this.memAiToken=null}async patchGeneral(e){this.plugin.settings.general={...this.plugin.settings.general,...e},await this.plugin.saveSettings()}get accessToken(){return this.memAccessToken??``}get aiToken(){return this.memAiToken??``}async migrateFromSettings(){let e=this.plugin.settings.general;if(!e)return;let t=!1,n={...e},r=Reflect.get(e,$ep),i=Reflect.get(e,$de);if(typeof r==$q&&r&&(this.setAccessToken(r),Reflect.deleteProperty(n,$ep),t=!0),typeof i==$q&&i&&(this.setRefreshToken(i),Reflect.deleteProperty(n,$de),t=!0),e.userInfo?.ai_token){this.setAiToken(e.userInfo.ai_token);let r={...e.userInfo};delete r.ai_token,Object.assign(n,{userInfo:r}),t=!0}t&&(this.plugin.settings.general=n,await this.plugin.saveSettings())}async verify(){let e=this.plugin.settings.general;if(!this.memAccessToken)return this.cachedVerified=!1,!1;if(e.tokenExpiresAt&&Date.now()<e.tokenExpiresAt)return this.cachedVerified=!0,!0;if(this.memRefreshToken){let e=await this.refreshTokens();return this.cachedVerified=e,e}return this.cachedVerified=!1,!1}authUrl(e,t,n){let r=new URLSearchParams({response_type:$d1,client_id:zD.clientId,redirect_uri:e,scope:zD.scopes,state:t,code_challenge:n,code_challenge_method:`S256`});return`${zD.authorizationUrl}?${r.toString()}`}clearPending(){this.pendingState=null,this.pendingCodeVerifier=null}expirePendingState(e){window.setTimeout(()=>{this.pendingState===e&&this.clearPending()},zN)}async completeLogin(e,t){return await this.exchangeCodeForTokens(e,t)?(new d.Notice(await this.fetchUserInfo()?`Successfully logged in to PKMer!`:`Logged in to PKMer, but Thino device activation failed.`),!0):(new d.Notice(`Failed to complete login. Please try again.`),!1)}async prepareMobileAuthUrl(){if(!d.Platform.isMobile)return null;if(this.preparedMobileAuthUrl)return this.preparedMobileAuthUrl;let e=this.generateRandom(),t=this.generateRandom(),n=await this.computeCodeChallenge(t);return this.preparedMobileVerifier=t,this.preparedMobileState=e,this.preparedMobileAuthUrl=this.authUrl(zD.mobileRedirectUri,e,n),this.preparedMobileExpireTimer&&window.clearTimeout(this.preparedMobileExpireTimer),this.preparedMobileExpireTimer=window.setTimeout(()=>{this.preparedMobileAuthUrl=null,this.preparedMobileState=null,this.preparedMobileVerifier=null,this.preparedMobileExpireTimer=null},zN),this.preparedMobileAuthUrl}consumeMobileAuthUrl(){if(!d.Platform.isMobile)return null;let e=this.preparedMobileAuthUrl;return!e||!this.preparedMobileState||!this.preparedMobileVerifier?null:(this.pendingState=this.preparedMobileState,this.pendingCodeVerifier=this.preparedMobileVerifier,this.preparedMobileAuthUrl=null,this.preparedMobileState=null,this.preparedMobileVerifier=null,this.preparedMobileExpireTimer&&=(window.clearTimeout(this.preparedMobileExpireTimer),null),this.expirePendingState(this.pendingState),e)}async login(){let e=this.generateRandom(),t=this.generateRandom();this.pendingCodeVerifier=t,this.pendingState=e;let n=await this.computeCodeChallenge(t);if(d.Platform.isMobile){window.open(this.authUrl(zD.mobileRedirectUri,e,n),$1l),this.expirePendingState(e);return}let r=this.startCallbackServer(e);window.open(this.authUrl(zD.desktopRedirectUri,e,n),$1l);try{let e=await r;if(!e){this.clearPending(),new d.Notice(`Login cancelled or timed out.`);return}await this.completeLogin(e,zD.desktopRedirectUri)}catch(e){console.error(`PKMer OAuth login error:`,e),new d.Notice($5j)}finally{this.clearPending()}}async handleOAuthCallback(e,t){if(!this.pendingState||t!==this.pendingState)return new d.Notice(`OAuth state mismatch. Please try logging in again.`),this.clearPending(),!1;try{return await this.completeLogin(e,zD.mobileRedirectUri)}catch(e){return console.error(`PKMer OAuth callback error:`,e),new d.Notice($5j),!1}finally{this.clearPending()}}async logout(){this.clearSecrets(),this.cachedVerified=!1,await this.patchGeneral({tokenExpiresAt:0,userInfo:null,thinoDevice:null}),new d.Notice(`Logged out from PKMer.`)}async refreshQuota(){return await this.verify()?(await this.fetchUserInfo(),this.plugin.settings.general?.userInfo?.ai_quota??null):null}async ensureThinoDeviceRegistered(){if(!this.memAccessToken)return!1;let e=await this.getCurrentThinoDeviceKey(),t=this.plugin.settings.general.thinoDevice;return t?.allowed&&t.currentDeviceActive&&t.deviceKey===e?!0:this.registerThinoDevice()}onunload(){this.closeCallbackServer()}async computeCodeChallenge(e){let t=new TextEncoder().encode(e);return RN(await crypto.subtle.digest(`SHA-256`,t))}startCallbackServer(e){return new Promise(t=>{try{if(!d.Platform.isDesktop){t(null);return}let n=window.require(`node:http`).createServer((n,r)=>{let i=new URL(n.url??`/`,`http://localhost:${zD.callbackPort}`);if(i.pathname===`/thino/callback`){let n=i.searchParams.get($d1);i.searchParams.get(`state`)===e?n?(VN(r,200,`Login successful!`,`<p>You can close this window and return to Obsidian.</p><script>window.close()<\/script>`),t(n)):(VN(r,400,`Login failed: ${i.searchParams.get($12)||`unknown error`}`),t(null)):(VN(r,400,`State mismatch. Please try again.`),t(null)),window.setTimeout(()=>this.closeCallbackServer(),500)}else r.writeHead(404),r.end()});n.on($12,e=>{console.error(`Callback server error:`,e),new d.Notice(`Failed to start login server: ${e.message}`),t(null)}),n.listen(zD.callbackPort,$80,()=>{}),this.callbackServer=n,window.setTimeout(()=>{this.callbackServer===n&&(this.closeCallbackServer(),t(null))},zN)}catch(e){console.error(`Failed to start callback server:`,e),t(null)}})}closeCallbackServer(){if(this.callbackServer){try{this.callbackServer.close()}catch{}this.callbackServer=null}}async postToken(e){return(await(0,d.requestUrl)({url:zD.tokenUrl,method:$25,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams(e).toString()})).json}async exchangeCodeForTokens(e,t){try{let n={grant_type:`authorization_code`,code:e,redirect_uri:t,client_id:zD.clientId};this.pendingCodeVerifier&&(n.code_verifier=this.pendingCodeVerifier);let r=await this.postToken(n);return r.access_token?(this.setAccessToken(r.access_token),this.setRefreshToken(r.refresh_token||``),await this.patchGeneral({tokenExpiresAt:HN(r)}),this.cachedVerified=!0,!0):!1}catch(e){return console.error(`Token exchange failed:`,e),!1}}async refreshTokens(){if(this.refreshPromise!==null)return this.refreshPromise;this.refreshPromise=(async()=>{try{let e=await this.postToken({grant_type:`refresh_token`,refresh_token:this.memRefreshToken||``,client_id:zD.clientId});return e.access_token?(this.setAccessToken(e.access_token),e.refresh_token&&this.setRefreshToken(e.refresh_token),await this.patchGeneral({tokenExpiresAt:HN(e)}),!0):!1}catch(e){return console.error(`Token refresh failed:`,e),this.clearSecrets(),await this.patchGeneral({tokenExpiresAt:0}),!1}})();try{return await this.refreshPromise}finally{this.refreshPromise=null}}async fetchUserInfo(){try{let e=(await(0,d.requestUrl)({url:zD.userinfoUrl,method:$3i,headers:{Authorization:`Bearer ${this.memAccessToken}`}})).json;return e.ai_token&&this.setAiToken(e.ai_token),await this.patchGeneral({userInfo:{sub:e.sub||e.id||``,name:e.name||e.preferred_username||e.username||void 0,email:e.email||void 0,avatar:e.picture||e.avatar||void 0,ai_quota:e.ai_quota||void 0,device_count:e.device_count??void 0,thino:e.thino??void 0,thinoWebExpir:e.thinoWebExpir??void 0,supporter:e.supporter??void 0}}),await this.registerThinoDevice()}catch(e){return console.error(`Failed to fetch user info:`,e),!1}}async getThinoDevicePayload(){let e=``,t=``;if(d.Platform.isDesktop&&typeof LN?.platform==$z&&typeof LN?.hostname==$z)e=LN.platform(),t=LN.hostname();else{let n=await window.Capacitor?.Plugins?.Device?.getInfo?.(),r=await window.Capacitor?.Plugins?.Device?.getId?.();e=n?.platform||(d.Platform.isIosApp?`ios`:d.Platform.isMobile?$e8:$bf),t=n?.name||n?.model||r?.identifier||r?.uuid||`mobile-device`}let n=this.plugin.app,r=n.getVersion?.()||n.version;return{platform:e.trim()||$bf,hostname:t.trim()||`unknown-device`,pluginVersion:this.plugin.manifest.version,obsidianVersion:typeof r==$q?r:void 0}}async getCurrentThinoDeviceKey(){let e=await this.getThinoDevicePayload();return`${e.platform}-${e.hostname}`.trim().toLowerCase()}async registerThinoDevice(){if(!this.memAccessToken)return!1;let e=await this.getThinoDevicePayload();try{let t=await(0,d.requestUrl)({url:zD.thinoDeviceRegisterUrl,method:$25,headers:{Authorization:`Bearer ${this.memAccessToken}`,"Content-Type":$0d},body:JSON.stringify(e)}),n=t.json??{};if(t.status>=400)return this.denyDevice(this.getPluginDeviceErrorInfo(n,t.status));let r=`${e.platform}-${e.hostname}`,i=n.allowed===!0,a=n.currentDeviceActive===!0;if(await this.saveThinoDeviceRegistration({product:$0c,allowed:i,currentDeviceActive:a,deviceKey:n.deviceKey||r.toLowerCase(),displayName:n.displayName||r,deviceCount:n.deviceCount,deviceLimit:n.deviceLimit,errorCode:i&&a?void 0:n.code,errorMessage:i&&a?void 0:n.message||`Current device is not active for Thino.`,updatedAt:Date.now()}),!i||!a){let e=this.getPluginDeviceErrorInfo(n,t.status);return this.showDeviceRegistrationError(e),!1}return!0}catch(e){console.error(`Failed to register Thino device:`,e);let t={message:e instanceof Error?e.message:`Failed to register current Thino device.`};return this.plugin.settings.general.thinoDevice?.currentDeviceActive?(this.showDeviceRegistrationError(t),!1):this.denyDevice(t)}}async denyDevice(e){return await this.saveThinoDeviceRegistration({product:$0c,allowed:!1,currentDeviceActive:!1,deviceCount:e.deviceCount,deviceLimit:e.deviceLimit,errorCode:e.code,errorMessage:e.message,updatedAt:Date.now()}),this.showDeviceRegistrationError(e),!1}saveThinoDeviceRegistration(e){return this.patchGeneral({thinoDevice:e})}getPluginDeviceErrorInfo(e,t){let n=typeof e?.message==$0j&&e.message?e.message:{...e,message:typeof e?.message==$q?e.message:void 0},r=n?.code||e?.code,i=n?.message||(typeof e?.message==$q?e.message:``);return r===`DEVICE_LIMIT_EXCEEDED`?{code:r,message:`Thino device limit exceeded${n?.deviceCount&&n?.deviceLimit?` (${n.deviceCount}/${n.deviceLimit})`:``}. Please remove an old device in PKMer, then login again.`,deviceCount:n?.deviceCount,deviceLimit:n?.deviceLimit}:r===`PRODUCT_NOT_PURCHASED`||r===`INSUFFICIENT_SCOPE`?{code:r,message:i||BN[r]}:{code:r,message:i||`Thino device registration failed (${t}).`,deviceCount:n?.deviceCount,deviceLimit:n?.deviceLimit}}showDeviceRegistrationError(e){let t=`${e.code||`ERROR`}:${e.message}`,n=Date.now();this.lastDeviceRegistrationNoticeKey===t&&n-this.lastDeviceRegistrationNoticeAt<6e4||(this.lastDeviceRegistrationNoticeKey=t,this.lastDeviceRegistrationNoticeAt=n,new d.Notice(e.message))}generateRandom(){let e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}};X(),Tl(),Wl(),Zd(),I(),X(),kp(),U(),$d(),Wl(),Gp(),jd(),_f(),Ia(),dc(),Tl(),wn(),Dn();var WN=`thino-last-updated-version`,GN=e=>{let t=e;return t.ctrlKey!==void 0||t.metaKey!==void 0||t.shiftKey!==void 0||t.altKey!==void 0},KN=()=>[[F(`Modern`),$3f],[F(`Clean`),`clean`],[F(`Minimal`),$b7],[F(`Gradient`),$3z]],qN=(e,t)=>({id:`temp-${Date.now()}`,content:e,createdAt:(0,d.moment)().format($1o),updatedAt:(0,d.moment)().format($1o),deletedAt:``,pinned:!1,visibility:$1b,rowStatus:$0b,thinoType:$9,hasId:``,linkId:[],resourceList:[],creatorName:$0c,sourceType:$00,path:t,fileInfo:{tags:[],frontmatter:{}}}),JN=e=>e.replace(/^-s+[.]s*/,``).replace(/^-s+/,``).trim(),YN=()=>{new d.Notice(F(`Open Memos Successfully`))},XN=[{id:`open-thino-in-left-sidebar`,shortName:F(`Left sidebar`),name:F(`Open thino in left sidebar`),icon:$6r,location:$1y,cb:YN,modKeys:$pq},{id:`open-thino-in-right-sidebar`,shortName:F(`Right sidebar`),name:F(`Open thino in right sidebar`),icon:$eq,location:$2i,cb:YN,modKeys:[`ctrl`,`meta`]},{id:`open-thino-in-float`,shortName:F(`Float window`),name:F(`Open thino in float window`),icon:`layout`,location:`float`,cb:YN,modKeys:`alt`},{id:`open-thino-in-center`,shortName:F(`Center window`),name:F(`Open thino in center window`),icon:`tv-2`,location:$1f,cb:YN,modKeys:void 0}];function ZN(e,t,n){return new Promise((r,i)=>{let a=``,o=``,s=n=>new Promise((r,i)=>{let s=t.ShareToThinoWithTextNewline===n||t.ShareToThinoWithTextNewline===$6s?`
  206. `:` `;switch(t[n===$3r?$85:$90]){case $1i:r();break;case $a6:t.ShareToThinoWithText&&(n===$3r?a=t.ShareToThinoWithTextPrepend+s:o=s+t.ShareToThinoWithTextAppend),r();break;case $09:new tP(e,`Thino `+F(n===$3r?`Prepend text`:`Append text`),e=>{n===$3r?a=e.trim()+(e.trim()?s:``):o=(e.trim()?s:``)+e,r()}).open();break;case $of:new IN(e,e=>{let t=e.length>0?e.map(e=>`#`+e).join(` `):``;n===$3r?a=t.trim()+(t.trim()?s:``):o=(t.trim()?s:``)+t.trim(),r()}).open();break;default:i(Error(`Invalid configuration type.`))}});Promise.all([s($ie),s($3r)]).then(()=>n(a,o)).then(()=>r()).catch(i)})}var QN=e=>{let t=e.embedRegistry;if(!t)return!1;let n=t.embedByExtension.md,r=n({app:e,containerEl:createDiv()},null,null);return r.editable=!0,r.set(``),r.showEditor(),Object.getPrototypeOf(Object.getPrototypeOf(r.editMode)).constructor};async function $N(e){try{let t=e.app.internalPlugins.plugins[$2l],n;n={settings:{...e.settings,tokenForVerify:`***`},plugins:Object.keys(e.app.plugins.plugins),manifest:e.manifest,platform:d.Platform.resourcePathPrefix},t&&(n={...n,dailyNotePluginInfo:{options:t.instance.options}}),await navigator.clipboard.writeText(`\`\`\`json\n${JSON.stringify(n,null,2)}\n\`\`\``),new d.Notice(F(`Debug info copied to clipboard`))}catch(e){console.error(e)}}var eP=class extends d.Plugin{settings;settingTab;thinoWorkerManager;triggerBySelf=!1;updatedID=``;debounceTimer=0;apiHttpServer=null;captureService=null;loaded=!1;MarkdownEditor;pkmerAuth;wechatService=null;async debug(e){if(!await Up()){console.error(`[thino:debug] Pro verification required.`);return}switch(e){case $62:{if(this.wechatService){P(`[thino:debug] WeChat service already running, stopping...`),this.wechatService.onunload(),this.wechatService=null,P(`[thino:debug] WeChat stopped.`);return}P(`[thino:debug] Starting WeChat service...`);let{WeChatService:e}=await Promise.resolve().then(()=>(jj(),Ej));this.wechatService=new e(this),await this.wechatService.start(),P(`[thino:debug] WeChat service started.`);break}default:P(`[thino:debug] Unknown feature: ${e}. Available: wechat`)}}async onload(){yn(this.app),this.MarkdownEditor=QN(this.app),W.setPlugin(this),P(`obsidian-memos loading...`),await this.loadSettings(),rc(this.app,this.settings.tokenForVerify)&&(this.settings.tokenForVerify={},await this.saveSettings()),eD(),this.registerRibbon(),this.pkmerAuth=new UN(this),this.pkmerAuth.loadSecrets(),await this.pkmerAuth.migrateFromSettings(),await this.verify(),this.settings.ShowUpdateMessage&&this.app.workspace.onLayoutReady(()=>{this.checkVersionAndShowChangeLog().catch(e=>console.error(e))}),this.settingTab=new Lj(this.app,this),this.addSettingTab(this.settingTab),this.initApp(),this.initGlobalThinosAccessor(),this.initEditor(),this.initURIHandler(),this.registerMobileEvent(),this.registerCommands(),(0,d.requireApiVersion)(`1.12.0`)&&this.registerCliHandlers(),this.registerCanvasNodeMemos(),this.registerHoverEvent(),this.registerLinkOpen(),this.registerCodeBlocks(),d.Platform.isMobile&&this.registerMobileNavbar(),this.updateLayoutSettings(),this.registerEditorContextMenu(),this.registerEditorSuggest(new QE(this.app,this)),this.registerEditorExtension([mM]),this.app.workspace.onLayoutReady(this.onLayoutReady.bind(this)),this.registerView($T,e=>new tE(e,this)),this.registerView(vf,e=>new bf(e,this.manifest.version)),this.registerView(kE,e=>new AE(e,this)),this.registerView(qE,e=>new XE(e,this)),XE.cleanupWorkingFile(this.app),this.addCommand({id:`open-thino-canvas-organizer`,name:`Open canvas organizer`,callback:()=>this.openThinoCanvasOrganizer()}),this.thinoWorkerManager=new Ad(this.app,this),this.addChild(this.thinoWorkerManager)}async loadSettings(){let e=await this.loadData();this.settings=JSON.parse(JSON.stringify(Object.assign({},Ij,e))),this.settings.general={...Ij.general,...this.settings.general},W.setSettings(this.settings),this.settings.MemoListView&&G.setMemoListView(this.settings.MemoListView),this.initFSRS()}initFSRS(){let e={request_retention:this.settings.fsrsRequestRetention??.9,maximum_interval:this.settings.fsrsMaximumInterval??36500,enable_fuzz:this.settings.fsrsEnableFuzz??!0,enable_short_term:this.settings.fsrsEnableShortTerm??!0};this.settings.fsrsWeights?.length===21&&(e.w=this.settings.fsrsWeights),Hw(e)}async saveSettings(){await this.saveData(this.settings),W.setSettings(this.settings)}async openThinoCanvasOrganizer(){if(!await Up()){Op();return}let e=this.app.workspace.getLeavesOfType(qE);if(e.length>0){this.app.workspace.revealLeaf(e[0]);return}let t=this.app.workspace.getLeaf();await t.setViewState({type:qE,active:!0}),this.app.workspace.revealLeaf(t)}onunload(){delete this.app.getThinos,H.getState().clearFiles(),H.getState().clearView();for(let e of Array.from(document.body.querySelectorAll(`.dialog-wrapper`)))e.detach();if(this.apiHttpServer&&=(this.apiHttpServer.close(),null),this.captureService&&this.captureService.onunload(),this.pkmerAuth?.onunload(),this.wechatService?.onunload(),this.wechatService=null,d.Platform.isMobile){let e=this.app.mobileNavbar;e&&e.showThinoBtnEl&&this.settings?.NavbarButton&&(e.showThinoBtnEl.detach(),e.showThinoBtnEl=null)}bn(),new d.Notice(F(`Close Memos Successfully`))}initEditor(){this.register(ZT(d.MetadataCache.prototype,{getFileCache:e=>function(t){return!t?.path&&!t?null:e.call(this,t)}})),(e=>{let t=e.app.embedRegistry.embedByExtension.md({app:e.app,containerEl:createDiv()},null,``);t.editable=!0,t.showEditor();let n=ZT(Object.getPrototypeOf(Object.getPrototypeOf(t.editMode)).constructor.prototype,{triggerClickableToken:e=>async function(...t){if(t[0].type===$jo){if(this.editorEl.closest($bi)){let n=Y.getMemoById(t[0].text??``);if(n){mg(n);return}return e.apply(this,t)}return e.apply(this,t)}return e.apply(this,t)}});this.register(n),t.unload()})(this)}initApp(){W.setApp(this.app)}initGlobalThinosAccessor(){this.app.getThinos=(e={})=>{if(e.filtered)return[...Qd.getState().filteredMemos];if(e.comments)return[...Y.getState().commentMemos];let t=Y.getState().memos,n=e.status??$0b;return n===$ml?[...t]:t.filter(e=>e.rowStatus===n)}}initURIHandler(){this.registerObsidianProtocolHandler($0c,async e=>{if(!e)return;e.openSettings&&(this.app.setting.open(),this.app.setting.openTabById(this.manifest.id||$0f));let t=e.pkmer_code||e.code,n=e.pkmer_state||e.state;if(t&&n){await this.pkmerAuth.handleOAuthCallback(t,n)&&(await this.verify(),G.setRefresh(!0));return}if(e.userid)try{let t=e.userid;vM(t,this.app),yM((0,d.moment)().add(30,$2b).valueOf(),this.app),G.setRefresh(!0)}catch(e){console.error(e),new d.Notice(F(`Failed to verify`))}if(e.token)try{let t=e.token;if(!await Zc(t)){new d.Notice(F(`Failed to connect to Thino Web`));return}Js(this.app,t),q.resetLastUpdatedTime(),window.setTimeout(()=>{this.app.setting.open(),this.app.setting.openTabById(this.manifest.id||$0f),this.settingTab.display()},200),new d.Notice(F(`Connected to Thino Web successfully`))}catch(e){console.error(e),new d.Notice(F(`Failed to save`))}if(e.copyToken){this.app.setting.open(),this.app.setting.openTabById(this.manifest.id??$0f);let e=await Fj();new d.Notice(F(await R.copyTextToClipboard(e)?`Copied app id successfully`:`Copy to clipboard failed`))}if(await Up()){if(e.content){let t=e.type,n=decodeURI(e.content)===e.content?e.content:decodeURI(e.content),r=e.task,i=await Y.createThino({content:n,type:t,isList:!!r});if(!i)return;Y.pushMemo(i),K.clearQuery()}e.openId&&await Y.openThinoByID(e.openId)}})}initGlobalManifest(){G.setPluginManifest(this.manifest)}stopServer(){this.apiHttpServer&&=(this.apiHttpServer.close(),null)}async stopEnableList(){if(await Up())return;let e={value:$00,target:$18,insert:$8j},t=(this.settings.EnabledLocationList||[]).filter(e=>e.value===$00||e.value===$9),n=t.length>0?t:[e];n.length===this.settings.EnabledLocationList?.length&&n.every((e,t)=>e.value===this.settings.EnabledLocationList[t].value)||(this.settings={...this.settings,EnabledLocationList:n},n.some(e=>e.value===this.settings.MemoSaveLocation)||(this.settings.MemoSaveLocation=n[0].value),this.settingTab.debounceApplySettingsUpdate())}async initServer(){d.Platform.isMobile||!this.settings.EnabledHttpApi||await Up()&&(this.apiHttpServer=TM(this,this.settings),this.initServerPort())}initServerPort(){this.apiHttpServer&&this.settings.EnabledHttpApi&&this.apiHttpServer.listen(this.settings.HttpApiIpType,this.settings.HttpApiPort)}async initCaptureService(){d.Platform.isMobile||!this.settings.CaptureKey.EnableCaptureKey||await Up()&&(this.captureService=new FM(this.app,this),await this.captureService.onload())}registerMobileEvent(){d.Platform.isMobile&&(this.registerEvent(this.app.workspace.on(`receive-text-menu`,(e,t)=>{e.addItem(e=>{e.setSection(`options`).setIcon($ob).setTitle(F(`Insert as Memo`)).onClick(async()=>{let e=t;try{await ZN(this.app,this.settings,async(t,n)=>{e=t+e+n;let r=await Y.createThino({content:e,type:this.settings.MemoSaveLocation||$00,isList:!0});Y.pushMemo(r)})}catch(e){console.error($ah,e);return}})})})),this.registerEvent(this.app.workspace.on(`receive-files-menu`,(e,t)=>{e.addItem(e=>{e.setIcon($ob).setTitle(F(`Insert file as memo content`)).onClick(async()=>{let e=t.map(e=>this.app.fileManager.generateMarkdownLink(e,e.path)).join(`
  207. `);try{await ZN(this.app,this.settings,async(t,n)=>{e=t+e+n;let r=await Y.createThino({content:e,type:this.settings.MemoSaveLocation||$00,isList:!0});Y.pushMemo(r)})}catch(e){console.error($ah,e);return}})})})))}registerCliHandlers(){if(typeof this.registerCliHandler!=$z)return;let e=()=>(0,d.moment)().format($6q),t=e=>(0,d.moment)(e,[$6q,$02],!0).format($6q);this.registerCliHandler($0c,`Create or manage a single thino`,{add:{description:`Add a new thino`},content:{value:$my,description:`Thino content (required for add)`},location:{value:$96,description:`Save location (default: daily)`},type:{value:$le,description:`Save type — task: checkbox [ ], journal: list item - (default: task)`},name:{value:`<filename>`,description:`File name, only used with location=multi`}},async e=>{if(e.add===$0q){let t=e.content;if(!t)return`Missing required: content=<text>`;let n=(e.location??$50).toUpperCase(),r=(e.type??$k3)===$b6,i=await Y.createThino({content:t,isList:r,type:n,name:e.name});return`Thino added [${n.toLowerCase()}/${r?$b6:$k3}]: ${i.id}`}return`Usage: obsidian thino:<add> [options]
  208. Run: obsidian help thino`}),this.registerCliHandler(`thinos`,`Search and list thinos`,{date:{value:$cl,description:`Filter by exact date (default: today)`},start:{value:$cl,description:`Range start date (inclusive); implies all-dates mode`},end:{value:$cl,description:`Range end date (inclusive); implies all-dates mode`},all:{description:`Disable date filter — show thinos from all dates`},query:{value:$my,description:`Filter by content (case-insensitive substring)`},tag:{value:`<tag>`,description:`Filter by tag (#tag in content or frontmatter)`},location:{value:$96,description:`Filter by save location`},type:{value:$le,description:`Filter by save type`},archived:{description:`Show archived thinos instead of normal ones`},total:{description:`Return count only`},format:{value:$pb,description:$6a}},async n=>{let r=Y.getState().memos,i=n.archived===$0q;if(r=r.filter(e=>e.rowStatus===(i?$07:$0b)),n.start||n.end){let e=n.start?t(n.start):null,i=n.end?t(n.end):null;r=r.filter(t=>{let n=t.createdAt.slice(0,10);return!(e&&n<e||i&&n>i)})}else if(n.all!==$0q){let i=n.date?t(n.date):e();r=r.filter(e=>e.createdAt.slice(0,10)===i)}if(n.query){let e=n.query.toLowerCase();r=r.filter(t=>t.content.toLowerCase().includes(e))}if(n.tag){let e=n.tag.startsWith(`#`)?n.tag:`#${n.tag}`,t=n.tag.startsWith(`#`)?n.tag.slice(1):n.tag;r=r.filter(n=>n.content.includes(e)||n.fileInfo?.tags?.some(n=>n===t||n===e))}if(n.location){let e=n.location.toUpperCase();r=r.filter(t=>t.sourceType===e)}if(n.type){let e=n.type===$b6?$9:$06;r=r.filter(t=>t.thinoType===e)}return n.total===$0q?String(r.length):r.length===0?`No thinos found.`:n.format===`json`?JSON.stringify(r,null,2):r.map(e=>`${e.createdAt.slice(0,16)} ${`${e.sourceType.toLowerCase()}/${e.thinoType===$9?$b6:$k3}`.padEnd(14)}${JN(e.content)}`).join(`
  209. `)}),this.registerCliHandler(`thinos:search`,`Search thinos using Super semantic search or text matching`,{query:{value:$my,description:`Search query (required)`},top:{value:`<number>`,description:`Max results to return (default: 20)`},format:{value:$pb,description:$6a}},async e=>{let t=e.query;if(!t)return`Missing required: query=<text>`;let n=e.top?parseInt(e.top,10):20,r=J.getState();if(r.enabled&&r.embeddingReady)try{let r=await dp.hybridSearch(t,n);return r.length===0?$ez:e.format===`json`?JSON.stringify(r.map(e=>({score:e.score,memoId:e.entry.memoId,content:e.memo?.content??``,createdAt:e.memo?.createdAt??``})),null,2):r.map(e=>{let t=e.memo;return t?`${t.createdAt.slice(0,16)} [${e.score.toFixed(2)}] ${JN(t.content)}`:`[score:${e.score.toFixed(2)}] (memo not found: ${e.entry.memoId})`}).join(`
  210. `)}catch(e){console.warn(`[CLI search] Super search failed, falling back to text:`,e)}let i=t.toLowerCase(),a=Y.getState().memos.filter(e=>e.rowStatus===$0b&&e.content.toLowerCase().includes(i));return a=a.slice(0,n),a.length===0?$ez:e.format===`json`?JSON.stringify(a,null,2):a.map(e=>`${e.createdAt.slice(0,16)} ${JN(e.content)}`).join(`
  211. `)})}registerCommands(){XN.forEach(e=>{this.addCommand({id:e.id,name:e.name,callback:()=>this.openMemos(e.location,e.cb)})}),this.addCommand({id:`open-super-sidebar`,name:`Open Super sidebar`,callback:()=>this.openSuperSidebar()});for(let[e,t]of KN())this.addCommand({id:`share-thino-via-${t}`,name:F(`Share thino`)+` [${e}]`,editorCallback:(e,t)=>{let n=e.getSelection();n.length!==0&&E_(qN(n,t.file.path))}});let e=(e,t,n,r)=>this.addCommand({id:e,name:t,callback:()=>document.body.toggleClass(n,!r?.()&&!document.body.hasClass(n))});e(`focus-mode`,`Focus mode`,`thino-focus`),e(`hide-side-bar`,F(`Toggle sidebar visibility`),`thino-hide-side-bar`,()=>G.getState().isMobileView),e(`hide-tags`,F(`Toggle tags visibility`),`thino-hide-tags`),e(`hide-query-list`,F(`Toggle query list visibility`),`thino-hide-query-list`),e(`toggle-minimal-thino`,F(`Toggle minimal mode`),`minimal-thino`),this.addCommand({id:`insert-task`,name:F(`Insert task`),checkCallback:e=>{let t=this.app.plugins.getPlugin(`obsidian-tasks-plugin`),n=this.app.workspace.getLeavesOfType($0n).first();if(t&&n)return e||t.apiV1.createTaskLineModal().then(e=>{let t=this.app.workspace.activeEditor;t&&t.editor?.insertText(e)}),!0}}),this.addCommand({id:`show-thino-editor`,name:F(`Show thino editor`),checkCallback:e=>{if(Y.initialized&&W.initialized){if(!e){if(!W.getState().view){new d.Notice(F(`Please open thino first`));return}new IM(this.app).open()}return!0}}}),this.addCommand({id:`lock-thino`,name:F(`Lock thino`),checkCallback:e=>{if(this.app.workspace.getActiveViewOfType(tE)&&this.settings.needVerify)return e||G.setLocked(!0),!0}}),this.addCommand({id:`copy-debug-info`,name:F(`Copy debug info`),callback:async()=>{await $N(this)}}),this.addCommand({id:`insert-editor`,name:F(`Insert editor`),checkCallback:e=>{let t=this.app.workspace.getActiveViewOfType(d.MarkdownView);if(t&&t?.getViewType()===$54)return e||t.editor.replaceSelection(`
  212. \`\`\`thino
  213. {
  214. editor: false
  215. }
  216. \`\`\`
  217. `),!0}}),this.addCommand({id:`focus-on-thino-editor`,name:F(`Focus on thino editor`),callback:()=>this.focusOnEditor()}),this.addCommand({id:`reinit-thino-sync`,name:F(`ReSync web thinos to local`),callback:async()=>{if(q.resetLastUpdatedTime(),!q.getToken()){new d.Notice(F($8k));return}let e=BM();try{await q.pullFromWeb(void 0,!0),e.finish(!0)}catch(t){console.error(t),e.finish(!1,t.message)}}}),this.addCommand({id:`init-thino-sync`,name:F(`Sync local thinos to web`),callback:async()=>{if(!q.isSyncEnabled()){new d.Notice(F(q.getToken()?`Please enable sync first`:$8k));return}let e=BM();try{await q.pushToWeb(),e.finish(!0)}catch(t){console.error(t),e.finish(!1,t.message)}}}),this.addCommand({id:`show-daily-thino`,name:F(`Show daily thino`),callback:()=>this.openDailyMemo()}),this.addCommand({id:`focus-on-search-bar`,name:F(`Focus on search bar`),callback:()=>this.searchIt()}),this.addCommand({id:`show-thino-in-popover`,name:F(`Show-thino in popover(Hover editor)`),callback:()=>this.showInPopover()})}async onLayoutReady(){await this.stopEnableList(),await this.initServer(),this.initGlobalManifest(),await this.initMemos(),this.autoOpenMemos(),this.registerThinoWidget(),await this.registerToolbarCheck(),await this.initCaptureService();let e=this.app.workspace.editorSuggest.suggests.findIndex(e=>e.type===$ow);e===-1||this.app.workspace.editorSuggest.suggests.splice(e,1),this.app.workspace.editorSuggest.suggests.unshift(new LM(this.app,this)),this.initSuper()}async initSuper(){await Up()&&J.getState().enabled&&(dp.initialize(this.app,this).then(()=>{J.getState().setEmbeddingReady(!0)}).catch(e=>console.error(`[MemosPlugin] Super init failed:`,e)),this.register(J.subscribe(e=>e.enabled,e=>{e&&this.initSuper()})))}async initWeChat(){if(!d.Platform.isDesktop||!this.settings.wechat?.enabled||!await Up())return;let{WeChatService:e}=await Promise.resolve().then(()=>(jj(),Ej));this.wechatService=new e(this),this.settings.wechat.autoStart&&this.wechatService.start().catch(e=>{console.error(`[MemosPlugin] WeChat auto-start failed:`,e)})}async initMemos(){try{await this.initDailyNotes()}catch(e){console.error(e)}W.getState(),Y.getState(),await Y.fetchAllMemos()}async initDailyNotes(){this.settings.EnabledLocationList.find(e=>e.value===$00)&&await W.fechLocalDailyNotes()}registerCanvasNodeMemos(){if(!(0,d.requireApiVersion)(`1.2.0`)||!this.settings.EnabledLocationList.find(e=>e.value===$0r))return;let e=e=>{window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(()=>{window.setTimeout(()=>{(async()=>{let n=e.canvas.getData(),r=n.nodes.find(t=>t.id===e.id);if(r&&(t(r),e.canvas.setData(n),Y.getMemoById(e.id))){let t=await Y.updateMemo(e.id,r.text,r.thinoType);Y.editMemo(t)}e.canvas.requestSave(!0)})()},0)},800)},t=e=>{e.createdAt||=(0,d.moment)().format($1o),e.updatedAt=(0,d.moment)().format($1o),e.deletedAt=e.deletedAt?e.deletedAt:``,e.pinned=e.pinned?e.pinned:!1,e.visibility=e.visibility?e.visibility:$1b,e.rowStatus=e.rowStatus?e.rowStatus:$0b,e.thinoType=e.thinoType?e.thinoType:$9,e.hasId=e.hasId?e.hasId:``,e.linkId=e.linkId?e.linkId:``,e.resourceList=[]},n=()=>{let t=this.app.workspace.getLeavesOfType($4o).first()?.view;if(!t)return!1;let n=t?.canvas;if(!n)return!1;let r=Array.from(n.nodes.values()).filter(e=>e.text!==void 0);if(!r||r.length===0)return!1;let i=r[0].child;if(!i)return!1;let a=ZT(i.constructor.prototype,{save:t=>function(...n){t.call(this,...n),this.node.isEditing&&e(this.node)}});return this.register(a),P(`Obsidian-Memos: canvas node patched`),!0};this.app.workspace.onLayoutReady(()=>{if(!n()){let e=this.app.workspace.on(`layout-change`,()=>{n()&&this.app.workspace.offref(e)});this.registerEvent(e)}})}registerLinkOpen(){ZT(d.Workspace.prototype,{openLinkText:e=>async function(...t){let n=Y.getState().memos;if(n.find(e=>e.id===t[0]||e.id===t[1])){let e=n.find(e=>e.id===t[0]||e.id===t[1]);if(e){mg(e);return}}await e.call(this,...t)}})}registerHoverEvent(){this.registerHoverLinkSource($0c,{defaultMod:!0,display:$0h})}registerCodeBlocks(){this.registerMarkdownCodeBlockProcessor($0c,(e,t,n)=>{if(!e)return;let r;try{r=(0,d.parseYaml)(e)}catch(e){console.error(`[Thino] Failed to parse codeblock yaml`,e);return}if(!hN(r)&&!this.app.workspace.getLeavesOfType($0n)?.length){t.toggleClass([`thino-editor-codeblock`,`view-error`],!0),n.addChild(new jN(t,this));return}n.addChild(FN(t,r))})}registerMobileNavbar(){if(!this.settings?.NavbarButton)return;let e=this.app.mobileNavbar;if(!e||e.showThinoBtnEl)return;let t=e.containerEl.find(`.mobile-navbar-actions`).createDiv({cls:`mobile-navbar-action mod-tappable`});new d.ExtraButtonComponent(t).setIcon($2e).onClick(()=>{document.body.find(`.thino-editor-modal`)||new IM(this.app).open()}),e.showThinoBtnEl=t}updateLayoutSettings(){document.body.toggleClass($fe,!!this.settings.AlwaysShowStatusText)}registerEditorContextMenu(){this.registerEvent(this.app.workspace.on(`editor-menu`,(e,t,n)=>{let r=t.getSelection();if(r.length===0)return;let i=qN(r,n.file.path),a=(e,t)=>{for(let[n,r]of KN())e.addItem(e=>{e.setSection($p9).setTitle((r===$3z?``:t)+n).setIcon($m0).onClick(async()=>{E_(i)})})};d.Platform.isDesktop&&e.addItem(e=>{a(e.setIcon($2e).setSection($p9).setTitle(F($m7)).setSubmenu(),``)}),d.Platform.isMobile&&a(e,F($m7)+` `)}))}registerRibbon(){this.addRibbonIcon($2e,F(`ribbonIconTitle`),async e=>{if(e.button===2){e.preventDefault();let t=new d.Menu;XN.forEach(e=>{t.addItem(t=>{t.setTitle(e.shortName).setIcon(e.icon).onClick(async()=>{await this.openMemos(e.location,e.cb)})})}),t.showAtMouseEvent(e);return}for(let t=0;t<XN.length;t++){let n=XN[t];if(!n.modKeys){await this.openMemos(n.location,n.cb);break}if(!GN(e))continue;let r=t=>e[`${t}Key`];if(typeof n.modKeys==$q&&r(n.modKeys)||Array.isArray(n.modKeys)&&n.modKeys.some(r)){await this.openMemos(n.location,n.cb);break}}}),this.addRibbonIcon($58,$8m,()=>this.openSuperSidebar())}registerThinoWidget(){this.registerEditorExtension([JM(this)])}async registerToolbarCheck(){this.loaded||await Up()&&(this.registerEditorExtension([uM(this.app)]),this.registerEditorSuggest(new ZE(this.app,this)),this.loaded=!0)}async verify(){if(gf()){if(await this.verifyViaPKMerOAuth())return!0;if(this.pkmerAuth.accessToken||this.settings.general.userInfo?.sub)return W.setVerifyState(null),!1}return await this.verifyViaLegacyJWT()}async verifyViaPKMerOAuth(){if(!await this.pkmerAuth.verify())return!1;let e=this.settings.general.userInfo;if(!e?.sub||!e.thino||!await this.pkmerAuth.ensureThinoDeviceRegistered())return!1;let t=await Hp();return t?(W.setVerifyState({appId:t,iss:$0t,type:$0c,sub:e.sub,method:`oauth`}),!0):!1}async verifyViaLegacyJWT(){let e=await Hp();if(!e)return;let t=ec(this.app,e);if(!t)return W.setVerifyState(null),!1;let n=await WM(`-----BEGIN PUBLIC KEY-----
  218. MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr+i4MLzI40gGFHl7gdRH
  219. UL1mH0NcWEs1/IBYDDbc9ALbvUGwDaUcVIKke+b+F4T7qISexyGd5qV0s1vNYeCk
  220. iCTq4w3+CFDurIFYAgQYTcV6K5pL8Bpb79FEclsTnAcKgiuzKBxPZ1djKxbgnmFj
  221. +PE+EcmX+JJK9hG1O8X+YFJoPJWl225eCoysONickiI7Ndwu9YLR8pIUb1VMyJSy
  222. cMR87z466Nc5Hx2QhwyuiiQYL3Ru4WkNF3AVWgqeOlhBDybFFwDaV7OOMTiYtH46
  223. 3iKx6azEVS8W/gYfrW+hKp2VziPPw3oxouP/wCes/4qRlXkwyjSwtfLtpE4Rsa4+
  224. swIDAQAB
  225. -----END PUBLIC KEY-----`);try{let{payload:r}=await GM(t,n),i=JSON.parse(new TextDecoder().decode(r));return!i||i.iss!==$0t||i.type!==$0c||i.appId!==e?!1:(W.setVerifyState(i),!0)}catch(e){console.error(e)}return!1}async checkVersionAndShowChangeLog(){let e=this.manifest.version,t=this.app.loadLocalStorage(WN);e===(typeof t==$q&&t?t:this.settings.LastUpdatedVersion)?t!==e&&this.app.saveLocalStorage(WN,e):(this.app.saveLocalStorage(WN,e),this.showChangeLog())}async showChangeLog(){await yf(this.app)}autoOpenMemos(){this.app.workspace.getLeavesOfType($0n).length>0||this.settings.MobileAndDesktop===$nc&&d.Platform.isDesktop||this.settings.MobileAndDesktop===$lp&&d.Platform.isMobile||this.settings.OpenMemosAutomatically&&this.openMemos()}async openDailyMemo(){if(this.app.workspace.getLeavesOfType($0n).length>0){K.setPathname($2j);return}await this.openMemos(),K.setPathname($2j)}async openMemos(e=$1f,t){let n=this.app.workspace;if(n.getLeavesOfType($0n).length>0){let e=n.getLeavesOfType($T)[0];return n.setActiveLeaf(e),n.revealLeaf(e),e}n.detachLeavesOfType($T);let r;switch(e){case $1y:r=n.getLeftLeaf(!1);break;case $2i:r=n.getRightLeaf(!1);break;case`float`:r=n.getLeaf(`window`);break;default:r=n.getLeaf(!0);break}if(r)return await r.setViewState({type:$T}),n.revealLeaf(r),r;let i=r.view.containerEl.querySelector($0o);return i?(i.focus(),r):(t?.(),r)}async openSuperSidebar(){if(!await Up()){Op();return}let e=this.app.workspace,t=e.getLeavesOfType(kE);if(t.length>0){e.revealLeaf(t[0]);return}let n=e.getRightLeaf(!1);await n.setViewState({type:kE,active:!0}),e.revealLeaf(n)}async searchIt(){let e=this.app.workspace,t=e.getLeavesOfType($T);if(!(t.length>0)){let e=await this.openMemos();window.setTimeout(()=>{e.view.containerEl.find($5h).focus(),this.app.workspace.trigger($e5)},300);return}let n=t[0];e.revealLeaf(n),window.setTimeout(()=>{n.view.containerEl.find($5h).focus(),this.app.workspace.trigger($e5)},300)}async focusOnEditor(){if(!(this.app.workspace.getLeavesOfType($0n).length>0)){await this.openMemos();return}this.app.workspace.trigger($1h)}changeStatus(){let e=this.app.workspace,t=e.getLeavesOfType($T);if(!(t.length>0)){new d.Notice(F(`Please Open Memos First`));return}let n=t[0];e.setActiveLeaf(n),n.view.containerEl.querySelector(`.list-or-task`).click()}async showInPopover(){let e=this.app.workspace;if(e.detachLeavesOfType($T),!this.app.plugins.getPlugin($ao)){new d.Notice(F(`Please install obsidian-hover-editor plugin first`));return}let t=this.app.plugins.getPlugin($ao)?.spawnPopover();t&&(await t.setViewState({type:$T}),e.revealLeaf(t),t.view.containerEl.classList.add($8r),this.settings?.FocusOnEditor&&t.view.containerEl.querySelector($0o)!==void 0&&t.view.containerEl.querySelector($0o)?.focus())}},tP=class extends d.Modal{inputEl;callback;constructor(e,t,n){super(e),this.title=t,this.callback=n}onOpen(){let{contentEl:e}=this;this.setTitle(this.title),this.containerEl.toggleClass([`thino-input-dialog`,$2m,$et],!0),this.inputEl=e.createEl($09,{attr:{type:$0l}}),this.inputEl.focus(),new d.Setting(e).addButton(e=>{e.setButtonText(F(`OK`)).onClick(()=>{this.close()})})}onClose(){this.contentEl.empty(),this.callback(this.inputEl.value)}};exports.InputModal=tP,exports.default=eP,exports.getCurrentDebugInfo=$N;
  226. /* nosourcemap */