Define
-JSON, YAML
-Define you orchestration logic that is triggered via events and - invokes services sync or async. - Write logic that includes human decisions, set timeouts and retries, handle errors, and - much more...
-diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..a44058c
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+.DS_Store
+node_modules
+dist
\ No newline at end of file
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index b3b4d5b..9460ce3 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @tsurdilo @manuelstein @falko @duglin
\ No newline at end of file
+* @ricardozanini @cdavernas
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
new file mode 100644
index 0000000..099edc1
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -0,0 +1,56 @@
+name: Bug Report
+description: Create a bug report
+labels: ["type: bug"]
+body:
+- type: markdown
+ attributes:
+ value: |
+ :pray: Thanks for taking the time to fill out this bug report!
+
+- type: markdown
+ attributes:
+ value: |
+ ## Bug Report
+
+- type: textarea
+ id: i-tried-this
+ attributes:
+ label: "I tried this:"
+ placeholder: "What did you try to do?"
+ validations:
+ required: true
+
+- type: textarea
+ id: instead-what-happened
+ attributes:
+ label: "This happened:"
+ placeholder: "What happened instead of what you've expected?"
+ validations:
+ required: true
+
+- type: textarea
+ id: what-did-you-expect
+ attributes:
+ label: "I expected this:"
+ placeholder: "What did you expect to happen? Describe the output or behavior you expected to see (unless it's obvious)."
+
+- type: textarea
+ id: workaround
+ attributes:
+ label: "Is there a workaround?"
+ placeholder: "What's the workaround to avoid this issue?"
+
+- type: textarea
+ attributes:
+ label: Anything else?
+ placeholder: |
+ Links? References? Logs? Anything that will give us more context about the issue you are encountering.
+ Tip: You can attach images or log files by dragging files in.
+
+- type: textarea
+ attributes:
+ label: Community Notes
+ value: |
+
+ * Please vote by adding a 👍 reaction to the issue to help us prioritize.
+ * If you are interested to work on this issue, please leave a comment.name: Bug Report 🐞
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..8e9f916
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,2 @@
+blank_issues_enabled: false
+contact_links: []
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml
new file mode 100644
index 0000000..86db065
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature.yml
@@ -0,0 +1,47 @@
+name: Feature Request
+description: Create a feature request
+labels: ["type: enhancement"]
+body:
+- type: markdown
+ attributes:
+ value: |
+ :pray: Thanks for taking the time to fill out this feature request!
+
+- type: markdown
+ attributes:
+ value: |
+ ## Feature Request
+
+- type: textarea
+ id: what-would-you-like-to-be-added
+ attributes:
+ label: "What would you like to be added?"
+ placeholder: "Description of the feature you'd like to see."
+ validations:
+ required: true
+
+- type: textarea
+ id: proposals
+ attributes:
+ label: "Proposal(s):"
+ placeholder: "Describe your proposal(s) and any relevant details here."
+
+- type: textarea
+ id: alternatives
+ attributes:
+ label: "Alternative(s):"
+ placeholder: "Describe any alternative approaches, options, or suggestions you’d like to consider."
+
+- type: textarea
+ id: additional-info
+ attributes:
+ label: "Additional info:"
+ placeholder: "Provide any supplementary details, context, or supporting information here."
+
+- type: textarea
+ attributes:
+ label: Community Notes
+ value: |
+
+ * Please vote by adding a 👍 reaction to the feature to help us prioritize.
+ * If you are interested to work on this feature, please leave a comment.
diff --git a/.github/OWNERS b/.github/OWNERS
index 78528e0..35b8508 100644
--- a/.github/OWNERS
+++ b/.github/OWNERS
@@ -1,12 +1,8 @@
reviewers:
- - tsurdilo
- - manuelstein
- - falko
- - duglin
+ - ricardozanini
+ - cdavernas
approvers:
- - tsurdilo
- - manuelstein
- - falko
- - duglin
+ - ricardozanini
+ - cdavernas
labels:
- sig/contributor-experience
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index d4dfde6..d1745cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,31 +1,24 @@
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**
-!**/src/test/**
+# build output
+dist/
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
+# generated types
+.astro/
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
+# dependencies
+node_modules/
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
+# logs
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
-### VS Code ###
-.vscode/
\ No newline at end of file
+# environment variables
+.env
+.env.production
+
+# macOS-specific files
+.DS_Store
+
+# jetbrains setting folder
+.idea/
\ No newline at end of file
diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
deleted file mode 100644
index 2d13273..0000000
--- a/.gitpod.Dockerfile
+++ /dev/null
@@ -1 +0,0 @@
-FROM python:3
diff --git a/.gitpod.yml b/.gitpod.yml
index 87027b2..dcd10cd 100644
--- a/.gitpod.yml
+++ b/.gitpod.yml
@@ -1,16 +1,10 @@
-image:
- file: .gitpod.Dockerfile
-
-# List the start up tasks. You can start them in parallel in multiple terminals.
-# https://www.gitpod.io/docs/config-start-tasks/
tasks:
- - command: python3 -m http.server
-
-# List the ports you want to expose and what to do when they are served.
-# https://www.gitpod.io/docs/config-ports/
+ - init: npm install
+ command: npm run dev
+
ports:
- - port: 8080
- onOpen: open-preview
+ - port: 4321
+ onOpen: open-browser
# Enable prebuilds of your project to enable faster workspace start times.
# https://www.gitpod.io/docs/prebuilds/#configure-the-github-app
diff --git a/.netlify/v1/config.json b/.netlify/v1/config.json
new file mode 100644
index 0000000..0bde578
--- /dev/null
+++ b/.netlify/v1/config.json
@@ -0,0 +1 @@
+{"images":{"remote_images":[]},"headers":[{"for":"/_astro/*","values":{"Cache-Control":"public, max-age=31536000, immutable"}}]}
\ No newline at end of file
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000..726a201
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+20.11.1
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..22a1505
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..d642209
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 38ffec7..db177d4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,28 @@
-## Hacking on Serverless Workflow in Gitpod
+# How to Contribute
-If you have a web browser, you can get a fully pre-configured development environment in one click:
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
-[](https://gitpod.io#https://github.com/serverlessworkflow/serverlessworkflow.github.io)
\ No newline at end of file
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution;
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to
Serverless Workflow is a CNCF project. It
- is open-source and community-driven, operating under the CNCF Code of Conduct.
- All parts of the project are under the Apache License, version 2.0.
-
We are a welcoming community of new and seasoned workflow enthusiasts and would be honored to have you join.
-
-
Please add as much info about the bug as possible, including:
-
- Charles d'Avernas
- --
- - - -
- -
- Standards-based DSL and open-source dev tools and runtimes are at the heart of - the Serverless Workflow project. We connect developers around the world to foster innovation and - provide a community-driven workflow ecosystem.
-
-
using the most powerful open-source, vendor-neutral workflow DSL. - Our DSL provides integrations with widely used standards for events and services - such as CloudEvents, - OpenAPI, - AsyncAPI, - GraphQL, - gRPC, and more.
-JSON, YAML
-Define you orchestration logic that is triggered via events and - invokes services sync or async. - Write logic that includes human decisions, set timeouts and retries, handle errors, and - much more...
-Java, Go, TypeScript, .NET, ...
-Start developing your workflow orchestrations with help of our - project SDKs. Get help creating out-of-box user experience using our open-source - editor/web tooling and visualization support
Serverless, Cloud-Native, Distributed runtimes
-Execute and scale your workflow-based orchestrations to build - high-end applications.
-
-
-
{
- "states": [
- {
- "name": "Monitor Vitals",
- "type": "event",
- "onEvents": [
- {
- "eventRefs": [
- "High Body Temp Event",
- "High Blood Pressure Event"
- ],
- "actions": [
- {
- "functionRef": "Invoke Dispatch Nurse Function"
- }
- ]
- },
- {
- "eventRefs": [
- "High Respiration Rate Event"
- ],
- "actions": [
- {
- "functionRef": "Invoke Dispatch Pulmonologist Function"
- }
- ]
- }
- ]
- }
- ]
-}{
- "states": [
- {
- "name": "Send Email",
- "type": "operation",
- "actions": [
- {
- "functionRef": {
- "invoke": "async",
- "refName": "Invoke Send Email Function",
- "arguments": {
- "customer": "${ .customer }"
- }
- }
- }
- ]
- }
- ]
-}{
- "states": [
- {
- "name": "ProvisionOrder",
- "type": "operation",
- "actions": [
- {
- "functionRef": {
- "refName": "provisionOrderFunction"
- }
- }
- ],
- "onErrors": [
- {
- "errorRef": "Missing order id",
- "transition": "MissingId"
- },
- {
- "errorRef": "Missing order item",
- "transition": "MissingItem"
- },
- {
- "errorRef": "Missing order quantity",
- "transition": "MissingQuantity"
- }
- ]
- }
- ]{
- "states": [
- {
- "name": "Item Purchase",
- "type": "event",
- "onEvents": [
- {
- "eventRefs": [
- "New Purchase Event"
- ],
- "actions": [
- {
- "functionRef": "Invoke Debit Customer Function"
- }
- ]
- }
- ],
- "compensatedBy": "Cancel Purchase",
- "onErrors": [
- {
- "errorRef": "Debit Error",
- "end": {
- "compensate": true
- }
- }
- ]
- },
- {
- "name": "Cancel Purchase",
- "type": "operation",
- "usedForCompensation": true,
- "actions": [
- {
- "functionRef": "Invoke Credit Customer Function"
- }
- ]
- }
- ]
-}{
- "id": "periodicInboxCheck",
- "name": "Periodic Check Inbox Workflow",
- "version": "1.0",
- "description": "Periodically Check Inbox",
- "start": {
- "stateName": "CheckInbox",
- "schedule": {
- "cron": "0 0/15 * * * ?"
- }
- },
- "states": [...]
-}Model human decisions, define timeouts and retries, define parallel exec logic and looping, make data and event-based decisions, - define callbacks, write powerful expressions, set secrets and constants and much more. -
-Read the specification document for the list of all DSL features. -
-Serverless Workflow welcomes all open-source runtimes to become part of our project - community. Contact us to find out how you can make your runtime part of our - project and CNCF.
-
- Synapse is a vendor-neutral, free, open-source, and community-driven - Workflow Management System (WFMS) implementing the Serverless Workflow specification. - You can deploy Synapse on Docker, Kubernetes, or natively on Wondows, Mac, and Linux. -
-Become part - of the highly innovative group of workflow enthusiasts and help us grow - our project under the CNCF umbrella. -
-Support our project and it's growth by becoming a Sponsor.
-Join our meetups and learn - from the project creators and ask questions.
-Check out our latest project office hours recording
--
| - | Event | -Date | -
|---|---|---|
| - | Serverless Workflow Workshop #4 | -Tue, May 24, 11:00 AM - 12:00 PM EST | -
| - | Serverless Workflow Workshop #3 | -April 2022 | -
| - | Serverless Workflow Workshop #2 | -March 2022 | -
| - | Serverless Workflow Workshop #1 | -January 2022 | -
| - | Serverless - Workflow and AsyncAPI - AsyncAPI Conf | -November 2021 | -
| - | KubeCon NA Project - Office Hours | -October 2021 | -
These brands are already using Serverless Workflow. - Is your company using Serverless Workflow and wants to be included in this list? - Let us know here!
-
- Huawei FunctionGraph hosts event-driven functions in a serverless - context while ensuring high availability, high scalability, and zero maintenance.
-
- Neuroglia is a consultancy and solution design company for the - digital transformation of companies and their services..
-
- Red Hat Kogito is a cloud-native business automation framework for - building intelligent business applications.
-
- Temporal is the open source microservice orchestration platform for - writing durable workflows as code.
-
- Nokia is a trusted partner for critical networks, committed to - innovation and technology leadership across mobile, fixed and cloud networks.
-
- OpenEnterprise Automatiko helps you build better services and - functions based on workflows expressed with well known standards.
-
- A dynamic event-driven application runtime used to decouple the application and backend middleware layer.
-
- FaasNet makes it easy to deploy functions and API to Kubernetes without repetitive, boiler-plate coding.
-
- Tantl is making it easy for developers to build internal workflows, such as allowing customer support reps to quickly process refunds.
-
id: provisionorder
-name: Provision Order
-timeouts:
- workflowExecTimeout: PT1M
-autoRetries: true
-states:
-- name: Start Provisioning
- type: event
- onEvents:
- - eventRefs:
- - New Order Cloud Event
- actions:
- - functionRef:
- refName: Provisioning Rest Function
- arguments:
- order: "${ .order }"
- nonRetryableErrors:
- - Invalid Order Error
- onErrors:
- - errorRef: Invalid Order Error
- end:
- continueAs: invalidorderworkflow
- end:
- produceEvents:
- - eventRef: Order Provisioned Cloud Event
-
- id: storefiles
-name: Store files
-states:
-- name: Ask User To Upload
- type: callback
- action:
- functionRef: User files upload
- eventRef: Uploads Completed CloudEvent
- transition: Check Uploads
-- name: Check Uploads
- type: switch
- dataConditions:
- - condition: "${ .files | length > 0 }"
- transition: Store Files
- defaultCondition:
- end: true
-- name: Store Files
- type: foreach
- inputCollection: "${ .files }"
- batchSize: 10
- timeouts:
- actionExecTimeout: PT10S
- actions:
- - subFlowRef: storefiletos3workflow
- end: true
-
- - -Great @InfoQ article - mentioning Serverless Workflow specification and the importance of using standards - managed by vendor-neutral foundation such as @CloudNativeFdn - https://t.co/YkropN9GNW
— - ServerlessWorkflow (@CNCFWorkflow) August - 19, 2021
- -As someone with BPMN 2.0 - background, I'd say @CNCFWorkflow - and the tooling around it with support in @Code is coming - together quite nicely. Like the simplicity and clean language spec, really well done - IMO. 40 lines of simple YAML for a simple Approval process, sweet.#serverless - pic.twitter.com/yMMIV2k1Vs
— Ralf - Mueller (@ralf_mueller) May - 26, 2021
'+(i?e:Q(e,!0))+"\n":""+(i?e:Q(e,!0))+"\n"},t.blockquote=function(e){return"\n"+e+"\n"},t.html=function(e){return e},t.heading=function(e,t,i,n){return this.options.headerIds?"
"+e+"
\n"},t.table=function(e,t){return t&&(t=""+t+""),""+e+""},t.br=function(){return this.options.xhtml?""+ae(e.message+"",!0)+"";throw e}}return he.options=he.setOptions=function(e){return se(he.defaults,e),de(he.defaults),he}, - he.getDefaults=le,he.defaults=ce,he.use=function(e){var t=se({},e);if(e.renderer&&function(){var i=he.defaults.renderer||new J,n=function(t){var n=i[t];i[t]=function(){for(var o=arguments.length,s=new Array(o),r=0;r
=v[i+1]?v[i+1]-1:v[i-1])-(i-b)-w;const r=d;for(;d>e&&c>n&&this.ElementsAreEqual(d,c);)d--,c--;if(v[i]=d,y&&Math.abs(i-C)<=E&&d<=_[i])return s[0]=d,a[0]=c,r>=_[i]&&E<=1448?this.WALKTRACE(C,h,u,S,b,g,p,w,_,v,d,t,s,c,o,a,y,l):null}if(E<=1447){let e=new Int32Array(u-h+2);e[0]=C-h+1,r.Copy2(_,h,e,1,u-h+1),this.m_forwardHistory.push(e),(e=new Int32Array(p-g+2))[0]=b-g+1,r.Copy2(v,g,e,1,p-g+1),this.m_reverseHistory.push(e)}}return this.WALKTRACE(C,h,u,S,b,g,p,w,_,v,d,t,s,c,o,a,y,l)}PrettifyChanges(e){for(let t=0;t ${e.supportThemeIcons?p.renderCodicons(t):t}!!e.allBasenames);r&&(s.allBasenames=r.allBasenames);const a=n.reduce((e,t)=>t.allPaths?e.concat(t.allPaths):e,[]);a.length&&(s.allPaths=a);return s}(o,t):(r=C.exec(x(o,t)))?D(r[1].substr(1),o,!0):(r=b.exec(x(o,t)))?D(r[1],o,!1):function(e){try{const t=new RegExp(`^${function e(t){if(!t)return"";let i="";const o=p(t,d);if(o.every(e=>e===l))i=".*";else{let t=!1;o.forEach((s,r)=>{if(s===l)return void(t||(i+=g(2),t=!0));let a=!1,u="",m=!1,f="";for(const t of s)if("}"!==t&&a)u+=t;else if(!m||"]"===t&&f)switch(t){case"{":a=!0;continue;case"[":m=!0;continue;case"}":const o=`(?:${p(u,",").map(t=>e(t)).join("|")})`;i+=o,a=!1,u="";break;case"]":i+="["+f+"]",m=!1,f="";break;case"?":i+=h;continue;case"*":i+=g(1);continue;default:i+=n.escapeRegExpCharacters(t)}else{let e;f+=e="-"===t?t:"^"!==t&&"!"!==t||f?t===d?"":n.escapeRegExpCharacters(t):"^"}r"},E.link=(i,n,o)=>{if(i===o&&(o=s.removeMarkdownEscapes(o)),i=S(i,!1),t.baseUrl){
- /^\w[\w\d+.-]*:/.test(i)||(i=m.resolvePath(t.baseUrl,i).toString())}return n=s.removeMarkdownEscapes(n),!(i=s.removeMarkdownEscapes(i))||i.match(/^data:|javascript:/i)||i.match(/^command:/i)&&!e.isTrusted||i.match(/^command:(\/\/\/)?_workbench\.downloadResource/i)?o:`/g,">").replace(/"/g,""").replace(/'/g,"'")}" title="${n||i}">${o}
e.width||n+u>e.height)return void console.warn("bad render request outside image data");const g=l?this.charDataLight:this.charDataNormal,p=i.getCharIndex(o,a),m=4*e.width,f=r.r,_=r.g,v=r.b,C=s.r-f,b=s.g-_,S=s.b-v,w=e.data;let y=p*c*h,E=n*m+4*t;for(let e=0;ee.width||i+d>e.height)return void console.warn("bad render request outside image data");const c=4*e.width,h=o.r,u=o.g,g=o.b,p=h+.5*(n.r-h),m=u+.5*(n.g-u),f=g+.5*(n.b-g),_=e.data;let v=i*c+4*t;for(let e=0;e!0;const t=Date.now();return()=>Date.now()-tt&&(t=s),o>i&&(i=o),r>i&&(i=r)}let o=new n(++i,++t,0);for(let t=0,i=e.length;t=this._maxCharCode?0:this._states.get(e,t)}}t.StateMachine=o;let s=null;let r=null;class a{static _createLink(e,t,i,n,o){let s=o-1;do{const i=t.charCodeAt(s)
- ;if(2!==e.get(i))break;s--}while(s>n);if(n>0){const e=t.charCodeAt(n-1),i=t.charCodeAt(s);(40===e&&41===i||91===e&&93===i||123===e&&125===i)&&s--}return{range:{startLineNumber:i,startColumn:n+1,endLineNumber:i,endColumn:s+2},url:t.substring(n,s+1)}}static computeLinks(e,t=(null===s&&(s=new o([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),s)){const n=function(){if(null===r){r=new i.CharacterClassifier(0);const e=" \t<>'\"、。。、,.:;‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…";for(let t=0;t=0?((n+=i?1:-1)<0?n=e.length-1:n%=e.length,e[n]):null}}t.BasicInplaceReplace=i,i.INSTANCE=new i})),define(t[371],i([0,1,12,8,102]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OnEnterSupport=void 0;class s{constructor(e){(e=e||{}).brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(e=>{const t=s._createOpenBracketRegExp(e[0]),i=s._createCloseBracketRegExp(e[1]);t&&i&&this._brackets.push({open:e[0],openRegExp:t,close:e[1],closeRegExp:i})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,n){if(e>=3)for(let e=0,o=this._regExpRules.length;e{let i=c(e.token,t.token);return 0!==i?i:e.index-t.index});let i=0,n="000000",o="ffffff";for(;e.length>=1&&""===e[0].token;){let t=e.shift();-1!==t.fontStyle&&(i=t.fontStyle),null!==t.foreground&&(n=t.foreground),null!==t.background&&(o=t.background)}let s=new r;for(let e of t)s.getId(e);let l=s.getId(n),d=s.getId(o),g=new h(i,l,d),p=new u(g);for(let t=0,i=e.length;t>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}t.TokenTheme=a
- ;const l=/\b(comment|string|regex|regexp)\b/;function d(e){let t=e.match(l);if(!t)return 0;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":case"regexp":return 4}throw new Error("Unexpected match for standard token type!")}function c(e,t){return ea)return null;if((t=Math.min(a,Math.max(0,t)))===(n=Math.min(a,Math.max(0,n)))&&i===o&&0===i){const i=e.children[t].getClientRects();return this._createHorizontalRangesFromClientRects(i,s)}t!==n&&n>0&&0===o&&(n--,o=1073741824);let l=e.children[t].firstChild,d=e.children[n].firstChild;if(l&&d||(!l&&0===i&&t>0&&(l=e.children[t-1].firstChild,i=1073741824),!d&&0===o&&n>0&&(d=e.children[n-1].firstChild,o=1073741824)),!l||!d)return null;i=Math.min(l.textContent.length,Math.max(0,i)),o=Math.min(d.textContent.length,Math.max(0,o));const c=this._readClientRects(l,i,d,o,r);return this._createHorizontalRangesFromClientRects(c,s)}}})),define(t[376],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewContext=t.EditorTheme=void 0;class i{
- constructor(e){this._theme=e}get type(){return this._theme.type}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}t.EditorTheme=i;t.ViewContext=class{constructor(e,t,n){this.configuration=e,this.theme=new i(t),this.model=n,this.viewLayout=n.viewLayout}addEventHandler(e){this.model.addViewEventHandler(e)}removeEventHandler(e){this.model.removeViewEventHandler(e)}}})),define(t[162],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewZonesChangedEvent=t.ViewTokensColorsChangedEvent=t.ViewTokensChangedEvent=t.ViewThemeChangedEvent=t.ViewScrollChangedEvent=t.ViewRevealRangeRequestEvent=t.ViewLinesInsertedEvent=t.ViewLinesDeletedEvent=t.ViewLinesChangedEvent=t.ViewLineMappingChangedEvent=t.ViewLanguageConfigurationEvent=t.ViewFocusChangedEvent=t.ViewFlushedEvent=t.ViewDecorationsChangedEvent=t.ViewCursorStateChangedEvent=t.ViewConfigurationChangedEvent=void 0;t.ViewConfigurationChangedEvent=class{constructor(e){this.type=0,this._source=e}hasChanged(e){
- return this._source.hasChanged(e)}};t.ViewCursorStateChangedEvent=class{constructor(e,t){this.type=1,this.selections=e,this.modelSelections=t}};t.ViewDecorationsChangedEvent=class{constructor(e){this.type=2,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0)}};t.ViewFlushedEvent=class{constructor(){this.type=3}};t.ViewFocusChangedEvent=class{constructor(e){this.type=4,this.isFocused=e}};t.ViewLanguageConfigurationEvent=class{constructor(){this.type=5}};t.ViewLineMappingChangedEvent=class{constructor(){this.type=6}};t.ViewLinesChangedEvent=class{constructor(e,t){this.type=7,this.fromLineNumber=e,this.toLineNumber=t}};t.ViewLinesDeletedEvent=class{constructor(e,t){this.type=8,this.fromLineNumber=e,this.toLineNumber=t}};t.ViewLinesInsertedEvent=class{constructor(e,t){this.type=9,this.fromLineNumber=e,this.toLineNumber=t}};t.ViewRevealRangeRequestEvent=class{constructor(e,t,i,n,o,s){this.type=10,this.source=e,this.range=t,
- this.selections=i,this.verticalType=n,this.revealHorizontal=o,this.scrollType=s}};t.ViewScrollChangedEvent=class{constructor(e){this.type=11,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}};t.ViewThemeChangedEvent=class{constructor(){this.type=12}};t.ViewTokensChangedEvent=class{constructor(e){this.type=13,this.ranges=e}};t.ViewTokensColorsChangedEvent=class{constructor(){this.type=14}};t.ViewZonesChangedEvent=class{constructor(){this.type=15}}})),define(t[163],i([0,1,8]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LineDecorationsNormalizer=t.DecorationSegment=t.LineDecoration=void 0;class n{constructor(e,t,i,n){this.startColumn=e,this.endColumn=t,this.className=i,this.type=n}static _equals(e,t){
- return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length;if(i!==t.length)return!1;for(let o=0;ot)continue;if(d.isEmpty()&&(0===l.type||3===l.type))continue;const c=d.startLineNumber===t?d.startColumn:i,h=d.endLineNumber===t?d.endColumn:o;s[r++]=new n(c,h,l.inlineClassName,l.type)}return s}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn===t.startColumn){if(e.endColumn===t.endColumn){const i=n._typeCompare(e.type,t.type);return 0===i?e.className>>1,t=this._data[e];if(t===n)return e;t>n?s=e:o=e}if(o===s)return o;let a=this._data[o],l=this._data[s];if(a===n)return o;if(l===n)return s;let d,c=r.getPartIndex(a);return i-r.getCharIndex(a)<=(d=c!==r.getPartIndex(l)?t:r.getCharIndex(l))-i?o:s}}t.CharacterMapping=r;class a{constructor(e,t,i){this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function l(e,t){if(0===e.lineContent.length){let i=0,n="";if(e.lineDecorations.length>0){const t=[],o=[];for(let n=0,s=e.lineDecorations.length;n${t.length>0?``:""}${o.length>0?``:""}=22,_=c+o<=h.height-22;return this._fixedOverflowWidgets?{fitsAbove:f,aboveTop:Math.max(d,22),aboveLeft:g,fitsBelow:_,belowTop:c,belowLeft:m}:{fitsAbove:f,aboveTop:r,aboveLeft:u,fitsBelow:_,belowTop:a,belowLeft:p}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new s(e.top,e.left+this._contentLeft)}_getTopAndBottomLeft(e){if(!this._viewRange)return[null,null]
- ;const t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||0===t.length)return[null,null];let i=t[0],n=t[0];for(const e of t)e.lineNumber{const o={addZone:e=>(t=!0,this._addZone(i,e)),removeZone:e=>{e&&(t=this._removeZone(i,e)||t)},layoutZone:e=>{e&&(t=this._layoutZone(i,e)||t)}};!function(e,t){try{e(t)}catch(e){n.onUnexpectedError(e)}}(e,o),o.addZone=r,o.removeZone=r,o.layoutZone=r}),t}_addZone(e,t){
- const n=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(n.afterViewLineNumber,this._getZoneOrdinal(t),n.heightInPx,n.minWidthInPx),delegate:t,isVisible:!1,domNode:i.createFastDomNode(t.domNode),marginDomNode:t.marginDomNode?i.createFastDomNode(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,n.heightInPx),o.domNode.setPosition("absolute"),o.domNode.domNode.style.width="100%",o.domNode.setDisplay("none"),o.domNode.setAttribute("monaco-view-zone",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition("absolute"),o.marginDomNode.domNode.style.width="100%",o.marginDomNode.setDisplay("none"),o.marginDomNode.setAttribute("monaco-view-zone",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),
- i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],n=this._computeWhitespaceProps(i.delegate);return e.changeOneWhitespace(i.whitespaceId,n.afterViewLineNumber,n.heightInPx),this._safeCallOnComputedHeight(i.delegate,n.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){if(this._zones.hasOwnProperty(e)){const t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1}_heightInPixels(e){return"number"==typeof e.heightInPx?e.heightInPx:"number"==typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){
- return"number"==typeof e.minWidthInPx?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if("function"==typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(e){n.onUnexpectedError(e)}}_safeCallOnDomNodeTop(e,t){if("function"==typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(e){n.onUnexpectedError(e)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let n=!1;for(let e=0,o=t.length;e1){let s=e.getRegionsInside(i,(e,i)=>e.isCollapsed!==o&&i0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}})),define(t[217],i([0,1,12,166]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sanitizeRanges=t.RangesCollector=t.SyntaxRangeProvider=t.ID_SYNTAX_PROVIDER=void 0;const o=5e3,s={};t.ID_SYNTAX_PROVIDER="syntax";t.SyntaxRangeProvider=class{constructor(e,i,n=o){this.editorModel=e,this.providers=i,this.limit=n,this.id=t.ID_SYNTAX_PROVIDER}compute(e){return function(e,t,n){let o=null,r=e.map((e,r)=>Promise.resolve(e.provideFoldingRanges(t,s,n)).then(e=>{if(!n.isCancellationRequested&&Array.isArray(e)){Array.isArray(o)||(o=[]);let i=t.getLineCount()
- ;for(let t of e)t.start>0&&t.end>t.start&&t.end<=i&&o.push({start:t.start,end:t.end,rank:r,kind:t.kind})}},i.onUnexpectedExternalError));return Promise.all(r).then(e=>o)}(this.providers,this.editorModel,e).then(e=>{if(e){return a(e,this.limit)}return null})}dispose(){}};class r{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,o){if(e>n.MAX_LINE_NUMBER||t>n.MAX_LINE_NUMBER)return;let s=this._length;this._startIndexes[s]=e,this._endIndexes[s]=t,this._nestingLevels[s]=o,this._types[s]=i,this._length++,o<30&&(this._nestingLevelCounts[o]=(this._nestingLevelCounts[o]||0)+1)}toIndentRanges(){if(this._length<=this._foldingRangesLimit){let e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=0;i{this.positionClassName=d,this.domNode.className=`monaco-list-type-filter ${this.positionClassName}`,this.domNode.style.top="",this.domNode.style.left="",i.dispose(a)},null,a),l.StaticDND.CurrentDragAndDropData=new l.DragAndDropData("vscode-ui"),a.add(i.toDisposable(()=>l.StaticDND.CurrentDragAndDropData=void 0))}onDidSpliceModel(){
- this._enabled&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}onDidChangeFilterOnType(){this.tree.updateOptions({filterOnType:this.filterOnTypeDomNode.checked}),this.tree.refilter(),this.tree.domFocus(),this.render(),this.updateFilterOnTypeTitleAndIcon()}updateFilterOnTypeTitleAndIcon(){this.filterOnType?(o.removeClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOffIcon.classNames),o.addClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOnIcon.classNames),this.filterOnTypeDomNode.title=p.localize(1,null)):(o.removeClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOnIcon.classNames),o.addClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOffIcon.classNames),this.filterOnTypeDomNode.title=p.localize(2,null))}render(){const e=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&this.tree.options.filterOnType&&e?(this.messageDomNode.textContent=p.localize(3,null),this._empty=!0):(this.messageDomNode.innerText="",this._empty=!1),o.toggleClass(this.domNode,"no-matches",e),
- this.domNode.title=p.localize(4,null,this.filter.matchCount,this.filter.totalCount),this.labelDomNode.textContent=this.pattern.length>16?"…"+this.pattern.substr(this.pattern.length-16):this.pattern,this._onDidChangeEmptyState.fire(this._empty)}shouldAllowFocus(e){return!(this.enabled&&this.pattern&&!this.filterOnType)||(this.filter.totalCount>0&&this.filter.matchCount<=1||!u.FuzzyScore.isDefault(e.filterData))}dispose(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.dispose(),this._enabled=!1,this.triggered=!1),this._onDidChangePattern.dispose(),i.dispose(this.disposables)}}function N(e){let t=a.TreeMouseEventTarget.Unknown;return o.hasParentWithClass(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=a.TreeMouseEventTarget.Twistie:o.hasParentWithClass(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")&&(t=a.TreeMouseEventTarget.Element),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function I(e,t){t(e),e.children.forEach(e=>I(e,t))}class M{
- constructor(e){this.identityProvider=e,this.nodes=[],this._onDidChange=new s.Emitter,this.onDidChange=this._onDidChange.event}get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}set(e,t){d.equals(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const e=this;this._onDidChange.fire({get elements(){return e.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map(e=>e.element)),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const e=this.createNodeSet(),i=t=>e.delete(t);return t.forEach(e=>I(e,i)),void this.set([...e.values()])}const i=new Set,n=e=>i.add(this.identityProvider.getId(e.element).toString());t.forEach(e=>I(e,n));const o=new Map,s=e=>o.set(this.identityProvider.getId(e.element).toString(),e);e.forEach(e=>I(e,s));const r=[];for(const e of this.nodes){
- const t=this.identityProvider.getId(e.element).toString();if(i.has(t)){const e=o.get(t);e&&r.push(e)}else r.push(e)}this._set(r,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class R extends n.MouseController{constructor(e,t){super(e),this.tree=t}onViewPointer(e){if(n.isInputElement(e.browserEvent.target)||n.isMonacoEditor(e.browserEvent.target))return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,s=o.hasClass(i,"monaco-tl-twistie")||o.hasClass(i,"monaco-icon-label")&&o.hasClass(i,"folder-icon")&&e.browserEvent.offsetX<16;let r=!1;if((r="function"==typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(t.element):!!this.tree.expandOnlyOnTwistieClick)&&!s)return super.onViewPointer(e);if(this.tree.expandOnlyOnDoubleClick&&2!==e.browserEvent.detail&&!s)return super.onViewPointer(e);if(t.collapsible){
- const i=this.tree.model,n=i.getNodeLocation(t),o=e.browserEvent.altKey;if(i.setCollapsed(n,void 0,o),r&&s)return}super.onViewPointer(e)}onDoubleClick(e){o.hasClass(e.browserEvent.target,"monaco-tl-twistie")||super.onDoubleClick(e)}}class T extends n.List{constructor(e,t,i,n,o,s,r){super(e,t,i,n,r),this.focusTrait=o,this.selectionTrait=s}createMouseController(e){return new R(this,e.tree)}splice(e,t,i=[]){if(super.splice(e,t,i),0===i.length)return;const n=[],o=[];i.forEach((t,i)=>{this.focusTrait.has(t)&&n.push(e+i),this.selectionTrait.has(t)&&o.push(e+i)}),n.length>0&&super.setFocus(d.distinctES6([...super.getFocus(),...n])),o.length>0&&super.setSelection(d.distinctES6([...super.getSelection(),...o]))}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(e=>this.element(e)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(e=>this.element(e)),t)}}t.AbstractTree=class{constructor(e,t,a,l,d={}){this._options=d,this.eventBufferer=new s.EventBufferer,
- this.disposables=new i.DisposableStore,this._onWillRefilter=new s.Emitter,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new s.Emitter;const c=new y(a),h=new s.Relay,u=new s.Relay,g=new L(u.event);this.renderers=l.map(e=>new x(e,()=>this.model,h.event,g,d));for(let e of this.renderers)this.disposables.add(e);let p;var m,f;d.keyboardNavigationLabelProvider&&(p=new D(this,d.keyboardNavigationLabelProvider,d.filter),d=Object.assign(Object.assign({},d),{filter:p}),this.disposables.add(p)),this.focus=new M(d.identityProvider),this.selection=new M(d.identityProvider),this.view=new T(e,t,c,this.renderers,this.focus,this.selection,Object.assign(Object.assign({},(m=()=>this.model,(f=d)&&Object.assign(Object.assign({},f),{identityProvider:f.identityProvider&&{getId:e=>f.identityProvider.getId(e.element)},dnd:f.dnd&&new w(m,f.dnd),multipleSelectionController:f.multipleSelectionController&&{
- isSelectionSingleChangeEvent:e=>f.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element})),isSelectionRangeChangeEvent:e=>f.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},accessibilityProvider:f.accessibilityProvider&&Object.assign(Object.assign({},f.accessibilityProvider),{getSetSize(e){const t=m(),i=t.getNodeLocation(e),n=t.getParentNodeLocation(i);return t.getNode(n).visibleChildrenCount},getPosInSet:e=>e.visibleChildIndex+1,isChecked:f.accessibilityProvider&&f.accessibilityProvider.isChecked?e=>f.accessibilityProvider.isChecked(e.element):void 0,getRole:f.accessibilityProvider&&f.accessibilityProvider.getRole?e=>f.accessibilityProvider.getRole(e.element):()=>"treeitem",getAriaLabel:e=>f.accessibilityProvider.getAriaLabel(e.element),getWidgetAriaLabel:()=>f.accessibilityProvider.getWidgetAriaLabel(),
- getWidgetRole:f.accessibilityProvider&&f.accessibilityProvider.getWidgetRole?()=>f.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e=>e.depth,getActiveDescendantId:f.accessibilityProvider.getActiveDescendantId&&(e=>f.accessibilityProvider.getActiveDescendantId(e.element))}),keyboardNavigationLabelProvider:f.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},f.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:e=>f.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}),enableKeyboardNavigation:f.simpleKeyboardNavigation}))),{tree:this})),this.model=this.createModel(e,this.view,d),h.input=this.model.onDidChangeCollapseState;const _=s.Event.forEach(this.model.onDidSplice,e=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(e),this.selection.onDidModelSplice(e)})});if(_(()=>null,null,this.disposables),u.input=s.Event.chain(s.Event.any(_,this.focus.onDidChange,this.selection.onDidChange)).debounce(()=>null,0).map(()=>{const e=new Set
- ;for(const t of this.focus.getNodes())e.add(t);for(const t of this.selection.getNodes())e.add(t);return[...e.values()]}).event,!1!==d.keyboardSupport){const e=s.Event.chain(this.view.onKeyDown).filter(e=>!n.isInputElement(e.target)).map(e=>new r.StandardKeyboardEvent(e));e.filter(e=>15===e.keyCode).on(this.onLeftArrow,this,this.disposables),e.filter(e=>17===e.keyCode).on(this.onRightArrow,this,this.disposables),e.filter(e=>10===e.keyCode).on(this.onSpace,this,this.disposables)}if(d.keyboardNavigationLabelProvider){const e=d.keyboardNavigationDelegate||n.DefaultKeyboardNavigationDelegate;this.typeFilterController=new k(this,this.model,this.view,p,e),this.focusNavigationFilter=e=>this.typeFilterController.shouldAllowFocus(e),this.disposables.add(this.typeFilterController)}this.styleElement=o.createStyleSheet(this.view.getHTMLElement()),o.toggleClass(this.getHTMLElement(),"always",this._options.renderIndentGuides===E.Always)}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}
- get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return s.Event.map(this.view.onMouseDblClick,N)}get onPointer(){return s.Event.map(this.view.onPointer,N)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get expandOnlyOnDoubleClick(){var e;return null!==(e=this._options.expandOnlyOnDoubleClick)&&void 0!==e&&e}get expandOnlyOnTwistieClick(){return void 0!==this._options.expandOnlyOnTwistieClick&&this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}updateOptions(e={}){this._options=Object.assign(Object.assign({},this._options),e);for(const t of this.renderers)t.updateOptions(e);this.view.updateOptions({enableKeyboardNavigation:this._options.simpleKeyboardNavigation,automaticKeyboardNavigation:this._options.automaticKeyboardNavigation,smoothScrolling:this._options.smoothScrolling,horizontalScrolling:this._options.horizontalScrolling}),
- this.typeFilterController&&this.typeFilterController.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),o.toggleClass(this.getHTMLElement(),"always",this._options.renderIndentGuides===E.Always)}get options(){return this._options}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}domFocus(){this.view.domFocus()}layout(e,t){this.view.layout(e,t)}style(e){const t=`.${this.view.domId}`,i=[];e.treeIndentGuidesStroke&&(i.push(`.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }`),i.push(`.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`));const n=i.join("\n");n!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=n),this.view.style(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){
- return this.model.setCollapsed(e,!1,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){const i=e.map(e=>this.model.getNode(e));this.selection.set(i,t);const n=e.map(e=>this.model.getListIndex(e)).filter(e=>e>-1);this.view.setSelection(n,t,!0)}getSelection(){return this.selection.get()}setFocus(e,t){const i=e.map(e=>this.model.getNode(e));this.focus.set(i,t);const n=e.map(e=>this.model.getListIndex(e)).filter(e=>e>-1);this.view.setFocus(n,t,!0)}focusNext(e=1,t=!1,i,n=this.focusNavigationFilter){this.view.focusNext(e,t,i,n)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);-1!==i&&this.view.reveal(i,t)}getRelativeTop(e){const t=this.model.getListIndex(e);return-1===t?null:this.view.getRelativeTop(t)}onLeftArrow(e){e.preventDefault(),e.stopPropagation()
- ;const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!0)){const e=this.model.getParentNodeLocation(n);if(!e)return;const t=this.model.getListIndex(e);this.view.reveal(t),this.view.setFocus([t])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!1)){if(!i.children.some(e=>e.visible))return;const[e]=this.view.getFocus(),t=e+1;this.view.reveal(t),this.view.setFocus([t])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(n,void 0,o)}dispose(){i.dispose(this.disposables),this.view.dispose()}}})),define(t[420],i([0,1,168,146]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataTree=void 0
- ;class o extends i.AbstractTree{constructor(e,t,i,n,o,s={}){super(e,t,i,n,s),this.user=e,this.dataSource=o,this.identityProvider=s.identityProvider}createModel(e,t,i){return new n.ObjectTreeModel(e,t,i)}}t.DataTree=o})),define(t[226],i([0,1,50,168,146,266,96]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompressibleObjectTree=t.ObjectTree=void 0;class l extends n.AbstractTree{constructor(e,t,i,n,o={}){super(e,t,i,n,o)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}setChildren(e,t=i.Iterable.empty()){this.model.setChildren(e,t)}rerender(e){void 0!==e?this.model.rerender(e):this.view.rerender()}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new o.ObjectTreeModel(e,t,i)}}t.ObjectTree=l;class d{constructor(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}get compressedTreeNodeProvider(){
- return this._compressedTreeNodeProvider()}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){const o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===o.element.elements.length?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,n)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,n))}disposeElement(e,t,i,n){i.compressedTreeNode?this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(i.compressedTreeNode,t,i.data,n):this.renderer.disposeElement&&this.renderer.disposeElement(e,t,i.data,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)}}a([r.memoize],d.prototype,"compressedTreeNodeProvider",null);t.CompressibleObjectTree=class extends l{constructor(e,t,i,n,o={}){const s=()=>this;super(e,t,i,n.map(e=>new d(s,e)),function(e,t){return t&&Object.assign(Object.assign({},t),{
- keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(i){let n;try{n=e().getCompressedTreeNode(i)}catch(e){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i)}return 1===n.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(n.element.elements)}}})}(s,o))}setChildren(e,t=i.Iterable.empty()){this.model.setChildren(e,t)}createModel(e,t,i){return new s.CompressibleObjectTreeModel(e,t,i)}updateOptions(e={}){super.updateOptions(e),void 0!==e.compressionEnabled&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}})),define(t[421],i([0,1,168,226,95,2,4,15,50,154,12,7,145,192]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p){"use strict";function m(e){return Object.assign(Object.assign({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}
- function f(e,t){return!!t.parent&&(t.parent===e||f(e,t.parent))}Object.defineProperty(t,"__esModule",{value:!0}),t.CompressibleAsyncDataTree=t.AsyncDataTree=void 0;class _{constructor(e){this.node=e}get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new _(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class v{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderTwistie(e,t){
- return e.slow?u.addClasses(t,p.treeItemLoadingIcon.classNames):u.removeClasses(t,p.treeItemLoadingIcon.classNames),!1}disposeElement(e,t,i,n){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function C(e){return{browserEvent:e.browserEvent,elements:e.elements.map(e=>e.element)}}function b(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}class S extends c.ElementsDragAndDropData{constructor(e){super(e.elements.map(e=>e.element)),this.data=e}}function w(e){return e instanceof c.ElementsDragAndDropData?new S(e):e}class y{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(e=>e.element),t)}onDragStart(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(w(e),t)}onDragOver(e,t,i,n,o=!0){
- return this.dnd.onDragOver(w(e),t&&t.element,i,n)}drop(e,t,i,n){this.dnd.drop(w(e),t&&t.element,i,n)}onDragEnd(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}function E(e){return e&&Object.assign(Object.assign({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:t=>e.identityProvider.getId(t.element)},dnd:e.dnd&&new y(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:t=>e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element})),isSelectionRangeChangeEvent:t=>e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",isChecked:e.accessibilityProvider.isChecked?t=>{var i
- ;return!!(null===(i=e.accessibilityProvider)||void 0===i?void 0:i.isChecked(t.element))}:void 0,getAriaLabel:t=>e.accessibilityProvider.getAriaLabel(t.element),getWidgetAriaLabel:()=>e.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider.getAriaLevel&&(t=>e.accessibilityProvider.getAriaLevel(t.element)),getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))}),filter:e.filter&&{filter:(t,i)=>e.filter.filter(t.element,i)},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}),sorter:void 0,
- expandOnlyOnTwistieClick:void 0===e.expandOnlyOnTwistieClick?void 0:"function"!=typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:t=>e.expandOnlyOnTwistieClick(t.element),additionalScrollHeight:e.additionalScrollHeight})}function L(e,t){t(e),e.children.forEach(e=>L(e,t))}class x{constructor(e,t,i,n,r,l={}){this.user=e,this.dataSource=r,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new a.Emitter,this._onDidChangeNodeSlowState=new a.Emitter,this.nodeMapper=new o.WeakMapper(e=>new _(e)),this.disposables=new s.DisposableStore,this.identityProvider=l.identityProvider,this.autoExpandSingleChildren=void 0!==l.autoExpandSingleChildren&&l.autoExpandSingleChildren,this.sorter=l.sorter,this.collapseByDefault=l.collapseByDefault,this.tree=this.createTree(e,t,i,n,l),this.root=m({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=Object.assign(Object.assign({},this.root),{id:null})),this.nodes.set(null,this.root),
- this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}get onDidChangeFocus(){return a.Event.map(this.tree.onDidChangeFocus,C)}get onDidChangeSelection(){return a.Event.map(this.tree.onDidChangeSelection,C)}get onMouseDblClick(){return a.Event.map(this.tree.onMouseDblClick,b)}get onPointer(){return a.Event.map(this.tree.onPointer,b)}get onDidFocus(){return this.tree.onDidFocus}get onDidDispose(){return this.tree.onDidDispose}createTree(e,t,o,s,r){const a=new i.ComposedTreeDelegate(o),l=s.map(e=>new v(e,this.nodeMapper,this._onDidChangeNodeSlowState.event)),d=E(r)||{};return new n.ObjectTree(e,t,a,l,d)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}setInput(e,t){return r(this,void 0,void 0,(function*(){
- this.refreshPromises.forEach(e=>e.cancel()),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};yield this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&"number"==typeof t.scrollTop&&(this.scrollTop=t.scrollTop)}))}_updateChildren(e=this.root.element,t=!0,i=!1,n){return r(this,void 0,void 0,(function*(){if(void 0===this.root.element)throw new o.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event));const s=this.getDataNode(e);if(yield this.refreshAndRenderNode(s,t,n),i)try{this.tree.rerender(s)}catch(e){}}))}rerender(e){if(void 0===e||e===this.root.element)return void this.tree.rerender();const t=this.getDataNode(e);this.tree.rerender(t)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}expand(e,t=!1){return r(this,void 0,void 0,(function*(){
- if(void 0===this.root.element)throw new o.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i))return!1;if(i.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i))return!1;const n=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event)),n}))}setSelection(e,t){const i=e.map(e=>this.getDataNode(e));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(e=>e.element)}setFocus(e,t){const i=e.map(e=>this.getDataNode(e));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(e=>e.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e)
- ;if(!t)throw new o.TreeError(this.user,`Data tree node not found: ${e}`);return t}refreshAndRenderNode(e,t,i){return r(this,void 0,void 0,(function*(){yield this.refreshNode(e,t,i),this.render(e,i)}))}refreshNode(e,t,i){return r(this,void 0,void 0,(function*(){let n;return this.subTreeRefreshPromises.forEach((o,s)=>{!n&&function(e,t){return e===t||f(e,t)||f(t,e)}(s,e)&&(n=o.then(()=>this.refreshNode(e,t,i)))}),n||this.doRefreshSubTree(e,t,i)}))}doRefreshSubTree(e,t,i){return r(this,void 0,void 0,(function*(){let n;e.refreshPromise=new Promise(e=>n=e),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const o=yield this.doRefreshNode(e,t,i);e.stale=!1,yield Promise.all(o.map(e=>this.doRefreshSubTree(e,t,i)))}finally{n()}}))}doRefreshNode(e,t,i){return r(this,void 0,void 0,(function*(){let n;if(e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren){const t=l.timeout(800);t.then(()=>{e.slow=!0,
- this._onDidChangeNodeSlowState.fire(e)},e=>null),n=this.doGetChildren(e).finally(()=>t.cancel())}else n=Promise.resolve(d.Iterable.empty());try{const o=yield n;return this.setChildren(e,o,t,i)}catch(t){if(e!==this.root&&this.tree.collapse(e===this.root?null:e),h.isPromiseCanceledError(t))return[];throw t}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}))}doGetChildren(e){let t=this.refreshPromises.get(e);return t||(t=l.createCancelablePromise(()=>r(this,void 0,void 0,(function*(){const t=yield this.dataSource.getChildren(e.element);return this.processChildren(t)}))),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){null!==e.element&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(h.onUnexpectedError))}setChildren(e,t,i,n){const o=[...t];if(0===e.children.length&&0===o.length)return[];const s=new Map,r=new Map
- ;for(const t of e.children)if(s.set(t.element,t),this.identityProvider){const e=this.tree.isCollapsed(t);r.set(t.id,{node:t,collapsed:e})}const a=[],l=o.map(t=>{const o=!!this.dataSource.hasChildren(t);if(!this.identityProvider){const i=m({element:t,parent:e,hasChildren:o});return o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(i.collapsedByDefault=!1,a.push(i)),i}const l=this.identityProvider.getId(t).toString(),d=r.get(l);if(d){const e=d.node;return s.delete(e.element),this.nodes.delete(e.element),this.nodes.set(t,e),e.element=t,e.hasChildren=o,i?d.collapsed?(e.children.forEach(e=>L(e,e=>this.nodes.delete(e.element))),e.children.splice(0,e.children.length),e.stale=!0):a.push(e):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(e.collapsedByDefault=!1,a.push(e)),e}const c=m({element:t,parent:e,id:l,hasChildren:o});return n&&n.viewState.focus&&n.viewState.focus.indexOf(l)>-1&&n.focus.push(c),n&&n.viewState.selection&&n.viewState.selection.indexOf(l)>-1&&n.selection.push(c),
- n&&n.viewState.expanded&&n.viewState.expanded.indexOf(l)>-1?a.push(c):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(c.collapsedByDefault=!1,a.push(c)),c});for(const e of s.values())L(e,e=>this.nodes.delete(e.element));for(const e of l)this.nodes.set(e.element,e);return e.children.splice(0,e.children.length,...l),e!==this.root&&this.autoExpandSingleChildren&&1===l.length&&0===a.length&&(l[0].collapsedByDefault=!1,a.push(l[0])),a}render(e,t){const i=e.children.map(e=>this.asTreeElement(e,t));this.tree.setChildren(e===this.root?null:e,i),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return i=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?d.Iterable.map(e.children,e=>this.asTreeElement(e,t)):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){
- return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose()}}t.AsyncDataTree=x;class D{constructor(e){this.node=e}get element(){return{elements:this.node.element.elements.map(e=>e.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(e=>new D(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class k{constructor(e,t,i,n){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){
- this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderCompressedElements(e,t,i,n){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?u.addClasses(t,p.treeItemLoadingIcon.classNames):u.removeClasses(t,p.treeItemLoadingIcon.classNames),!1}disposeElement(e,t,i,n){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,i.templateData,n)}disposeCompressedElements(e,t,i,n){this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=s.dispose(this.disposables)}}t.CompressibleAsyncDataTree=class extends x{constructor(e,t,i,n,s,r,a={}){super(e,t,i,s,r,a),this.compressionDelegate=n,this.compressibleNodeMapper=new o.WeakMapper(e=>new D(e)),this.filter=a.filter}createTree(e,t,o,s,r){
- const a=new i.ComposedTreeDelegate(o),l=s.map(e=>new k(e,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),d=function(e){const t=e&&E(e);return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(e=>e.element))})})}(r)||{};return new n.CompressibleObjectTree(e,t,a,l,d)}asTreeElement(e,t){return Object.assign({incompressible:this.compressionDelegate.isIncompressible(e.element)},super.asTreeElement(e,t))}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t){if(!this.identityProvider)return super.render(e,t);const i=e=>this.identityProvider.getId(e).toString(),n=e=>{const t=new Set;for(const n of e){const e=this.tree.getCompressedTreeNode(n===this.root?null:n);if(e.element)for(const n of e.element.elements)t.add(i(n.element))}
- return t},o=n(this.tree.getSelection()),s=n(this.tree.getFocus());super.render(e,t);const r=this.getSelection();let a=!1;const l=this.getFocus();let d=!1;const c=e=>{const t=e.element;if(t)for(let e=0;e0&&(this.changes=r.compressConsecutiveTextChanges(this.changes,t)),this.afterEOL=i,this.afterVersionId=n,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+16*(e?e.length:0)}static _writeSelections(e,t,i){if(a.writeUInt32BE(e,t?t.length:0,i),i+=4,t)for(const n of t)a.writeUInt32BE(e,n.selectionStartLineNumber,i),i+=4,a.writeUInt32BE(e,n.selectionStartColumn,i),i+=4,a.writeUInt32BE(e,n.positionLineNumber,i),i+=4,a.writeUInt32BE(e,n.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const n=a.readUInt32BE(e,t);t+=4;for(let s=0;st)){for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}n=o-1}}return i}acceptEdit(e,t,i,n,o){for(const s of this._pieces)s.acceptEdit(e,t,i,n,o)}}t.TokensStore2=m;class f{constructor(){this._lineTokens=[],this._len=0}flush(){this._lineTokens=[],this._len=0}getTokens(e,t,i){let o=null;if(te.sortIndex-t.sortIndex)}this._mightContainRTL=o,this._mightContainUnusualLineTerminators=r,this._mightContainNonBasicASCII=c;const _=this._doApplyEdits(u);let v=null;if(t&&m.length>0){m.sort((e,t)=>t.lineNumber-e.lineNumber),v=[];for(let e=0,t=m.length;e=0;e--){const t=i.getEndOffset(e);if(t<=n)break;w.ignoreBracketsInToken(i.getStandardTokenType(e))&&(n=t)}const a=Math.min(o.length,e.column-1+r.maxBracketLength);let l=null;for(;;){const i=y.BracketsUtils.findNextBracketInRange(r.forwardRegex,t,o,n,a);if(!i)break;if(i.startColumn<=e.column&&e.column<=i.endColumn){const e=o.substring(i.startColumn-1,i.endColumn-1).toLowerCase(),t=this._matchFoundBracket(i,r.textIsBracket[e],r.textIsOpenBracket[e],null);if(t){if(t instanceof R)return null;l=t}}n=i.endColumn-1}if(l)return l}if(s>0&&i.getStartOffset(s)===e.column-1){const r=s-1,a=b.LanguageConfigurationRegistry.getBracketsSupport(i.getLanguageId(r));if(a&&!w.ignoreBracketsInToken(i.getStandardTokenType(r))){const s=Math.max(0,e.column-1-a.maxBracketLength);let l=Math.min(o.length,e.column-1+a.maxBracketLength);for(let e=r+1;eDate.now()-e<=t}const n=this.validatePosition(e),o=this.getLineCount(),s=new Map;let r=[];const a=(e,t)=>{if(!s.has(e)){let i=[];for(let e=0,n=t?t.brackets.length:0;e=65536?2:1,i=o}n.isFullWidthCharacter(t)||n.isEmojiImprecise(t)?r+=2:r+=1}}return r}static visibleColumnFromColumn2(e,t,i){return this.visibleColumnFromColumn(t.getLineContent(i.lineNumber),i.column,e.tabSize)}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const o=e.length;let s=0,r=1,a=0;for(;ae.getLineMinColumn(t)?i-=s.prevCharLength(e.getLineContent(t),i-1):t>1&&(t-=1,i=e.getLineMaxColumn(t)),new n.Position(t,i)}static left(e,t,i,n){const o=a.leftPosition(t,i,n);return new r(o.lineNumber,o.column,0)}static moveLeft(e,t,i,n,o){let s,r;if(i.hasSelection()&&!n)s=i.selection.startLineNumber,r=i.selection.startColumn;else{let n=a.left(e,t,i.position.lineNumber,i.position.column-(o-1));s=n.lineNumber,r=n.column}return i.move(n,s,r,0)}static rightPosition(e,t,i){return i